Критическая ошибка WordPress: как найти и исправить
← Блог
WordPress · 05.10.2026 · 5 мин чтения

Критическая ошибка WordPress: как найти и исправить

Сообщение «На сайте возникла критическая ошибка» означает, что выполнение PHP-кода прервалось. Само сообщение не указывает причину: её нужно искать в письме WordPress или журнале ошибок.

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

Почему возникает критическая ошибка WordPress

С версии 5.2 у WordPress есть защита от фатальных ошибок. Вместо белого экрана посетители видят короткое сообщение, а в админке и на странице входа текст длиннее:

  • На страницах сайта: «На сайте возникла критическая ошибка».
  • В админке и на wp-login.php: «На сайте произошла критическая ошибка. Пожалуйста, проверьте почтовый ящик администратора сайта для получения инструкций».

Чаще всего ошибку вызывает плагин или тема: после обновления, установки, правки functions.php или смены версии PHP на хостинге. Поэтому первый вопрос — что менялось на сайте прямо перед поломкой.

Вход через режим восстановления

WordPress может отправить администратору письмо с подробностями ошибки и ссылкой на режим восстановления. Проверь адрес из «Настройки → Общие» и папку спама. Доставка зависит от работающей почты и от того, успел ли запуститься обработчик ошибок.

  • В режиме восстановления сломанный плагин или тема приостанавливаются только для тебя. Посетители по-прежнему видят ошибку, пока ты её не исправишь.
  • Зайди в «Плагины», найди отмеченный плагин и деактивируй, обнови или удали его. Затем нажми «Выйти из режима восстановления» в верхней панели.
  • По умолчанию повторные письма ограничены интервалом в сутки, и ссылка восстановления действует сутки. Эти интервалы могут быть изменены настройками или фильтрами.
  • Если почта на сайте не настроена, письмо не придёт. Можно задать отдельный адрес константой RECOVERY_MODE_EMAIL в wp-config.php, но без работающей почты это не поможет.

Если письма нет, переходи к журналу ошибок — он покажет то же самое.

Как включить debug.log в WordPress

Открой wp-config.php в корне сайта через FTP, файловый менеджер хостинга или SSH. Найди строку define( 'WP_DEBUG', false ); и замени её на три строки. Они должны стоять выше комментария «Это всё, дальше не редактируем»:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
  • WP_DEBUG включает режим отладки.
  • WP_DEBUG_LOG пишет ошибки в файл wp-content/debug.log.
  • WP_DEBUG_DISPLAY со значением false не показывает ошибки посетителям.

Обнови страницу с ошибкой и открой wp-content/debug.log. Если вместо сообщения о критической ошибке на экране появился текст Fatal error: …, значит, вывод ошибок на экран включён. Он печатает ошибку раньше, чем WordPress успевает показать своё сообщение. На рабочем сайте так оставлять нельзя.

В журнале могут оказаться пути к файлам и данные запросов. Если сервер не запрещает доступ, wp-content/debug.log можно скачать по URL. Проверь ограничение доступа и удали временный журнал после диагностики.

Для длительной отладки задай доступный для записи путь вне публичной папки: define( 'WP_DEBUG_LOG', '/home/user/logs/wp-errors.log' );.

Как определить причину по журналу ошибок

Типичная запись в журнале:

PHP Fatal error:  Uncaught Error: Call to undefined function some_helper()
in /var/www/html/wp-content/plugins/example-plugin/includes/init.php:42

Сначала посмотри тип ошибки, путь и строку. Папка после plugins/ или themes/ показывает, где выполнение прервалось. Но причина может находиться в зависимости или другом вызове — проверь также стек. Типичные сообщения:

  • Call to undefined function — код вызывает функцию, которой нет. Обычно плагин зависит от другого плагина, который отключён, или от расширения PHP, которого нет на хостинге.
  • Allowed memory size of … bytes exhausted — не хватило памяти. Временно помогает define( 'WP_MEMORY_LIMIT', '256M' );, но стоит выяснить, какой код столько потребляет.
  • syntax error, unexpected … — опечатка в коде, чаще всего после ручной правки functions.php. В записи указаны файл и строка.
  • Cannot redeclare — две копии одной функции. Например, функцию вставили в functions.php дважды или она уже есть в плагине.
  • Ошибки после смены версии PHP — старый плагин или тема не поддерживают новую версию. Обнови их или временно верни прежнюю версию PHP в панели хостинга.

Если журнал пуст, проверь настройку логирования и права на запись. Ошибка также могла произойти до загрузки WordPress, например в wp-config.php. В таком случае ищи её в журнале PHP или веб-сервера.

Как отключить плагин или тему без админки

Если журнал указывает на обычный плагин, переименуй его папку в wp-content/plugins/, например из example-plugin в example-plugin.off. WordPress перестанет загружать этот плагин.

Обнови проблемную страницу. Если ошибка исчезла, проверь работу сайта без плагина и найди совместимое исправление. Переименование не устраняет ошибки темы, mu-плагинов или серверной конфигурации.

  • Если виновник неизвестен, переименуй всю папку plugins. Если сайт заработал, верни имя и отключай плагины по одному.
  • Если ошибка в теме, активируй установленную исправную тему через режим восстановления или WP-CLI. Не рассчитывай, что переименование папки автоматически переключит тему на любом запросе. При необходимости сначала установи стандартную тему с wordpress.org.

Если на сервере есть WP-CLI, то же можно сделать командами. Без флага --skip-plugins WP-CLI загружает плагины и падает с той же ошибкой, что и сайт:

# список активных плагинов, не загружая их
wp plugin list --status=active --skip-plugins --skip-themes

# отключить плагин
wp plugin deactivate example-plugin --skip-plugins --skip-themes

# переключиться на стандартную тему
wp theme activate twentytwentyfive --skip-plugins --skip-themes

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

Что проверить после восстановления сайта

  1. Верни define( 'WP_DEBUG', false ); и убери две добавленные строки.
  2. Удали wp-content/debug.log.
  3. Если отключал плагин, проверь, вышло ли исправление, или замени его другим. Возвращать его в работу без исправления нельзя: ошибка повторится.
  4. Проверь главную, страницу записи, форму и корзину, если она есть: один и тот же плагин может ломать сайт только на части страниц.

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

Документация

Есть вопрос или дополнение?

Обсудить в Telegram

Добавить комментарий