Ошибки WordPress

Ошибка 500 WordPress: пошаговый разбор

МаксимИнженер по WordPress · 10+ лет с WordPress и WooCommerce10 мин чтения91 просмотр

Ошибка 500 (Internal Server Error) — сигнал сервера о сбое внутри сайта. Разбираем, где искать причину на Beget, Timeweb и VPS — не общие советы про хостинг.

В статье
  • Что вообще значит «ошибка 500»
  • Шаг 1. Включите WP_DEBUG и читайте логи
  • Шаг 2. Проверьте .htaccess
  • Шаг 3. Проверьте права доступа

Нужна помощь — срочная починка.

Ошибка 500 WordPress: пошаговый разбор

Владелец интернет-магазина видит «Internal Server Error» сразу после включения кэша или переноса с другого хостинга — заказы стоят, реклама крутится. Если непонятно, 500 это или другой код — начните с карты симптомов. В практике 500 на WordPress чаще всего даёт битый .htaccess или fatal в плагине, а не «сломавшийся сервер». Ниже — пошаговый разбор от логов до mod_security.

Что вообще значит «ошибка 500»

Ошибка 500 Internal Server Error в браузере
HTTP 500 — ответ сервера: внутри приложения сбой, браузер здесь ни при чём.

HTTP 500 (Internal Server Error) — общий ответ веб-сервера, который означает: «внутри что-то сломалось, я не понимаю что именно». В отличие от 404 (страница не найдена) или 403 (доступ запрещён), причина 500 всегда находится на стороне сервера или приложения. Браузер тут ни при чём, сетевая часть отработала корректно.

На WordPress 500 обычно вызывают четыре источника: ошибки в .htaccess, fatal PHP-ошибки, неправильные права на файлы и проблемы конфигурации (PHP-extension, mod_security, лимиты CGI). Разбираем в порядке частоты.

Шаг 1. Включите WP_DEBUG и читайте логи

Логи ошибок WordPress и сервера
Если debug.log пуст — смотрите error_log Apache/nginx в панели хостинга.

Сначала — то же, что и при белом экране. В wp-config.php над строкой «That's all, stop editing!»:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Перезагрузите страницу. После этого wp-content/debug.log покажет fatal-ошибку. Если файл пуст — значит проблема не в PHP, а в веб-сервере. Откройте error_log Apache / nginx — он лежит в корне сайта или в личном кабинете хостинга.

Шаг 2. Проверьте .htaccess

Файл htaccess WordPress
Лишние директивы после миграции — частая причина 500 на shared-хостинге.

Это самая частая причина 500 на shared-хостинге. После миграции, активации SEO-плагина или плагина безопасности в .htaccess могли добавиться директивы, которые сервер не поддерживает.

Откройте .htaccess в корне. Должны быть только стандартные WordPress-правила:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Всё, что между этими маркерами или после них и выглядит странно (Header set ... с непонятными значениями, php_value ... с большими лимитами, перенаправления на чужие домены) — кандидаты на удаление.

Быстрый тест: переименуйте .htaccess в .htaccess.bak. Если сайт ожил — проблема была здесь. Зайдите в админку → Настройки → Постоянные ссылки → Сохранить. WordPress сгенерирует чистый .htaccess.

Шаг 3. Проверьте права доступа

Права доступа chmod для WordPress
Папки 755, файлы 644, wp-config.php — 600: базовая норма для WordPress.

500 может возникать, если права на файлы выставлены слишком жёстко (например, 600) или, наоборот, слишком слабо (777). Правильные права для WordPress:

  • Папки — 755
  • Файлы — 644
  • wp-config.php600 (или 640, если хостер требует доступ группы)
  • wp-content/uploads — рекурсивно 755 для папок и 644 для файлов

В терминале через SSH:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 600 wp-config.php

Шаг 4. PHP-память и таймаут

Если в error_log видите Premature end of script headers или Internal Server Error без подробностей — попробуйте увеличить лимиты PHP. В .htaccess:

php_value memory_limit 256M
php_value max_execution_time 120
php_value max_input_vars 5000

Если хостер не разрешает php_value в .htaccess (выдаёт 500 на этой же директиве) — те же значения нужно прописать через панель управления хостингом или в php.ini на VDS.

Шаг 5. Откат последнего обновления

Если 500 появилась после обновления плагина, темы или ядра — нужен откат. Алгоритм такой же, как для белого экрана: переименовать папку плагина / темы по FTP, проверить, появится ли сайт.

Шаг 6. mod_security и хостинг-лимиты

mod_security и блокировка запросов WordPress
mod_security иногда блокирует admin-ajax.php и загрузку файлов — решается через техподдержку хостера.

На некоторых хостингах включён mod_security — модуль безопасности Apache, который блокирует «подозрительные» запросы. Иногда он реагирует на безобидные действия: загрузку файла, POST с большим телом, обращение к admin-ajax.php с определёнными параметрами.

Это решается только обращением в техподдержку хостера: попросите проверить лог mod_security по вашему сайту за последние 24 часа. Они увидят, какое правило срабатывает, и либо отключат его для вас, либо подскажут, как обойти.

Шаг 7. Что-то экзотическое

Если ни один из шагов не помог, остаются редкие причины:

  • Не хватает PHP-расширения (например, php-mbstring, php-curl, php-zip) — решается установкой через хостинг.
  • OPcache закэшировал битую версию файла — решается перезапуском PHP-FPM или сбросом OPcache.
  • Закончилось место на диске — проверьте через панель хостинга, может быть забит логами или uploads.
  • База данных «повисла» — обычно сопровождается ошибкой подключения к базе вместо 500.

Когда лучше позвать спеца

Если белый экран можно починить за 15–30 минут самостоятельно, то 500 часто требует доступа к логам и хостингу. Частая скрытая причина обеих проблем — накопленные лишние плагины и конфликт после Update All. Если шаги 1–4 не помогли — пишите. Сделаем разбор бесплатно, по итогу скажем точную причину и сроки.

Поделиться: Telegram VK
Сложный случай?

Опишите ситуацию — поможем

Только WordPress. Если статья не закрыла вопрос — напишите, посмотрим конкретно ваш сайт.

Если есть — поможет быстрее оценить задачу.
Необязательно · до 10 МБ · PNG, JPG, PDF, ZIP
Удобный канал связи

URL сайта и краткое описание задачи. Чем больше деталей, тем точнее оценка.

Не передаём третьим лицам · Политика