Ошибка 500 в WordPress: как найти причину и восстановить сайт

Разбираем, как проверить логи, плагины, тему, .htaccess и PHP, чтобы найти реальную причину ошибки 500 и безопасно восстановить сайт.

Ошибка 500 Internal Server Error означает, что сервер не смог нормально обработать запрос. Для владельца WordPress-сайта это обычно выглядит просто: вместо страницы открывается сообщение об ошибке 500, белый экран или стандартная страница хостинга.

Проблема в том, что сам код 500 почти ничего не говорит о причине. Ошибку может вызвать плагин, тема, PHP, повреждённый .htaccess, нехватка памяти или уже серверная конфигурация.

Поэтому правильный подход — не менять всё подряд, а определить, после какого действия появилась ошибка и что именно падает на сервере.

Что проверить в первую очередь

Если сайт только что работал, вспомните последние изменения:

  • обновляли WordPress, плагин или тему;
  • установили новый плагин;
  • меняли версию PHP;
  • редактировали functions.php или другой PHP-файл;
  • переносили сайт;
  • меняли настройки сервера или хостинга.

Если ошибка появилась сразу после конкретного действия, начинать диагностику стоит именно с него.

Перед изменениями желательно сделать резервную копию файлов и базы данных. Для рабочего сайта, особенно магазина или проекта с заявками, безопаснее сначала проверять исправление на staging-копии, если она есть.

↑ К оглавлению

Посмотрите журнал ошибок

При ошибке 500 гораздо полезнее увидеть реальную PHP-ошибку, чем по очереди отключать всё на сайте.

WordPress позволяет записывать ошибки в файл debug.log. Для временной диагностики в wp-config.php можно использовать:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

После этого ошибки WordPress и PHP могут появиться в:

/wp-content/debug.log

Нас интересуют прежде всего свежие записи, появившиеся в момент открытия проблемной страницы.

В логе можно увидеть, например:

  • PHP Fatal error;
  • имя проблемного плагина;
  • файл активной темы;
  • ошибку несовместимости PHP;
  • Allowed memory size exhausted;
  • вызов отсутствующей функции или класса.

Важно: режим отладки не стоит оставлять включённым на рабочем сайте без необходимости. После диагностики его нужно отключить, а журнал ошибок не должен быть публично доступен.

Если WordPress показывает другой фатальный сбой, полезно также посмотреть что делать при критической ошибке WordPress.

↑ К оглавлению

Ошибка 500 после установки или обновления плагина

Плагины — одна из первых вещей, которые стоит проверить, если ошибка появилась после установки или обновления.

Если известно, какой плагин менялся последним, не нужно сразу отключать все остальные. Сначала отключите именно его.

Если /wp-admin/ открывается, это можно сделать обычным способом в разделе плагинов.

Если админка тоже отдаёт ошибку 500, а доступ к файлам сайта есть, каталог конкретного плагина можно временно переименовать:

/wp-content/plugins/plugin-name/

например в:

/wp-content/plugins/plugin-name-disabled/

После этого снова откройте сайт.

Если ошибка исчезла, причина уже значительно сузилась: нужно разбираться с этим плагином, его обновлением, настройками или совместимостью с текущей версией WordPress и PHP.

Если неизвестно, какой плагин виноват, тогда уже имеет смысл проводить последовательную проверку плагинов. Не удаляйте их сразу: задача диагностики — сначала найти источник сбоя.

↑ К оглавлению

Проверьте .htaccess, если используется Apache

Повреждённый или некорректный .htaccess действительно может приводить к ошибке 500, но этот совет подходит не каждому WordPress-сайту.

.htaccess используется прежде всего на серверах Apache. Если сайт работает на Nginx, искать проблему в .htaccess бессмысленно: Nginx этот файл не использует.

На Apache для проверки можно:

  1. сделать копию существующего .htaccess;
  2. временно переименовать его, например в .htaccess-old;
  3. проверить сайт.

Если после этого ошибка 500 исчезла, нужно восстановить корректные правила.

Не стоит скачивать случайный .htaccess из интернета и сразу заменять им рабочий файл. На сайте могут быть дополнительные правила безопасности, редиректы или настройки плагинов, которые необходимо учитывать.

↑ К оглавлению

Может ли ошибку 500 вызвать тема WordPress

Да. Особенно если проблема появилась после обновления темы, изменения functions.php, добавления собственного PHP-кода, установки новой версии PHP или обновления WordPress, после которого старая тема оказалась несовместимой.

Если административная панель доступна, временно переключитесь на стандартную тему WordPress и проверьте сайт.

Если после переключения ошибка исчезла, источник нужно искать в текущей теме или её дочерней теме.

При недоступной админке не стоит просто удалять каталог активной темы. Такое вмешательство имеет смысл только при наличии доступа к файлам, резервной копии и понимании того, какая тема будет использована WordPress вместо неё.

↑ К оглавлению

Проверьте PHP

Ошибка 500 нередко связана не с самим WordPress, а с выполнением PHP-кода.

Типичные варианты:

  • плагин или тема несовместимы с текущей версией PHP;
  • после смены PHP перестала работать часть старого кода;
  • возник Fatal error;
  • процессу не хватает памяти;
  • отсутствует необходимое PHP-расширение;
  • PHP-FPM завершается с ошибкой.

Например, запись:

Allowed memory size exhausted

указывает на исчерпание доступной PHP-памяти.

Но увеличивать memory_limit наугад — плохая стратегия. Сначала стоит понять, действительно ли проблема в памяти и какой код потребляет её.

То же самое относится к версии PHP. Не нужно хаотично переключаться между версиями. Если ошибка началась именно после смены версии, это важный диагностический признак, а точную причину обычно можно увидеть в логах.

↑ К оглавлению

Что делать, если ошибка 500 только в wp-admin

Иногда главная страница работает, а при открытии:

/wp-admin/

появляется ошибка 500.

Это уже полезная информация. В такой ситуации стоит проверить:

  • последние установленные и обновлённые плагины;
  • PHP-ошибки при загрузке административной части;
  • плагины безопасности;
  • код, который выполняется только внутри админки;
  • серверный error log.

Не нужно сразу переустанавливать весь WordPress: если публичная часть сайта продолжает работать, область проблемы уже можно заметно сузить.

↑ К оглавлению

Если ошибка появляется только на одной странице

Ошибка 500 не обязательно ломает сайт целиком. Например, она может возникать только:

  • на странице оформления заказа WooCommerce;
  • при открытии определённого товара;
  • при сохранении записи;
  • при отправке формы;
  • во время AJAX-запроса;
  • при обращении к REST API.

В этом случае нужно смотреть именно код и запрос, которые выполняются в момент сбоя.

Если главная страница и административная панель работают нормально, массовое отключение всех компонентов сайта обычно не является хорошим первым шагом.

↑ К оглавлению

Когда причина находится уже на стороне сервера

wp-content/debug.log полезен, но он показывает не всё.

Если WordPress не успевает загрузиться или запрос завершается раньше, необходимая информация может находиться в журналах:

  • PHP-FPM;
  • Apache;
  • Nginx;
  • панели хостинга;
  • системных логах сервера.

На этом уровне причиной могут оказаться:

  • ошибка конфигурации веб-сервера;
  • проблемы PHP-FPM;
  • ограничения хостинга;
  • неправильные права или владелец файлов;
  • исчерпание ресурсов;
  • некорректные серверные правила.

Поэтому отсутствие полезной записи в debug.log ещё не означает, что «с WordPress всё нормально». Просто диагностику нужно продолжить уровнем ниже.

↑ К оглавлению

Что не стоит делать при ошибке 500

Когда сайт недоступен, хочется попробовать сразу всё. Обычно именно это усложняет восстановление.

Не стоит:

  • удалять WordPress и устанавливать его заново без установленной причины;
  • одновременно обновлять ядро, плагины и тему;
  • удалять все плагины вместо их последовательной проверки;
  • выставлять права 777 на файлы и каталоги;
  • заменять .htaccess, если сервер работает на Nginx;
  • менять несколько параметров PHP одновременно;
  • редактировать рабочий сайт без резервной копии;
  • оставлять вывод PHP-ошибок включённым для посетителей.

Чем меньше изменений сделано между двумя проверками, тем проще понять, что именно исправило или сломало сайт.

↑ К оглавлению

Ошибка 500 появилась после обновления WordPress

Если сайт перестал открываться сразу после обновления, причина может быть не в самом ядре WordPress.

Обновление способно проявить уже существовавшую несовместимость старого плагина, темы, собственного PHP-кода или текущей версии PHP.

Поэтому здесь тоже лучше начинать с логов и последнего изменившегося компонента.

Смотрите также исправление WordPress после обновления.

↑ К оглавлению

Когда лучше остановиться и сначала провести диагностику

Если это тестовый сайт, последовательная самостоятельная проверка обычно допустима.

Но если сайт уже приносит заявки или продажи, длительные эксперименты на production могут обойтись дороже самой неисправности.

Особенно если:

  • ошибка 500 появилась внезапно без понятной причины;
  • не открывается и сайт, и /wp-admin/;
  • проблема возвращается после временного исправления;
  • в логах несколько разных ошибок;
  • сбой появился после переноса или серверных изменений;
  • проблема затрагивает WooCommerce, оплату или оформление заказа.

В такой ситуации сначала лучше определить источник ошибки и только после этого менять конфигурацию или код.

WebFixer24 может провести диагностику WordPress, найти причину ошибки 500 и исправить её точечно.

↑ К оглавлению

Частые вопросы

Что означает ошибка 500 Internal Server Error в WordPress?

Это ответ сервера о том, что при обработке запроса произошла внутренняя ошибка. Сам код 500 не указывает точную причину. Для диагностики нужно проверить WordPress/PHP-логи, последние изменения сайта и при необходимости журнал веб-сервера.

Как исправить ошибку 500, если не открывается wp-admin?

Начните с логов и последних изменений. Если ошибка появилась после обновления конкретного плагина, его можно временно отключить через файловый доступ. На Apache также имеет смысл проверить .htaccess. Если причина не видна в WordPress-логе, потребуется посмотреть серверные журналы.

Может ли плагин вызвать ошибку 500?

Да. Причиной может стать ошибка PHP внутри плагина, конфликт с другим компонентом, несовместимость с WordPress или установленной версией PHP. Особенно вероятна связь, если ошибка появилась сразу после установки или обновления плагина.

Может ли .htaccess вызвать ошибку 500 WordPress?

Да, если сайт работает на Apache и в .htaccess находятся неправильные или повреждённые директивы. На Nginx этот файл не используется, поэтому проверять его там не имеет смысла.

Чем ошибка 500 отличается от сообщения «На сайте возникла критическая ошибка»?

500 Internal Server Error — это HTTP-статус, который сервер может вернуть по разным причинам. Сообщение о критической ошибке формирует сам WordPress, когда его механизм обработки фатальных ошибок обнаруживает серьёзный сбой PHP. Эти ситуации могут быть связаны, но это не одно и то же.

↑ К оглавлению

Нужна помощь с ошибкой 500?

Можно заказать точечную диагностику WordPress и восстановление рабочего сценария. Выберите удобный способ обращения:

↑ К оглавлению