Ошибка 500 Internal Server Error WordPress — как исправить
500 Internal Server Error — самая бесполезная ошибка. WordPress не говорит что сломалось, просто «сервер не справился». В отличие от белого экрана, тут проблема часто не в самом WordPress, а в конфигурации сервера. Лечится иначе.
Почему это происходит
Три основные причины — и они разные на разных хостингах:
- Битый
.htaccess— самая частая. После установки плагина кеширования или безопасности тот дописывает свои правила, и Apache падает в ошибку 500. - Права на файлы — плагин создал папку с правами 777, хостинг ругается. Особенно на Beget и Timeweb.
- PHP memory limit — скрипт запросил больше памяти, чем выделено процессу. Сервер убивает процесс и отдаёт 500.
Что делать
1. Проверить логи сервера
Не debug.log WordPress — его 500-я может вообще не писать. Нужны серверные логи. Где они лежат:
- Beget: панель управления → Логи → Ошибки (error_log в корне сайта)
- Timeweb: панель → Сайты → ваш сайт → Логи ошибок
- Reg.ru: панель ISPmanager → Логи → сайт → error.log
В логе будет конкретная строка: «mod_rewrite: maximum number of internal redirects reached» или «Allowed memory size of…» — это сразу указывает на причину.
2. Сбросить .htaccess
Самая быстрая диагностика: переименуйте .htaccess в корне сайта во что-то другое:
/.htaccess → /_htaccess_backup
Обновите страницу. Если ошибка исчезла — проблема в .htaccess. Зайдите в админку (она теперь работает), Настройки → Постоянные ссылки → нажмите «Сохранить». WordPress пересоздаст чистый .htaccess.
Дальше аккуратно включайте плагины кеширования/безопасности по одному — и проверяйте .htaccess после каждого. Виновник найдётся быстро.
3. Права на файлы и папки
Многие shared-хостинги (Beget, Timeweb) блокируют выполнение PHP-файлов с правами 777. Проверьте через FTP: папки должны быть 755, файлы 644.
Быстрая команда через SSH (если есть доступ):
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Плагин W3 Total Cache любит создавать папку /wp-content/cache/ с правами 777 — это частая причина 500 на Beget.
4. Память PHP
В логе Allowed memory size of X bytes exhausted? Добавьте в wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
Не помогает — пишите на хостинг. На shared-тарифах часто жёсткий лимит 128M, и никакой define его не обойдёт.
Что не работает
«Переустановите WordPress» — бесполезно. Ошибка 500 почти никогда не связана с ядром. Вы переустановите, а плагин снова испортит .htaccess — и та же ошибка через час.
«Увеличьте все лимиты» — если проблема не в памяти, настройка max_execution_time, max_input_vars и прочих параметров просто откладывает проблему. Сначала прочитайте лог.
Частые вопросы
Не получается найти причину?
Напишу в логи, найду что сломалось и исправлю. Ошибка 500 обычно чинится за 30-60 минут.