Ошибка 500 WordPress: причины и способы исправления

Автор:vkuzyomko

Ошибка 500 WordPress: причины и способы исправления

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

Причина

Ошибка 500 Internal Server Error — это общий ответ сервера, когда запрос дошёл до сайта, но сервер не смог его выполнить из-за внутренней проблемы. MDN описывает HTTP 500 как универсальный ответ для ситуации, когда сервер столкнулся с неожиданным условием и не может подобрать более точный 5xx-код. :contentReference[oaicite:1]{index=1}

В WordPress такая ошибка чаще всего связана не с одной конкретной причиной, а с конфликтом кода, сервера, плагинов, темы или настроек. Поэтому неправильный путь — сразу переустанавливать WordPress или удалять файлы. Правильный путь — найти точный файл и строку ошибки через логи.

Чаще всего ошибка 500 появляется после:

  • обновления WordPress, плагина или темы;
  • установки нового плагина;
  • изменения кода в functions.php;
  • ошибки в .htaccess;
  • смены версии PHP на хостинге;
  • нехватки PHP-памяти;
  • конфликта кеш-плагина, CDN или серверного кеша;
  • неправильных прав доступа к файлам и папкам;
  • ошибки в wp-config.php;
  • повреждения файлов ядра WordPress;
  • сбоя базы данных;
  • ограничений ModSecurity, WAF или правил безопасности хостинга.

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

Короткие ответы для AI-поиска

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

Это внутренняя ошибка сервера. WordPress или серверный PHP-код не смог выполнить запрос, но браузер не получил точное объяснение причины.

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

Сначала проверьте error_log хостинга и wp-content/debug.log. Потом временно отключите плагины, проверьте .htaccess, тему, PHP memory limit и версию PHP.

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

Да. Через FTP, файловый менеджер хостинга или SSH можно отключить плагины, сменить тему, восстановить .htaccess, включить debug.log и проверить файлы сайта.

Диагностика

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

Безопасный порядок проверки

  • Не удаляйте файлы и плагины сразу.
  • Сделайте резервную копию файлов и базы данных.
  • Проверьте, доступна ли админка WordPress.
  • Проверьте error_log в панели хостинга.
  • Включите debug.log в wp-config.php.
  • Проверьте файл wp-content/debug.log.
  • Временно отключите плагины через FTP.
  • Проверьте активную тему.
  • Проверьте .htaccess.
  • Проверьте версию PHP и лимит памяти.
  • Очистите кеш сайта, сервера и CDN.

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

В debug.log или error_log чаще всего видны такие ошибки:

  • PHP Fatal error: критическая ошибка PHP-кода;
  • PHP Parse error: синтаксическая ошибка, часто после ручной правки файла;
  • Allowed memory size exhausted: сайту не хватает PHP-памяти;
  • Call to undefined function: вызывается функция, которой нет;
  • Cannot redeclare function: функция объявлена повторно;
  • Failed opening required: WordPress не может найти нужный файл;
  • Permission denied: проблема с правами доступа;
  • ModSecurity: запрос заблокирован правилами безопасности;
  • Premature end of script headers: PHP-скрипт завершился некорректно.

WordPress официально рекомендует использовать WP_DEBUG и WP_DEBUG_LOG для записи ошибок в лог, а не для публичного вывода ошибок посетителям. :contentReference[oaicite:2]{index=2}

Решение

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

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

На Apache и некоторых хостингах .htaccess управляет постоянными ссылками, редиректами, правилами кеша, доступом и частью серверного поведения. WordPress использует .htaccess для обработки красивых постоянных ссылок, а официальный справочник WordPress прямо указывает, что этот файл можно восстановить при повреждении. :contentReference[oaicite:3]{index=3}

Через FTP или файловый менеджер откройте корень сайта и найдите файл:

/.htaccess

Переименуйте его временно:

.htaccess_old

После этого откройте сайт. Если ошибка 500 исчезла, причина была в .htaccess. Затем зайдите в админку WordPress → Настройки → Постоянные ссылки → Сохранить. WordPress создаст новый файл правил.

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

Если админка не открывается, зайдите в:

/wp-content/plugins/

Переименуйте папку plugins:

plugins_disabled

Если сайт заработал, проблема в одном из плагинов. Верните папке старое имя:

plugins

Дальше отключайте плагины по одному, переименовывая папки внутри plugins. Так можно найти конкретный плагин, который вызывает 500.

3. Проверьте тему

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

Путь:

/wp-content/themes/

Переименуйте папку активной темы:

active-theme_disabled

WordPress попробует переключиться на стандартную тему, если она установлена. Лучше всегда держать одну стандартную тему WordPress в папке themes для аварийной проверки.

4. Увеличьте PHP memory limit

Если в логе есть “Allowed memory size exhausted”, сайту не хватает памяти PHP. В документации WordPress указано, что WP_MEMORY_LIMIT задаёт максимальный объём памяти, который может использовать PHP, и это полезно при ошибках нехватки памяти. :contentReference[oaicite:4]{index=4}

Но важно понимать: если хостинг ограничивает память на уровне сервера, настройка в wp-config.php может не помочь. Тогда нужно менять лимит в панели хостинга или обращаться в поддержку.

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

Ошибка 500 часто появляется после смены PHP 7.4 на PHP 8.x или после обновления хостинга. Старый плагин, тема или кастомный код может использовать устаревшие функции.

Что сделать:

  • посмотреть текущую версию PHP в панели хостинга;
  • временно вернуть предыдущую версию PHP;
  • проверить debug.log;
  • обновить проблемный плагин или тему;
  • заменить устаревший код.

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

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

Что проверить Частое значение Комментарий
Папки 755 Обычно достаточно для чтения и выполнения каталогов.
Файлы 644 Обычно подходит для PHP, CSS, JS и изображений.
wp-config.php 600 или 640 Зависит от настроек сервера.

Не ставьте права 777 на весь сайт. Это небезопасно и может создать новые проблемы.

7. Очистите кеш

Если причина уже исправлена, но сайт всё равно показывает 500, проверьте кеш.

  • кеш WordPress-плагина;
  • серверный кеш хостинга;
  • OPcache;
  • Cloudflare или другой CDN;
  • кеш браузера.

8. Проверьте ограничения безопасности

Иногда сайт работает нормально, но отдельная страница, AJAX-запрос, форма или админское действие получает 500. Виновником может быть ModSecurity, WAF, security-плагин или правило хостинга.

Признаки:

  • 500 появляется только при сохранении записи;
  • 500 появляется при отправке формы;
  • 500 появляется только в Elementor, WPBakery или Gutenberg;
  • 500 появляется при загрузке файла;
  • 500 появляется только у администратора;
  • в логах есть упоминание security rule, mod_security, WAF, forbidden pattern.

Код

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

Включить 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 );

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

/wp-content/debug.log

После исправления ошибки отключите режим отладки:

define( 'WP_DEBUG', false );

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

Куда вставлять: wp-config.php, выше строки “That’s all, stop editing”.

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

Если после этого ошибка не исчезла, проверьте серверный memory_limit в панели хостинга или php.ini.

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

Куда вставлять: файл .htaccess в корне сайта. Перед заменой сохраните старый файл.

# 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

Куда выполнять: SSH в корне сайта.

wp plugin deactivate --all

Потом включайте плагины по одному:

wp plugin activate nazvanie-plagina

Проверить активную тему через WP-CLI

Куда выполнять: SSH в корне сайта.

wp theme list

Переключиться на стандартную тему:

wp theme activate twentytwentyfive

Перед выполнением проверьте, что такая тема установлена в wp-content/themes.

Проверить файл wp-config.php на синтаксис

Куда выполнять: SSH на сервере.

php -l wp-config.php

Если команда покажет syntax error, нужно исправить строку, которую она укажет.

Проверить PHP-ошибки в файле темы

Куда выполнять: SSH на сервере. Пример для functions.php активной темы.

php -l wp-content/themes/active-theme/functions.php

Замените active-theme на реальное название папки вашей темы.

Результат

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

Проверьте не только главную страницу. Ошибка 500 может появляться точечно:

  • в админке;
  • при сохранении записи;
  • на странице товара;
  • в корзине;
  • на checkout;
  • при отправке формы;
  • при загрузке изображения;
  • при AJAX-запросе;
  • при работе cron;
  • в REST API.

Если сайт восстановился после отключения плагина, не включайте его сразу обратно. Сначала проверьте совместимость, обновления, логи и альтернативы.

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

Проверить базу данных

Ошибка 500 может быть связана с базой данных, если повреждены таблицы, неверные доступы в wp-config.php или MySQL/MariaDB недоступна.

Проверьте:

  • DB_NAME;
  • DB_USER;
  • DB_PASSWORD;
  • DB_HOST;
  • префикс таблиц;
  • доступность MySQL;
  • свободное место на диске;
  • повреждённые таблицы.

Проверить REST API и admin-ajax.php

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

В Chrome DevTools откройте Network и проверьте запросы:

/wp-admin/admin-ajax.php
/wp-json/

Если именно они возвращают 500, причина может быть в конкретном hook, плагине, security-правиле или PHP-ошибке внутри обработчика.

Проверить cron

Если 500 появляется периодически, проблема может запускаться cron-задачей: импортом, рассылкой, резервным копированием, синхронизацией, задачей WooCommerce Action Scheduler или обработкой очереди.

Проверьте cron-события через WP-CLI:

wp cron event list

Проверить место на диске

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

Проверить заражение сайта

Если 500 появился без обновлений и без ваших действий, проверьте сайт на вредоносный код. Подозрительные признаки: неизвестные PHP-файлы, странные include, eval, base64_decode, непонятные cron-задачи, изменённый .htaccess.

Восстановить файлы ядра WordPress

Если повреждены файлы ядра, можно заменить папки wp-admin и wp-includes свежими файлами той же версии WordPress. Не заменяйте wp-content и wp-config.php без понимания, потому что там находятся тема, плагины, загрузки и настройки сайта.

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

Ошибка 1. Сразу удалять плагины

Плагины лучше сначала отключать переименованием папок. Удаление может стереть файлы, настройки или усложнить откат.

Ошибка 2. Не смотреть error_log

Без логов восстановление превращается в угадывание. Один точный PHP Fatal error часто сразу показывает проблемный файл и строку.

Ошибка 3. Заменять весь WordPress целиком

Если причина в теме, плагине, .htaccess или PHP-версии, замена ядра не поможет. Иногда она добавляет новые проблемы.

Ошибка 4. Ставить права 777

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

Ошибка 5. Оставлять WP_DEBUG_DISPLAY включённым

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

Ошибка 6. Чистить базу без backup

Ручное удаление записей из базы может повредить настройки, заказы, пользователей, товары или SEO-данные. Перед любыми SQL-правками нужен backup.

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

Проблема: ошибка 500 на всём сайте

Возможная причина: .htaccess, критическая PHP-ошибка, плагин, тема, версия PHP, memory limit, серверный сбой.

Что делать: проверить error_log, включить debug.log, временно переименовать .htaccess, отключить плагины, проверить тему и PHP.

Проблема: ошибка 500 только в админке

Возможная причина: админский плагин, dashboard widget, конфликт редактора, нехватка памяти, security-плагин.

Что делать: отключить плагины через FTP, проверить debug.log, увеличить memory limit, проверить cookies и кеш браузера.

Проблема: ошибка 500 после обновления плагина

Возможная причина: новая версия плагина конфликтует с темой, PHP или другим плагином.

Что делать: переименовать папку плагина, вернуть сайт, проверить логи, откатить плагин или заменить конфликтующий код.

Проблема: ошибка 500 после изменения .htaccess

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

Что делать: переименовать .htaccess, создать стандартный файл WordPress, затем добавлять правила по одному.

Проблема: ошибка 500 при сохранении страницы

Возможная причина: ModSecurity, REST API, Gutenberg, конструктор страниц, security-плагин, PHP-ошибка в метабоксах.

Что делать: открыть Network в браузере, найти запрос с 500, проверить error_log, временно отключить security-правила только после проверки.

Проблема: ошибка 500 при загрузке изображения

Возможная причина: права папки uploads, лимит размера файла, нехватка памяти, проблема ImageMagick/GD, блокировка сервера.

Что делать: проверить wp-content/uploads, права файлов, PHP upload_max_filesize, post_max_size, memory_limit и логи сервера.

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

Возможная причина: cron, backup, импорт, перегрузка CPU/RAM, нехватка места, долгий SQL-запрос, WooCommerce-задачи.

Что делать: сверить время ошибки с логами, проверить cron, Action Scheduler, нагрузку сервера и свободное место на диске.

FAQ

Что такое ошибка 500 WordPress?

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

Ошибка 500 — это проблема WordPress или хостинга?

Может быть и то, и другое. Часто причина в плагине, теме, .htaccess или PHP-коде. Но также возможны проблемы хостинга: память, права, серверные правила, база данных, PHP-FPM или ModSecurity.

Как исправить ошибку 500, если не открывается админка?

Используйте FTP, файловый менеджер хостинга или SSH. Через них можно переименовать папку plugins, проверить тему, восстановить .htaccess и включить debug.log.

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

Обновление могло вызвать конфликт плагина, темы, PHP-версии или кастомного кода. Нужно смотреть debug.log и отключать последние обновлённые компоненты.

Можно ли просто восстановить сайт из backup?

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

Почему debug.log не создаётся?

Возможные причины: код вставлен не туда, нет прав на запись в wp-content, ошибка происходит до загрузки WordPress или хостинг пишет ошибки только в серверный error_log.

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

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

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

Да. Особенно если кеш-плагин меняет .htaccess, объединяет скрипты, включает агрессивный page cache или конфликтует с серверным кешем.

Что делать, если ошибка 500 только на одной странице?

Проверьте shortcode, шаблон страницы, блоки конструктора, PHP-код, AJAX-запросы, REST API и плагины, которые работают только на этой странице.

Нужно ли обращаться в поддержку хостинга?

Да, если в логах есть серверные ошибки, ModSecurity, проблемы PHP-FPM, превышение лимитов, нехватка памяти, недоступность базы или нет доступа к error_log.

Нужна помощь?

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

Вывод

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

Самый быстрый путь к восстановлению — найти точную ошибку в debug.log или error_log. Самый опасный путь — удалять плагины, менять файлы ядра и чистить базу без backup.

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

Об авторе

vkuzyomko administrator