Ошибка 500 на сайте: что значит Internal Server Error и как её исправить

Ошибка 500 — всегда поломка на стороне сайта. Разбираем, чем 500 отличается от 502, 503 и 504, где искать причину, как ошибки сервера влияют на поиск и как узнавать о них раньше клиентов. Проверьте свои страницы — в том числе ответ роботам Яндекса и Google.

  • 500, 502, 503, 504: что сломалось и где искать
  • Порядок поиска причины по шагам
  • Как ошибки сервера влияют на индексацию
Коротко

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

  • Причину почти всегда показывают логи сервера и приложения — начинайте с них, а не с догадок.
  • Короткий сбой поиску не страшен. Если ошибка держится, роботы замедляют обход, а затем удаляют страницы из индекса.
  • На время плановых работ отдавайте 503 с Retry-After, а не 500 и не страницу «ведутся работы» с кодом 200.

Проверьте, каким страницам сервер отвечает ошибкой

Вставьте адреса — главную, разделы, карточки, страницы оплаты. Проверка покажет код и время ответа каждой. Переключите запрос на YandexBot: бывает, что ошибку получают только роботы. Отдельная страница — проверка ответа сервера.

До 20 адресов за раз без регистрации, после входа — до 50. Запросы идут с сервера СеоГарда и нигде не сохраняются.

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 или он выполняется дольше лимита — на тяжёлых страницах и при выгрузках.

База данных и диск

База не отвечает, исчерпано число соединений или кончилось место на диске — и сайт не может записать даже лог.

Как найти причину: порядок действий

  1. Повторите и запишите. Какой адрес, во сколько, всегда или иногда, у всех или только после входа. Ошибка на всём сайте и ошибка на одной странице ищутся по-разному.
  2. Откройте логи. Лог ошибок веб-сервера (у nginx обычно /var/log/nginx/error.log), лог PHP или приложения, журнал ошибок в панели хостинга. Ищите записи на время сбоя — там будет файл и строка.
  3. Вспомните последние изменения. Выкладка, обновление, новый плагин, правка .htaccess. Откат последнего изменения — самый быстрый способ проверить гипотезу.
  4. Отключите подозреваемое. В CMS — плагины по одному, временно переименуйте .htaccess и проверьте, поднялся ли сайт.
  5. Проверьте ресурсы. Место на диске, память, число процессов и соединений с базой, лимиты тарифа хостинга.
  6. Не показывайте ошибки посетителям. Подробный вывод ошибок включайте только на тестовой копии: на рабочем сайте текст исключения раскрывает пути к файлам и настройки.

Как ошибка 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 или слишком долго, — с задачей и списком адресов. Демо — бесплатно и без срока.

Проверить сайт бесплатноТарифы

Ещё материалы

Индексирование · 12 минут чтения

Коды ответа сервера: что значат 200, 301, 404, 500 и как они влияют на поиск

Коды ответа сервера 200, 301, 302, 304, 404, 410, 429, 500, 503 и другие: что значат, как их обрабатывают Яндекс и Google, как проверить код ответа страницы и какие ошибки встречаются чаще всего. Массовая проверка ответа сервера онлайн.

Индексирование · 11 минут чтения

Ошибка 404 на сайте: что значит, откуда берётся и как исправить

Что значит ошибка 404 Not Found на сайте, откуда она берётся и вредит ли продвижению. Как найти все страницы с 404, когда ставить 301, а когда оставить 404 или 410, какой должна быть страница ошибки и как её настроить.

Мета-теги · 12 минут чтения

Микроразметка Schema.org: какая нужна сайту в 2026 году и как её проверить

Что такое микроразметка Schema.org, какие типы использует Яндекс и что показывает Google в 2026 году, какая разметка нужна магазину, компании и блогу, правила и ошибки. Проверка микроразметки онлайн и генератор JSON-LD.