Белый экран без единой надписи или ошибка 500 при открытии сайта на WordPress означают одно: PHP упал ещё до того, как успел отдать HTML браузеру. Разбираем, как за 15 минут найти причину и вернуть сайт в рабочее состояние, не переустанавливая WordPress с нуля.
Что означает белый экран и ошибка 500 в WordPress
«Белый экран смерти» (White Screen of Death) появляется, когда PHP-скрипт завершился с фатальной ошибкой, а вывод ошибок на экран выключен — так настроено по умолчанию на боевых серверах. Ошибка 500 Internal Server Error — по сути то же самое, только сообщение формирует веб-сервер, а не сам WordPress.
Причины у обеих проблем почти всегда одни: конфликт плагина или темы после обновления, нехватка памяти PHP, повреждённый файл .htaccess или синтаксическая ошибка в коде после ручного редактирования functions.php. Первый шаг — включить логирование и посмотреть реальный текст ошибки, а не гадать.
Как включить журнал ошибок в wp-config.php
Откройте файл wp-config.php в корне сайта и добавьте перед строкой /* That's all, stop editing! */ три константы:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
После этого WordPress перестанет показывать ошибку на экране посетителям, но запишет весь стек вызовов в файл wp-content/debug.log. Посмотреть последние строки лога можно командой:
# Показать последние 50 строк лога ошибок
tail -n 50 wp-content/debug.log
Ищите строку с PHP Fatal error — в ней указан файл и номер строки, где произошёл сбой. Обычно это путь внутри wp-content/plugins/ или wp-content/themes/.
Как найти виновника среди плагинов и тем
Если лог указывает на конкретный плагин — переименуйте его папку через FTP или файловый менеджер панели, например plugin-name в plugin-name-off. WordPress увидит, что файл плагина пропал, и автоматически отключит его без доступа к админке.
Быстрее сделать то же самое через WP-CLI, если он подключён на сервере:
# Отключить все плагины разом
wp plugin deactivate --all
# Включать плагины по одному, проверяя сайт после каждого
wp plugin activate plugin-name
Про остальные команды управления плагинами и темами из терминала — в статье WP-CLI: управление WordPress из командной строки. Если после отключения всех плагинов сайт заработал, проблема в одном из них — включайте по очереди, пока ошибка не вернётся.
Если дело не в плагинах, переключите тему на стандартную:
wp theme activate twentytwentyfour
Ошибка 500 из-за нехватки памяти PHP
Строка Allowed memory size of 134217728 bytes exhausted в логе означает, что скрипту не хватило лимита memory_limit. Значение 134217728 байт — это 128 МБ, стандартный лимит на многих тарифах. Поднять его можно в трёх местах, по порядку приоритета:
| Файл | Строка | Когда применять |
|---|---|---|
| wp-config.php | define( 'WP_MEMORY_LIMIT', '256M' ); | работает почти всегда, приоритет |
| .htaccess | php_value memory_limit 256M | только если PHP работает как модуль Apache |
| php.ini / панель хостинга | memory_limit = 256M | если есть доступ к настройкам PHP в панели |
256 МБ хватает большинству сайтов на WooCommerce и с тяжёлыми конструкторами страниц. Если после увеличения лимита ошибка не ушла, дело не в памяти, а в бесконечном цикле или рекурсии в коде плагина.
Проблемы с .htaccess и правами доступа
Ошибка 500 без записи в debug.log почти всегда означает повреждённый .htaccess. Переименуйте файл во что-то вроде .htaccess-old и зайдите на сайт заново:
# Временно отключить .htaccess
mv .htaccess .htaccess-old
Если сайт открылся, создайте новый файл, зайдя в админке в раздел «Настройки → Постоянные ссылки» и нажав «Сохранить изменения» — WordPress пересоздаст правила автоматически. Второй частый виновник — неверные права доступа. Правильные значения для WordPress:
# Права на папки — 755, на файлы — 644
find /var/www/site/public_html -type d -exec chmod 755 {} \;
find /var/www/site/public_html -type f -exec chmod 644 {} \;
Чек-лист диагностики белого экрана
Перед тем как звать техподдержку хостинга, пройдите по пунктам:
- Включили
WP_DEBUG_LOGи посмотрелиwp-content/debug.log. - Отключили все плагины через FTP или WP-CLI и проверили сайт заново.
- Переключили тему на стандартную (Twenty Twenty-Four).
- Подняли
memory_limitдо 256М в wp-config.php. - Проверили
.htaccessи права доступа 755/644.
Если делали резервную копию перед последним обновлением — часто быстрее откатиться, чем искать причину вручную; порядок восстановления описан в статье WordPress бэкап: UpdraftPlus и ручной метод. А чтобы белый экран не появлялся после каждого обновления плагинов, настройте безопасный процесс — он расписан в статье Безопасное обновление WordPress: порядок действий и откат.