Ошибка 500 Internal Server Error значит, что запрос дошёл до сайта, но сервер не смог его обработать: упал код, сломалась настройка, не хватило памяти или не ответила база данных. В отличие от 404, это всегда поломка на стороне сайта — посетитель тут ни при чём.
- Причину почти всегда показывают логи сервера и приложения — начинайте с них, а не с догадок.
- Короткий сбой поиску не страшен. Если ошибка держится, роботы замедляют обход, а затем удаляют страницы из индекса.
- На время плановых работ отдавайте 503 с Retry-After, а не 500 и не страницу «ведутся работы» с кодом 200.
Проверьте, каким страницам сервер отвечает ошибкой
Вставьте адреса — главную, разделы, карточки, страницы оплаты. Проверка покажет код и время ответа каждой. Переключите запрос на YandexBot: бывает, что ошибку получают только роботы. Отдельная страница — проверка ответа сервера.
500, 502, 503, 504: в чём разница
| Код | Что произошло | Где искать причину |
|---|---|---|
| 500 Internal Server Error | Приложение упало при обработке запроса | Логи PHP или приложения, последние изменения кода и настроек |
| 502 Bad Gateway | Веб-сервер (nginx) не получил ответ от приложения: PHP-FPM или Node.js не запущен или упал | Статус процесса приложения, его лог и лог nginx |
| 503 Service Unavailable | Сервер временно не может обслужить запрос: перегрузка, лимит хостинга, режим работ | Нагрузка, лимиты тарифа, включённый режим обслуживания |
| 504 Gateway Timeout | Приложение не успело ответить за отведённое время | Медленные запросы к базе, внешние API, тяжёлые страницы |
| 520–524 | Ошибки CDN или прокси: он не дозвался до сервера сайта | Доступность сервера, настройки CDN, блокировки по IP |
Все эти коды поисковики относят к ошибкам сервера. Полный список кодов и как их обрабатывают роботы — в статье коды ответа сервера.
Частые причины ошибки 500
Ошибка в коде
Фатальная ошибка PHP, необработанное исключение, несовместимость версий после обновления языка или библиотек.
Обновление CMS или плагина
Сайт работал, после обновления — 500. Самая частая история у WordPress и других CMS с плагинами.
.htaccess и настройки сервера
Опечатка в .htaccess или директива, которую сервер не поддерживает, — и весь сайт отвечает 500.
Права на файлы
Скрипт не может прочитать файл или записать кэш после переноса сайта или неудачного деплоя.
Память и время
Скрипту не хватает memory_limit или он выполняется дольше лимита — на тяжёлых страницах и при выгрузках.
База данных и диск
База не отвечает, исчерпано число соединений или кончилось место на диске — и сайт не может записать даже лог.
Как найти причину: порядок действий
- Повторите и запишите. Какой адрес, во сколько, всегда или иногда, у всех или только после входа. Ошибка на всём сайте и ошибка на одной странице ищутся по-разному.
- Откройте логи. Лог ошибок веб-сервера (у nginx обычно
/var/log/nginx/error.log), лог PHP или приложения, журнал ошибок в панели хостинга. Ищите записи на время сбоя — там будет файл и строка. - Вспомните последние изменения. Выкладка, обновление, новый плагин, правка .htaccess. Откат последнего изменения — самый быстрый способ проверить гипотезу.
- Отключите подозреваемое. В CMS — плагины по одному, временно переименуйте .htaccess и проверьте, поднялся ли сайт.
- Проверьте ресурсы. Место на диске, память, число процессов и соединений с базой, лимиты тарифа хостинга.
- Не показывайте ошибки посетителям. Подробный вывод ошибок включайте только на тестовой копии: на рабочем сайте текст исключения раскрывает пути к файлам и настройки.
Как ошибка 500 влияет на поиск
- Яндекс показывает в поиске только страницы с ответом 200. Страница, которая отдаёт 500, из поиска выпадает, пока не заработает.
- Google при ошибках 5xx и 429 временно замедляет обход — тем сильнее, чем больше адресов с ошибкой. Ранее проиндексированные страницы сначала остаются в индексе, но если ошибка держится, их удаляют. Когда сайт снова отвечает 200, обход постепенно восстанавливается.
- Ошибки только для роботов — самые коварные: владелец видит рабочий сайт, а робот получает 500 из-за защиты, лимитов или отдельной ветки кода для ботов. Поэтому проверяйте ответ и с User-Agent робота.
Плановые работы
Отдавайте 503 с заголовком Retry-After — пример настройки для nginx есть в статье про коды ответа. Страница «сайт на обслуживании» с кодом 200 может попасть в индекс вместо содержимого, а 500 говорит роботу о поломке, а не о плановых работах.
Как не узнавать об ошибке от клиентов
- Мониторинг доступности главной и ключевых страниц раз в минуту — с уведомлением в мессенджер или на почту.
- Тестовая копия для обновлений CMS, плагинов и кода: сначала там, потом на рабочем сайте.
- Резервные копии файлов и базы перед каждым обновлением — чтобы откат занимал минуты.
- Сбор ошибок приложения с уведомлениями: о падении вы узнаете раньше посетителей.
- Регулярный обход сайта — ошибки 5xx на отдельных страницах мониторинг главной не заметит. СеоГард обходит все страницы по расписанию и показывает, где сервер отвечает ошибкой.
Чек-лист
Проверьте страницу по пунктам
0 из 8Отметки сохраняются только в этом браузере.
Частые вопросы
Что означает ошибка 500 на сайте?
500 Internal Server Error — сервер получил запрос, но не смог его обработать из-за внутренней ошибки: упал код, сломалась настройка, не хватило ресурсов или не ответила база данных. Проблема на стороне сайта, а не посетителя.
Как исправить ошибку 500?
Посмотрите логи веб-сервера и приложения на время сбоя — там будет причина. Затем проверьте последние изменения (обновления CMS и плагинов, правки .htaccess, выкладку кода) и ресурсы: место на диске, память, соединения с базой.
Чем 500 отличается от 502 и 503?
500 — ошибка внутри приложения. 502 — веб-сервер не получил ответ от приложения, например PHP-FPM не запущен. 503 — сервер временно не может обслужить запрос из-за перегрузки или работ. 504 — приложение не успело ответить.
Как ошибка 500 влияет на позиции?
Короткий сбой поиску не страшен. Если ошибка держится, Яндекс исключает страницы, которые отвечают не 200, а Google сначала замедляет обход, а затем удаляет страницы из индекса. После исправления обход постепенно восстанавливается.
Какой код отдавать на время технических работ?
503 Service Unavailable с заголовком Retry-After. Так робот поймёт, что недоступность временная. Страница «ведутся работы» с кодом 200 может попасть в индекс вместо содержимого.
Узнавайте об ошибках сервера сразу
СеоГард обходит все страницы по расписанию и показывает, где сервер отвечает ошибкой 5xx или слишком долго, — с задачей и списком адресов. Демо — бесплатно и без срока.
