Новый формат
Ошибка 500 Internal Server Error: что значит и как исправить
500 Internal Server Error — ответ сервера: запрос дошёл, но приложение или конфигурация упали при обработке. Пользователь и робот страницу не получают.
Ниже — чем 500 отличается от соседних 5xx, где искать причину и в каком порядке чинить. Это не «штраф поиска», но долгий даунтайм режет трафик и обход.
Что означает 500 Internal Server Error
Код из группы 5xx: сервер принял запрос, но не смог корректно его обработать. В отличие от 404 (нет ресурса) или 403 (запрет), причина почти всегда внутри — код, конфиг, ресурсы, зависимости.
Браузер показывает общую страницу ошибки; детали — в логах приложения и веб-сервера. Пользователю достаточно знать: «сайт сломан», владельцу — где именно.
Типичный контекст:
- после обновления CMS или плагина;
- после правки `.htaccess` или nginx;
- на конкретной форме/отчёте под нагрузкой;
- при нехватке памяти или таймауте PHP.
Частые причины
Список длинный, но на практике чаще всего виноваты недавние изменения и лимиты окружения. Вспоминайте, что меняли за последний час или сутки: деплой, плагин, права на файлы, PHP-версию.
Повреждённый `.htaccess`, синтаксическая ошибка в правилах, конфликт модулей, устаревший плагин после обновления ядра — классика для WordPress и похожих CMS.
Проверяйте в первую очередь:
- логи PHP / приложения и error_log веб-сервера;
- последний деплой и миграции БД;
- новые или обновлённые плагины и тему;
- `.htaccess` и конфиг rewrite;
- лимиты memory_limit, max_execution_time, место на диске;
- права на каталоги кэша и загрузок.
Как диагностировать
Подтвердите код снаружи: `curl -I https://example.ru/problem-url/`. Зафиксируйте время, URL и воспроизводимость. Без этого поддержка хостинга и разработчик гадают.
Сверьте время ошибки с логами. Сообщения Fatal error, Allowed memory size, syntax error, rewrite loop укажут слой. Если 500 только на одном сценарии — смотрите код этой формы или тяжёлый SQL, а не «весь сервер».
Порядок:
- подтвердить 500 снаружи и в инкогнито;
- открыть логи приложения и веб-сервера;
- откатить или отключить последнее изменение;
- проверить диск, inode, лимиты PHP;
- на CMS — временно отключить свежие плагины (через файлы, если админка недоступна).
Способы исправления
Исправление = устранение причины из лога, а не смена DNS «на всякий случай». Битый `.htaccess` восстанавливают из бэкапа или пересоздают штатными правилами CMS. Плагин с Fatal error — отключают переименованием каталога.
Если скрипт не укладывается в лимиты — оптимизируют запрос/код или поднимают адекватные лимиты на тарифе (не бесконечно). Дешёвый хостинг с постоянным 500 на пиках — повод пересмотреть ресурсы, а не только «починить файл».
Рабочие шаги:
- бэкап до правок;
- откат деплоя / плагина / правки конфига;
- починка синтаксиса и зависимостей;
- проверка прав и владельца файлов;
- повторный `curl` и сценарий пользователя.
CMS и типичные ловушки
На WordPress и аналогах админка сама может отдавать 500 — тогда правят через FTP/SSH: `plugins` → переименовать свежий каталог, тему — на запасную, `.htaccess` — временно упростить.
После восстановления не забудьте вернуть нужные правила ЧПУ и проверить формы, корзину и вход: «главная открылась» ≠ «всё работает».
После инцидента:
- обновить ядро и плагины на staging;
- убрать заброшенные модули;
- включить мониторинг ключевых URL;
- зафиксировать причину в тикете/чате команды.
Профилактика и SEO-взгляд
Staging перед релизом, бэкапы, алерты uptime на главную и ключевые сценарии, запас по CPU/RAM — базовая гигиена. Для SEO-команды 5xx в Search Console / Вебмастере — сигнал чинить доступность, а не «докачать ссылок».
После длительного простоя проверьте индекс важных URL и обход. Массовый «переобход всего сайта» до стабилизации ответа только усиливает нагрузку.
Минимум контроля:
- алерт, если главные URL отдают 5xx;
- не путать 500 с фильтром поиска;
- релизы — через staging;
- логи ротируются и доступны команде.
Частые вопросы
500 — это проблема SEO?
Косвенно: страница недоступна. Долгий или массовый 5xx вреден для UX и индексации. Сама цифра 500 — про сервер/код, не про «фильтр».
Чем 500 отличается от 502 и 504?
500 — ошибка на стороне приложения или его окружения. 502 — шлюз не получил нормальный ответ бэкенда. 504 — шлюз не дождался ответа (таймаут). Подробнее про шлюз — в материале про 502.
Может ли 500 быть только у части посетителей?
Да: конкретный URL, форма, тяжёлый отчёт, кэш, другой сервер в кластере. Проверьте с инкогнито и снаружи (`curl -I`).
Поможет ли смена темы WordPress «вслепую»?
Иногда как тест, если есть бэкап и staging. Лучше сначала логи и последнее изменение (плагин, деплой, .htaccess).
Нужен ли редирект с 500?
Нет. Чинят причину. Редирект маскирует симптом и путает диагностику.
Когда звать хостинг?
Если нет доступа к логам/серверу, диск переполнен, лимиты PHP/памяти исчерпаны или в статусе провайдера инцидент. Передайте время, URL и код ответа.
Влияет ли 500 на позиции сразу?
Краткий сбой обычно переживается. Дни недоступности важных URL — уже риск для обхода и конверсий. Сначала стабильность, потом «переобход».
Сайт отдаёт 500?
Поможем разобрать логи и последнее изменение — чтобы страницы снова открывались.
Обсудить задачу