robots.txt — не броня, а записка на двери
Джон Мюллер тут в очередной раз напомнил вещь, которую многие почему-то до сих пор воспринимают как откровение: robots.txt — это не закон, а просьба. Google может её проигнорировать. Не по злому умыслу, а потому что где-то у тебя ошибка конфигурации или проблема с доступом к самому файлу.
И вот тут я всегда цепляюсь за одну мысль: люди относятся к robots.txt как к сейфу. Написал Disallow — и всё, спрятал. А на деле это скорее записка на двери «не входить». Большинство прохожих её уважит. Но если дверь сломана, или записка написана криво, или её вообще не видно с той стороны, куда стучится краулер — зайдут как ни в чём не бывало.
Откуда берётся игнор
Механика простая и совсем не мистическая. Google может отбросить правила robots.txt, когда:
- сам файл недоступен (5xx-ошибка сервера, таймаут — Google в этой ситуации по умолчанию склонен либо ждать, либо в отдельных случаях краулить, как будто файла нет);
- в синтаксисе правил конфликт или откровенная кривизна — директивы противоречат друг другу, и краулер трактует их по-своему;
- есть более сильный сигнал в другом месте — например, страница уже проиндексирована по внешним ссылкам, и одного запрета на краулинг Google недостаточно, чтобы её выкинуть из индекса.
Последний пункт — вообще отдельная тема, которую почему-то путают чаще всего. robots.txt управляет краулингом, а не индексацией. Это разные вещи. Заблокировал страницу в robots.txt — она может всё равно висеть в выдаче, просто без сниппета, потому что Google видел ссылки на неё и решил, что страница существует и достойна места в индексе. Запрет на обход — не запрет на присутствие.
Почему это особенно больно для CSS и JS
Отдельный разговор — когда в robots.txt блокируют папки со стилями и скриптами. Причины обычно смешные: «эти файлы не для людей, зачем их пускать боту». А смысл в том, что Googlebot рендерит страницу почти как браузер, и если он не может достучаться до CSS/JS, он видит кривую, недорендеренную версию сайта. Это напрямую бьёт по тому, как страница оценивается — и да, даже если сам HTML прекрасен.
Я это видел на живых проектах не раз: сайт формально «оптимизирован», а по факту Googlebot видит голый скелет без стилей, потому что кто-то когда-то заблокировал папку /assets/ «для безопасности». Никто не проверил, никто не подумал о последствиях. Это факт, а не редкий баг — такие вещи живут в проектах годами.
Что с этим делать по-человечески
Не относись к robots.txt как к единственной линии обороны. Это фильтр для краулинга, а не инструмент управления индексацией и уж точно не защита конфиденциальных данных — для этого есть noindex в мета-тегах, X-Robots-Tag в заголовках ответа сервера, а для действительно чувствительного — авторизация на уровне доступа.
Практическая гигиена простая:
Проверяй синтаксис и логику правил на этапе разработки, а не постфактум, когда трафик уже просел. Не блокируй CSS и JS — банально, но продолжают наступать на эти грабли. Регулярно заглядывай в отчёт по robots.txt в Search Console — там прямо видно, что Google считывает и как трактует. И для по-настоящему критичных случаев — когда страница ни при каких обстоятельствах не должна попасть в выдачу — дублируй запрет через noindex, а не надейся на одну строчку Disallow.
Google не враг и не саботажник. Он просто делает то, что технически логично при том наборе сигналов, который ты сам ему предоставил. Если сигналы противоречат друг другу — получишь противоречивый результат. Наведи порядок в базовых вещах — и большинство таких сюрпризов просто перестанут случаться.
Если не хочешь разбираться в этом руками сам — можно доверить технический аудит нашей команде.