500 Internal Server Error — это HTTP-статус ответа с кодом 500, который сообщает браузеру и поисковому роботу, что на сервере произошла внутренняя ошибка сервера и запрос не может быть выполнен. Это самый общий код из семейства 5xx (серверные ошибки) — он не уточняет, что именно пошло не так, и требует диагностики через логи. Для SEO длительная ошибка 500 опаснее любого другого статус-кода: при многодневной недоступности сайта Google и Яндекс выводят страницы из индекса, и восстановление позиций занимает недели. Самые частые причины ошибки 500 — ошибки в PHP-коде, превышение лимитов памяти, неисправный .htaccess и проблемы с базой данных.
Что такое 500 Internal Server Error
Ошибка 500 (500 error) — это HTTP-статус из семейства 5xx (серверные ошибки). Сервер получил запрос, но не смог его обработать из-за внутренней ошибки сервера. В отличие от 4xx, где причина — на стороне клиента (неправильный URL, отсутствие прав), 5xx сигнализирует о проблеме на самом сервере.
Код 500 — самый общий и неинформативный в этом семействе. Сервер сообщает только сам факт ошибки, не уточняя, что именно пошло не так. Для пользователя это выглядит как «500 Internal Server Error», «HTTP 500» или вовсе пустой экран. Для диагностики всегда нужно смотреть логи — сам по себе код не даёт никакой информации о причине.
В типичной архитектуре сайта ошибка 500 возникает, когда PHP-скрипт прерывается с фатальной ошибкой, веб-сервер не может прочитать конфигурацию, исчерпан лимит памяти или произошёл сбой в базе данных. Каждый сценарий требует своего подхода к восстановлению.
Семейство 5xx: 500, 502, 503, 504
Хотя в обиходе все серверные ошибки называют «пятисотками», у каждого кода своя семантика. Различие важно и для диагностики, и для корректной реакции поисковика.
| Код | Название | Значение | Типовая причина |
|---|---|---|---|
| 500 | Internal Server Error | Общая ошибка сервера | Ошибка в PHP, .htaccess, базе данных |
| 502 | Bad Gateway | Прокси не получил ответ от бэкенда | PHP-FPM упал, бэкенд недоступен |
| 503 | Service Unavailable | Сервер временно недоступен | Перегрузка, плановые работы |
| 504 | Gateway Timeout | Бэкенд не ответил вовремя | Долгий запрос к базе, длительный скрипт |
Для SEO самый правильный код при технических работах — 503 с заголовком Retry-After. Он сообщает поисковику: сайт временно недоступен, вернись через указанное время. В отличие от 500, поисковик не предпринимает попыток деиндексации и сохраняет позиции.
500 — это аварийный код, означающий неожиданную поломку. 503 — это плановый код, означающий контролируемую недоступность. При технических работах нужен 503 с Retry-After, а не 500.
Основные причины 500
Причины 500 ошибки распределяются по нескольким типовым категориям. Понимание категории помогает быстрее определить, где искать в логах.
- Ошибки в PHP-коде. Синтаксические ошибки, обращение к несуществующим функциям, фатальные исключения. В WordPress самая частая причина — несовместимость плагина с новой версией PHP или ядра.
- Превышение memory_limit. PHP-скрипту не хватило выделенной памяти для выполнения. Типично для тяжёлых импортов, генерации больших отчётов, работы с большими массивами данных.
- Превышение max_execution_time. Скрипт не завершился за отведённое время (обычно 30–60 секунд). Возникает при долгих операциях с базой данных или внешних API-запросах.
- Ошибки в .htaccess. Синтаксическая опечатка в директивах Apache, обращение к несуществующему модулю, циклический rewrite. Сервер не может загрузить конфигурацию каталога и возвращает 500.
- Проблемы с базой данных. Превышен лимит соединений, исчерпан размер таблицы, повреждены индексы, MySQL/MariaDB недоступен. WordPress в этом случае может показывать «Error establishing a database connection» или 500.
- Несовместимость PHP-версии. Хостинг обновил PHP до 8.x, а сайт работает на коде для PHP 5.6–7.x. Множество устаревших функций удалено, что приводит к фатальным ошибкам.
- Превышение квот хостинга. На shared-хостинге исчерпан лимит CPU, RAM, дискового пространства или процессов. Сервер прерывает запросы с кодом 500 или 503.
- Битые файлы ядра CMS. Повреждение файлов при загрузке через FTP, ошибки во время обновления, неполное копирование при миграции.
Влияние 500 на SEO
Реакция поисковиков на 500 зависит от длительности и масштаба проблемы.
Короткая ошибка 500 (минуты). Google и Яндекс не делают выводов — это нормальная флуктуация. Робот возвращается через несколько часов и продолжает обход.
Ошибка 500 в течение нескольких часов. Поисковики снижают частоту обхода сайта и ждут восстановления. Search Console фиксирует ошибки в разделе «Покрытие → Ошибки сервера», но из индекса страницы пока не удаляются.
Ошибка 500 несколько дней. Google начинает временно исключать страницы из выдачи. Не из индекса — из ранжирования по запросам. Когда сайт восстанавливается, позиции обычно возвращаются в течение 1–2 недель.
Ошибка 500 неделями. Сайт полностью выпадает из выдачи. Google и Яндекс воспринимают это как сигнал, что ресурс заброшен. Восстановление позиций после длительной недоступности занимает месяцы и не всегда даёт полный возврат к прежнему трафику.
Search Console показывает все ошибки 500 в разделе «Индексирование → Страницы» со статусом «Ошибка сервера (5xx)». Яндекс.Вебмастер дублирует информацию в «Диагностике» и шлёт уведомления при массовых 500.
Как диагностировать 500
500 — единственный HTTP-код, который сам по себе ничего не говорит о причине. Без логов разобраться невозможно.
Логи сервера
Главный источник информации. В Apache — error.log, в Nginx — error.log в каталоге логов сайта. В строке с моментом возникновения ошибки указана конкретная причина: имя файла, номер строки, текст исключения.
# Apache на типовых хостингах
/var/log/apache2/error.log
/home/user/logs/error.log
# Nginx
/var/log/nginx/error.log
/var/log/nginx/site.error.log
# Просмотр последних 50 строк
tail -50 /var/log/apache2/error.logWP_DEBUG в WordPress
В wp-config.php временно включается режим отладки:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);После этого все PHP-ошибки записываются в /wp-content/debug.log. После диагностики режим обязательно отключают — на боевом сайте он не должен работать постоянно.
Панель хостинга
В cPanel, ISPmanager, FastPanel и других панелях есть раздел просмотра логов. Часто хостинг показывает только последние 500 строк — для глубокой диагностики нужен прямой SSH-доступ к файлам логов.
Метод исключения для WordPress
Если логи недоступны, причину ищут перебором. Через FTP переименовать папку /wp-content/plugins/ в plugins_off — все плагины отключатся. Если 500 ушла, виноват один из плагинов. Возвращать названия по одному, пока ошибка не вернётся. Аналогично с темой — переключение на стандартную (Twenty Twenty-Four) проверяет, не в теме ли проблема.
Как исправить 500
| Причина | Решение |
|---|---|
| Превышение memory_limit | Увеличить в php.ini или wp-config.php: define('WP_MEMORY_LIMIT', '256M'); |
| Ошибка в .htaccess | Переименовать .htaccess во временный .htaccess.bak; если 500 ушла — править оригинал по строкам |
| Несовместимость плагина | Откатить плагин до предыдущей версии или временно отключить |
| Несовместимость с новой PHP | В панели хостинга переключить PHP на стабильную версию (7.4 или 8.0) |
| Проблема с базой данных | Проверить параметры подключения в wp-config.php; обратиться к хостингу за состоянием MySQL |
| Битые файлы ядра | Переустановить ядро WordPress: загрузить свежий архив, заменить wp-admin и wp-includes |
| Превышение квот хостинга | Проверить нагрузку в панели; перейти на тариф выше или оптимизировать сайт |
Если 500 возникла после обновления — самое быстрое решение откатить именно последнее изменение: плагин, тему, ядро или версию PHP. Это позволит вернуть сайт в рабочее состояние за минуты, а не за часы поиска причины.
При запланированных технических работах правильный подход — заранее настроить отдачу 503 с заголовком Retry-After, а не оставлять сайт с 500. В Apache это делается через .htaccess:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.100$
RewriteCond %{REQUEST_URI} !/maintenance\.html$
RewriteRule ^(.*)$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html
Header always set Retry-After "3600"Часто задаваемые вопросы
Чем 500 отличается от 503?
500 означает неожиданную внутреннюю ошибку сервера — сбой произошёл и сервер не знает, когда восстановится. 503 означает плановую или контролируемую недоступность — сервер сообщает, что сейчас занят, и через указанное в Retry-After время станет доступен. Для SEO 503 предпочтительнее: поисковик понимает, что это временно, и не снижает позиции.
Влияет ли 500 на ранжирование?
Короткие 500 не влияют. Длительные (часы и дни) приводят к снижению частоты обхода. При недоступности больше недели страницы начинают терять позиции в выдаче. После восстановления Google возвращает позиции за 1–2 недели; Яндекс — за 2–4 недели.
Что делать, если ошибка 500 не уходит?
Первое — посмотреть логи сервера за последние минуты, там обычно указана точная причина. Если логов нет — последовательно отключить плагины, переключить тему на стандартную, проверить .htaccess. Если ничего не помогает — обратиться к хостингу, у них есть доступ к логам уровня сервера.
Может ли 500 быть из-за DDoS?
Да. Под высокой нагрузкой сервер исчерпывает ресурсы CPU, оперативной памяти или количества соединений с базой и начинает прерывать запросы с 500. В этом случае нужно подключать защиту — Cloudflare, Sucuri или серверные WAF, — и масштабировать инфраструктуру.
Сколько времени можно отдавать ошибку 500 без последствий для SEO?
Безопасный диапазон — до нескольких часов. До суток — заметных потерь обычно не происходит, но в Search Console будут предупреждения. Дольше суток — поисковики начинают снижать ранжирование. Дольше недели — серьёзная просадка позиций. При плановых работах вместо 500 нужно отдавать 503 — это сохраняет SEO.
Как настроить 503 при технических работах?
В Apache — через .htaccess с директивой RewriteRule на статическую страницу с кодом 503 и заголовком Retry-After с указанием времени в секундах. В Nginx — через return 503 в конфигурации с заголовком add_header Retry-After "3600". В WordPress есть плагины Maintenance и WP Maintenance Mode, которые делают это автоматически.




