Белый экран смерти WordPress — как исправить
functions.php или просто так. Ни ошибки, ни намёка — пустая страница. WordPress скрывает PHP-ошибки от посетителей, и это правильное поведение для продакшена. Неправильно — что он заодно скрывает их от вас.
Что случилось
В девяти случаях из десяти — фатальная PHP-ошибка. Пропущенная скобка в functions.php, вызов несуществующей функции, конфликт плагинов после обновления. WordPress молчит, потому что WP_DEBUG по умолчанию выключен.
Оставшийся один случай — память. Какой-то плагин или тема запрашивают больше, чем выделено PHP-процессу. Или база данных не отвечает — тогда белый экран на всех страницах, включая те что без PHP (картинки тоже не грузятся — это ключевой признак).
Что делать
1. Включить запись ошибок
Добавьте в wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Третья строка важна: ошибки пишутся в лог, а не на экран. Посетители не увидят технических подробностей.
Файл лога: /wp-content/debug.log. После включения обновите страницу, откройте лог — там будет точная строка с ошибкой.
/wp-content/. Надо 755. На Beget иногда нужно создать debug.log вручную и дать права 644.
2. Отключить виновника
Лог показывает /wp-content/plugins/problem-plugin/? Переименуйте папку плагина — добавьте подчёркивание в начало:
/wp-content/plugins/problem-plugin/
→
/wp-content/plugins/_problem-plugin/
WordPress деактивирует плагин, сайт оживёт. Дальше разбирайтесь с конфликтом.
Ошибка в теме? Тот же трюк с папкой темы. WordPress переключится на стандартную.
Ни лог, ни переименование не помогли — проверьте .htaccess. Битые правила реврайта (после установки WP Rocket, Really Simple SSL) могут давать белый экран без единой ошибки в PHP-логе. Переименуйте .htaccess → _htaccess и обновите страницу.
3. Память
В логе memory exhausted? Добавьте в wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
Если хостинг жёстко ограничивает память (shared-тарифы Beget, Timeweb) — это не поможет. Только апгрейд тарифа или оптимизация сайта.
4. Аварийное восстановление через файловый менеджер
Нет FTP, нет SSH, сайт лежит — остаётся файловый менеджер в панели хостинга (Beget, Timeweb, Reg.ru). Порядок действий:
- Переименуйте папку
/wp-content/plugins/→/wp-content/_plugins/ - Сайт оживёт (все плагины деактивированы). Зайдите в админку, обновите всё что можно.
- Создайте новую пустую папку
/wp-content/plugins/. Переносите плагины из_pluginsпо одному, проверяя сайт после каждого. Тот, на котором сайт упал — виновник.
Когда способ не сработает
- Белый экран после восстановления из бэкапа. Бэкап сделан на другой версии PHP. Старый сайт работал на 7.4, новый хостинг дал 8.2. Переключите версию PHP в панели хостинга.
- После миграции на другой домен. Старые URL зашиты в БД, WordPress пытается грузить ресурсы с несуществующего домена. Запустите
wp search-replace old.ru new.ruчерез WP-CLI или плагин Better Search Replace. - Не загружается ни одна страница, включая картинки. Проблема не в PHP — упала база данных или веб-сервер. Смотрите логи хостинга.
Что не работает
Совет «переустановить WordPress» — крайняя мера. Проблема почти всегда в плагине или теме, не в ядре. Переустановка ядра не решит конфликт плагинов.
Совет «отключить все плагины разом» — работает, но потом мучительно включать обратно по одному. Лучше сначала прочитать лог.
Частые вопросы
wp-config.php: DB_NAME, DB_USER, DB_PASSWORD. Если всё верно — упал MySQL на хостинге. Пишите в техподдержку.Не получается найти причину?
Проверю сайт, включу логи, найду что сломалось и исправлю. Обычно хватает 30-60 минут.