Ошибка 500 WordPress — причины и как исправить

WordPress услуги
Нужна помощь с сайтом?
Исправим, настроим или улучшим сайт. Оставьте заявку — подскажем решение.
Оставить заявку
Автор:vkuzyomko

Ошибка 500 WordPress — причины и как исправить

Краткий ответ: ошибка 500 WordPress означает внутренний сбой на сервере. Чаще всего причина в PHP-ошибке, конфликте плагина, теме, повреждённом .htaccess, нехватке памяти, неправильной версии PHP, правах файлов, кеше или проблеме на хостинге. Безопасный порядок такой: сделать копию, включить debug.log, проверить логи хостинга, временно отключить плагины через FTP, проверить тему, .htaccess, PHP memory limit и настройки сервера.

Ошибка 500 неприятна тем, что браузер почти ничего не объясняет. На экране может быть просто “Internal Server Error”, “HTTP 500”, белая страница или сообщение “На сайте произошла критическая ошибка”. Поэтому главная задача — не угадать, а найти точную причину в логах.

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

Причина

Ошибка 500 — это не одна конкретная поломка. Это общий ответ сервера: “я не смог обработать запрос”. В WordPress такой сбой чаще всего возникает из-за PHP-кода, плагинов, темы, настроек сервера или файла .htaccess.

Типовые причины:

  • PHP fatal error — ошибка в плагине, теме, functions.php или кастомном коде.
  • Конфликт плагинов — два плагина меняют одну и ту же логику, конфликтуют с кешем, WooCommerce, формами или security-настройками.
  • Повреждённый .htaccess — неправильные rewrite rules, редиректы, ограничения доступа или старые правила кеша.
  • Нехватка памяти PHP — сайт упирается в memory_limit, особенно на WooCommerce, конструкторах страниц и тяжёлых темах.
  • Несовместимая версия PHP — старый плагин может сломаться после перехода на новую версию PHP.
  • Ошибка в теме — особенно если правки делались в активной теме, а не в дочерней теме или отдельном плагине.
  • Проблемы прав файлов — сервер не может прочитать нужные файлы или блокирует выполнение PHP.
  • Переполненный диск на хостинге — сайт не может писать кеш, сессии, логи или временные файлы.
  • Ошибка базы данных — повреждённые таблицы, тяжёлые запросы, неправильные данные подключения.
  • WAF или security-блокировка — серверная защита блокирует запрос как подозрительный.
  • Ошибка в кастомном коде — неправильный hook, SQL-запрос, AJAX-обработчик, REST API endpoint или PHP snippet.

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

Диагностика

Перед исправлением нужно понять, где появляется ошибка 500: на всём сайте, только в админке, только на одной странице, только при отправке формы, только на checkout WooCommerce или только при AJAX-запросе.

Где появляется ошибка 500 Вероятная причина Что проверить первым
На всём сайте PHP fatal error, .htaccess, сервер, тема, основной плагин debug.log, error_log, .htaccess, плагины через FTP
Только в админке плагин админки, WooCommerce, security, admin-ajax, память PHP логи, плагины, память, тяжёлые запросы, cron
Только на одной странице шорткод, блок, шаблон, кастомное поле, PHP в теме шаблон страницы, блоки, консоль, PHP-лог
При отправке формы SMTP, AJAX, reCAPTCHA, PHP handler, security-плагин admin-ajax.php, логи формы, SMTP, WAF
На WooCommerce checkout оплата, доставка, кеш, wc-ajax, сессии, конфликт плагина логи WooCommerce, консоль, кеш, платёжный модуль
После обновления несовместимость плагина, темы или PHP последние обновления, debug.log, откат или отключение проблемного плагина
После переноса сайта пути, PHP, база, .htaccess, права файлов, домен wp-config.php, база, URL сайта, error_log

Что проверить сразу

  • Открывается ли главная страница сайта?
  • Открывается ли /wp-admin/?
  • Ошибка появляется на всех страницах или только на одной?
  • Что менялось перед ошибкой: обновление, новый плагин, правка кода, перенос сайта, смена PHP?
  • Есть ли доступ к FTP/SFTP, хостингу, базе данных и логам?
  • Есть ли свежая резервная копия?
  • Есть ли записи в wp-content/debug.log?
  • Есть ли ошибки в error_log хостинга?

Нужно быстро решить проблему на сайте?

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

Оставить заявку

Решение

Безопаснее идти по шагам. Не удаляйте файлы и не чистите базу до диагностики.

1. Сделайте резервную копию

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

Минимум, который стоит сохранить:

  • папку wp-content;
  • файл wp-config.php;
  • файл .htaccess;
  • экспорт базы данных;
  • логи ошибок, если они уже есть.

2. Включите debug.log

Ошибка 500 без логов — это угадывание. Включите логирование WordPress и повторите действие, которое вызывает ошибку.

После этого проверьте файл:

wp-content/debug.log

Ищите строки с:

  • PHP Fatal error
  • Parse error
  • Uncaught Error
  • Allowed memory size exhausted
  • Cannot redeclare function
  • Call to undefined function
  • Class not found

3. Проверьте error_log на хостинге

Не все ошибки попадают в debug.log. Иногда причина видна только в серверном error_log: проблема PHP-FPM, Apache/Nginx, прав файлов, лимитов, WAF или нехватки ресурсов.

Где искать:

  • панель хостинга;
  • раздел “Логи” или “Журнал ошибок”;
  • файл error_log в корне сайта;
  • папка логов домена;
  • логи PHP-FPM, если доступ есть.

4. Проверьте .htaccess

Если сайт на Apache или LiteSpeed, повреждённый .htaccess часто вызывает 500. Для проверки временно переименуйте файл:

  • было: .htaccess
  • стало: .htaccess_old

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

5. Отключите плагины через FTP

Если доступа к админке нет, зайдите через FTP/SFTP или файловый менеджер хостинга и переименуйте папку:

  • было: wp-content/plugins
  • стало: wp-content/plugins-disabled

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

6. Проверьте активную тему

Если плагины не виноваты, проверьте тему. Частая причина — ошибка в functions.php, старый код, конфликт с версией PHP или поломанный шаблон.

Через FTP можно временно переименовать папку активной темы в wp-content/themes/. WordPress попробует переключиться на стандартную тему, если она установлена.

Если стандартной темы нет, лучше загрузить её или переключить тему через WP-CLI.

7. Проверьте PHP memory limit

Если в логе есть Allowed memory size exhausted, WordPress упирается в лимит памяти. Это может происходить из-за тяжёлой темы, WooCommerce, конструктора страниц, импорта, отчётов, кеша или большого количества плагинов.

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

8. Проверьте версию PHP

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

Особенно внимательно проверяйте ошибки вида:

  • Call to undefined function
  • Deprecated, если сайт переводит предупреждения в ошибки;
  • TypeError
  • Fatal error
  • Class not found

9. Проверьте права файлов

Обычно рабочие значения:

  • папки: 755;
  • файлы: 644.

Не ставьте 777. Это может временно убрать одну проблему, но создаёт риск безопасности.

10. Проверьте кеш, CDN и WAF

Иногда ошибка 500 появляется из-за кеша, Cloudflare, WAF, ModSecurity или агрессивной защиты. Особенно если ошибка возникает только при отправке формы, AJAX-запросе, сохранении записи или оформлении заказа.

Проверьте:

  • серверный кеш;
  • плагин кеширования;
  • Cloudflare;
  • ModSecurity;
  • security-плагин;
  • правила блокировки admin-ajax.php и REST API.

Код

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

Включить debug.log в 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);
@ini_set('display_errors', 0);

Увеличить память WordPress

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

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Стандартный .htaccess для WordPress

Важно: сохраните старый .htaccess. Если на сайте есть редиректы, мультиязычность, кеш, HTTPS-правила или защита, простая замена может отключить часть настроек.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Отключить все плагины через WP-CLI

Важно: команда отключит все плагины. На WooCommerce-сайте это может временно отключить магазин, оплату, доставку, формы, CRM, Telegram и другие интеграции.

wp plugin deactivate --all

Включать плагины по одному

wp plugin list
wp plugin activate nazvanie-plagina

Переключить тему через WP-CLI

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

wp theme list
wp theme activate twentytwentyfour

Проверить WordPress core через WP-CLI

Эта команда помогает понять, не изменены ли файлы ядра WordPress.

wp core verify-checksums

Результат

После диагностики должен быть понятен источник ошибки 500. Возможные результаты:

  • найден проблемный плагин;
  • найдена PHP-ошибка в теме или functions.php;
  • исправлен повреждённый .htaccess;
  • увеличен недостаточный PHP memory limit;
  • подобрана совместимая версия PHP;
  • исправлены права файлов;
  • найдена блокировка WAF или security-плагина;
  • обнаружена проблема хостинга или нехватка ресурсов;
  • найден вредоносный код или повреждённые файлы.

Правильный результат — не просто убрать страницу с ошибкой 500, а понять, что именно её вызывало. Иначе сайт может снова упасть после обновления, очистки кеша, запуска cron, оформления заказа или отправки формы.

Дополнительные способы

Если ошибка 500 появляется только в админке

Проверьте плагины, которые работают в панели управления: SEO-плагины, WooCommerce, редакторы страниц, security-плагины, статистику, импорт/экспорт, плагины бэкапа и кеша.

Также проверьте:

  • admin-ajax.php;
  • REST API;
  • PHP memory limit для админки;
  • зависшие cron-задачи;
  • большие autoloaded options;
  • медленные запросы к базе.

Если ошибка 500 появляется только на WooCommerce checkout

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

Если ошибка 500 появилась после правки functions.php

Через FTP откройте файл активной темы и отмените последнюю правку. Частые ошибки:

  • пропущенная скобка;
  • лишняя точка с запятой;
  • повторное объявление функции;
  • вызов функции до её загрузки;
  • ошибка в hook или filter;
  • PHP-код вставлен внутри HTML не в том месте.

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

Проверьте:

  • данные базы в wp-config.php;
  • префикс таблиц $table_prefix;
  • наличие скрытого файла .htaccess;
  • права файлов и владельца файлов;
  • версию PHP;
  • пути к временным папкам;
  • размер диска на хостинге;
  • URL сайта в таблице wp_options.

Если ошибка 500 появляется периодически

Периодическая ошибка часто связана не с одним файлом, а с нагрузкой:

  • cron запускает тяжёлую задачу;
  • плагин бэкапа создаёт архив;
  • импорт товаров перегружает сервер;
  • WooCommerce генерирует отчёты;
  • боты активно сканируют сайт;
  • сервер упирается в лимиты CPU, RAM, I/O или PHP workers;
  • база данных отвечает слишком медленно.

В таком случае нужно смотреть не только WordPress, но и графики хостинга, access log, slow log и время появления ошибки.

Частые ошибки

  • Удалять плагины вместо временного отключения. Лучше переименовать папку и сохранить возможность отката.
  • Сразу чистить базу данных. Без копии можно удалить настройки сайта, темы, заказов или форм.
  • Ставить права 777. Это небезопасно и не является нормальным исправлением.
  • Менять версию PHP наугад. Лучше смотреть логи и совместимость плагинов.
  • Заменять .htaccess без сохранения старого файла. Можно потерять редиректы, HTTPS-правила, кеш и security-настройки.
  • Отключать кеш на WooCommerce без проверки исключений. Корзина и checkout требуют аккуратной настройки.
  • Игнорировать error_log хостинга. Некоторые причины не попадают в WordPress debug.log.
  • Проверять только главную страницу. После исправления нужно проверить админку, формы, заказы, письма, мобильную версию и важные страницы.
  • Исправлять только симптом. Например, увеличить память, но не найти плагин, который её съедает.

Диагностика проблем

Короткий чеклист при ошибке 500 WordPress

  1. Зафиксируйте, где появляется ошибка: весь сайт, админка, страница, форма, checkout.
  2. Сделайте копию файлов и базы.
  3. Включите WP_DEBUG_LOG.
  4. Проверьте wp-content/debug.log.
  5. Проверьте error_log хостинга.
  6. Временно переименуйте .htaccess.
  7. Через FTP отключите плагины.
  8. Проверьте активную тему.
  9. Проверьте PHP memory limit.
  10. Проверьте версию PHP.
  11. Проверьте права файлов и владельца файлов.
  12. Проверьте свободное место на хостинге.
  13. Проверьте кеш, WAF, Cloudflare и security-плагины.
  14. После восстановления включайте всё по одному и смотрите, на каком шаге ошибка возвращается.

Как понять, виноват плагин или тема

  • Если после отключения папки plugins сайт заработал — почти точно виноват плагин.
  • Если плагины отключены, но ошибка остаётся — проверяйте тему, .htaccess, PHP и сервер.
  • Если ошибка указывает путь wp-content/plugins/... — смотрите конкретный плагин.
  • Если ошибка указывает путь wp-content/themes/... — смотрите тему или дочернюю тему.
  • Если в логе нет PHP-ошибки — смотрите error_log хостинга, WAF, права файлов и серверные лимиты.

Что искать в логах

Примеры строк, которые часто объясняют ошибку 500:

  • PHP Fatal error — критическая PHP-ошибка.
  • Allowed memory size exhausted — закончилась память.
  • Cannot redeclare — функция объявлена два раза.
  • Call to undefined function — код вызывает функцию, которой нет.
  • Class not found — отсутствует нужный класс.
  • Permission denied — проблема прав доступа.
  • mod_security — запрос заблокирован защитой сервера.
  • Premature end of script headers — сервер оборвал выполнение PHP.

FAQ

Что значит ошибка 500 WordPress?

Это внутренняя ошибка сервера. Сервер не смог обработать запрос, но не показал точную причину в браузере. В WordPress чаще всего виноваты PHP-ошибка, плагин, тема, .htaccess, память, версия PHP или хостинг.

Что делать первым при ошибке 500?

Сделайте копию сайта, включите debug.log, проверьте error_log хостинга и только потом отключайте плагины, тему или меняйте .htaccess.

Можно ли исправить ошибку 500 без доступа к админке?

Да. Обычно работают через FTP/SFTP, файловый менеджер хостинга, базу данных, WP-CLI и логи. Доступ к админке удобен, но не обязателен для базовой диагностики.

Почему ошибка 500 появилась после обновления плагина?

Плагин мог стать несовместимым с темой, другим плагином, версией PHP или WooCommerce. Через FTP можно временно отключить проблемный плагин и проверить debug.log.

Почему ошибка 500 появляется после правки functions.php?

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

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

Да. Неправильные rewrite rules, редиректы, security-правила или старые настройки кеша могут вызвать 500. Для проверки файл временно переименовывают и создают новый.

Поможет ли увеличение PHP memory limit?

Поможет только если ошибка связана с нехваткой памяти. Если причина в PHP fatal error, конфликте плагина, теме или .htaccess, увеличение памяти не решит проблему.

Можно ли просто отключить все плагины?

Можно как диагностический шаг, но аккуратно. На WooCommerce-сайте это может временно отключить оплату, доставку, формы, письма и интеграции. Лучше сначала сделать копию и смотреть логи.

Почему ошибка 500 появляется только иногда?

Часто это связано с нагрузкой, cron, бэкапами, импортами, нехваткой ресурсов, медленной базой, ботами или периодическими задачами плагинов. Нужно смотреть время ошибки, access log и графики хостинга.

Ошибка 500 и критическая ошибка WordPress — это одно и то же?

Не всегда. Критическая ошибка WordPress часто связана с PHP fatal error и может сопровождаться 500. Но 500 может быть и серверной проблемой, ошибкой .htaccess, WAF или лимитами хостинга.

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

Проверяйте плагины, security-настройки, PHP memory limit для админки, admin-ajax.php, REST API, cookies, кеш и error_log. Админка может ломаться отдельно от публичной части сайта.

Когда лучше не чинить самому?

Если сайт продаёт, принимает заявки, работает на WooCommerce, связан с оплатой, CRM или рекламой, лучше не экспериментировать без копии и логов. Ошибка 500 может быть симптомом более глубокой проблемы.

Вывод

Ошибка 500 WordPress не говорит точную причину на экране, поэтому исправление нужно начинать с диагностики. Самый безопасный порядок: резервная копия, debug.log, error_log хостинга, проверка .htaccess, отключение плагинов через FTP, проверка темы, памяти PHP, версии PHP, прав файлов, кеша и серверных ограничений.

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

Об авторе

vkuzyomko administrator