Ошибки сервера на страницах (5xx и нет ответа)

пошаговая инструкция · Нужен специалист

← Все инструкции

1. Что произошло

Часть страниц отвечает ошибкой сервера (5xx) или не отвечает вовсе.

2. Почему это важно

Посетители видят ошибку, поисковые роботы не могут прочитать страницы и со временем выбрасывают их из индекса. После исправления: Страницы снова индексируются, пропадают потерянные визиты.

3. На каких страницах обнаружено

Страницы, на которых робот получил код 500–599 или не дождался ответа. Список с адресами — в глубоком обходе и аудите страниц.

Чтобы увидеть адреса на вашем сайте, откройте инструкцию из отчёта или добавьте домен в адрес: /fix/server_errors/ваш-сайт.ru.

4. Как исправить

Шаги

  1. Откройте проблемную страницу сами. Если ошибка повторяется — найдите запись о ней в журнале ошибок по времени запроса.
  2. Если ошибка плавающая — вероятна нехватка ресурсов: роботы создают нагрузку, и сервер не справляется. Включите кэширование, ограничьте частоту обхода (Crawl-delay для Яндекса не учитывается — используйте настройку скорости в Вебмастере), увеличьте тариф.
  3. Для «нет ответа» проверьте таймауты PHP (max_execution_time) и прокси (proxy_read_timeout): тяжёлые страницы упираются в них.
  4. Страницы, которые должны были исчезнуть, отдавайте с кодом 404 или 410, а не 500.
WordPress
  1. Часто виноваты тяжёлые запросы плагинов. Установите Query Monitor на время поиска и посмотрите медленные запросы; включите страничное кэширование.

5. Готовый код

Замените example.com на свой домен. Перед правкой конфигурации сделайте резервную копию файла.

Любой сайт

Ошибки за последние минуты
sudo grep -E ' (500|502|503|504) ' /var/log/nginx/access.log | tail -n 50

6. Как проверить результат

  1. Все адреса из списка отвечают 200 (или 404/410 — если страницы удалены намеренно).
  2. Запустите глубокий обход повторно.
Все проблемные адреса по списку
while read u; do printf '%s ' "$u"; curl -s -o /dev/null -w '%{http_code}\n' "$u"; done < urls.txt

Чтобы перепроверить сайт, откройте отчёт и нажмите «Проверить заново».