Почему краулер получает HTTP 500: диагностика сервера
HTTP 500 — это сбой приложения или окружения на стороне сервера, а не обычная SEO-рекомендация. Пока причина не устранена, поисковый робот и пользователь могут получать пустую страницу или ошибку.
Когда стоит проверить
- Одна страница возвращает 500, а остальные отвечают 200: вероятнее ошибка конкретного обработчика, PHP include или расширения.
- Ошибка возникает только при запуске обхода: возможны таймауты, память, ограничения хостинга или сбой внешнего HTTP-запроса.
- В браузере ошибка непостоянна, в логах видны Fatal error или Allowed memory size exhausted.
Пошаговая диагностика и исправление
- Зафиксируйте URL, метод, точное время и HTTP-код через curl -I или вкладку Network.
- Найдите запрос в error_log PHP, журнале веб-сервера и журналах приложения по времени. Не включайте display_errors на публичном сайте.
- Проверьте версию PHP, наличие curl, DOM, mbstring, права каталогов и относительные пути require/include.
- Сделайте минимальный проверочный запрос; если ошибка только при POST, разделите проверку рендера формы и выполнение сетевого обхода.
- Исправив первопричину, проверьте несколько URL: корректный, с редиректом, 404 и большой HTML.
Практический пример
Симптом: /crawler → 500 даже при GET. Лог: Call to undefined function curl_init(). Решение: установить расширение PHP cURL или отобразить страницу с сообщением об отсутствии зависимости, вместо вызова функции.
Как понять, что исправление сработало
Частые ошибки
- Нельзя скрывать 500 редиректом на главную: проблема останется, а диагностика усложнится.
- Нельзя удалять проверки внутренних IP ради работоспособности краулера: это повышает риск SSRF.
Применить знания
Перейдите к связанному инструменту, проверьте свои данные и сохраните результат для сравнения после исправления.
Открыть инструмент →