Файл robots.txt знают все и почти никто не читает — ни чужой, ни свой.
Мы прочитали 260 чужих и разобрали их по правилам, а не по строкам.
Что получилось прочитать
22.09.2026 мы запросили robots.txt у 260 адресов компаний Екатеринбурга.
| Что ответил адрес | Сколько |
|---|---|
| Файл отдан | 242 |
| Файла нет (404) | 8 |
| Отказ в доступе (403) | 3 |
| Не ответил вовсе | 5 |
| Прочие коды | 2 |
Из 242 отданных три оказались не файлом, а страницей сайта: сервер отдал HTML с кодом 200. Для робота это хуже, чем отсутствие файла: на 404 он понимает «правил нет, читаю всё», а на HTML пытается разобрать разметку как директивы. Ещё один файл оказался пустым — это, наоборот, законная запись: пустой файл означает ровно то же, что его отсутствие.
Осталось 239 настоящих файлов. Медианный — 24 строки, 525 байт. Самый большой — 21 килобайт.
Главная ловушка: строка не равна правилу
Проверка «в файле есть Disallow: / — значит, сайт закрыт от поиска»
кажется очевидной. Мы её провели: строка нашлась в 15 файлах.
Потом разобрали те же файлы по правилам стандарта: директива относится не к
файлу, а к группе, а группу открывают строки User-agent. Осталось три
адреса. Одиннадцать находок из пятнадцати оказались ложными, и все —
одинаковыми: под User-agent: * лежали безобидные запреты служебных
папок, а Disallow: / стоял в группе аналитического бота — AhrefsBot,
SemrushBot, MJ12bot, Baiduspider. Сайт закрыт от сборщиков ссылок, а не от
поиска.
Ещё один файл выглядит как закрытый, но им не является:
User-agent: Yandex
Disallow: /
Allow: /$
Allow: /services/cars/autoelectrics/$
Это не «закрыто всё», а «открыто перечисленное»: белый список из главной и нескольких разделов. Приём редкий и осознанный.
Что осталось после разбора:
- один сайт закрыт от всех —
User-agent: *иDisallow: /, две строки, никаких оговорок; - один закрыт от Яндекса — от Google при этом открыт;
- один держит для Яндекса тот самый белый список;
- от Google не закрыт ни один.
Почему это стоит проверять внимательно: признак «закрыт в robots.txt» попадает в аудит и звучит как приговор. Ложная находка опровергается за минуту — вместе с доверием ко всему остальному отчёту.
Файл, который закрывает сайт по букве и не закрывает по смыслу
Отдельно стоит четвёртый случай — он объясняет, почему разбор вообще нужен:
User-agent: *
User-agent: Baiduspider
Disallow: /
User-agent: DataForSeoBot
Disallow: /
...
Владелец явно хотел запретить обход агрессивным ботам и оставить всё
открытым для остальных. Но по стандарту подряд идущие строки User-agent
образуют одну группу: пустая строка между ними группу не закрывает,
закрывает её первая директива. Значит, * попадает в ту же группу, что и
Baiduspider, и запрет Disallow: / относится ко всем.
Считать этот сайт закрытым или нет — вопрос не к замеру, а к тому, как поведёт себя конкретный робот. Мы вынесли его отдельно и не смешали с явным запретом. Именно поэтому в числах выше стоит «один», а не «два».
Директивы, которых больше нет
| Директива | В скольких файлах | Состояние |
|---|---|---|
Sitemap | 203 | Работает |
Host | 80 | Отменена |
Clean-param | 67 | Работает, только Яндекс |
Crawl-delay | 12 | Отменена |
Про Crawl-delay справка Вебмастера говорит прямо:
С 22 февраля 2018 года Яндекс перестал учитывать директиву Crawl-delay.
Двенадцать файлов держат её восемь лет спустя. Вреда от неё нет, пользы тоже: скорость обхода задаётся в самом Вебмастере, а не в файле.
Host — та же история, но масштабнее: её держит каждый третий файл. В
нынешней справке раздел про robots.txt перечисляет User-agent,
Disallow и Allow, Sitemap, Crawl-delay и Clean-param. Директивы
Host среди них нет вовсе. Когда-то она указывала главное зеркало сайта;
теперь эту работу делает переадресация и канонический адрес.
А Sitemap — наоборот, живая и полезная: её указали 203 файла из 239.
Остальные 36 не подсказали роботу, где лежит карта сайта.
Yandex или YandexBot — разница, на которой мы сами споткнулись
В обойдённых файлах User-agent: Yandex встречается 60 раз, а
User-agent: YandexBot — четыре. Кажется мелочью. Это не мелочь, и
справка объясняет почему:
В файле
robots.txtробот проверяет наличие записей, начинающихся сUser-agent:, в них учитываются подстрокиYandex(регистр значения не имеет) или*. Если обнаружена строкаUser-agent: Yandex, то строкаUser-agent: *не учитывается.
И следом:
Если обнаружены директивы для конкретного робота, директивы
User-agent: YandexиUser-agent: *не используются.
Читается это так. Yandex — все роботы Яндекса сразу. YandexBot — только
основной индексирующий. И группа для конкретного робота отменяет для
него обе общие: и Yandex, и *. То есть файл, где под YandexBot
написаны две строки, а под * — двадцать осмысленных запретов, оставляет
основному роботу только эти две. Остальные восемнадцать он не прочитает.
Мы налетели на это в тот же день собственной проверкой. Она искала в чужих
файлах группу YandexBot, не находила и сообщала «от поиска не закрыт» —
а правила были, просто написаны как Yandex. Из трёх закрытых сайтов этого
обхода она видела один, два пропустила. Ложноотрицательная находка хуже
ложной: человек уходит успокоенным. Починка простая — искать подстроку и
начинать с самого точного имени, потому что группа для конкретного робота
отменяет общую.
Что в файлах города пишут на практике
User-agent: *есть в 232 файлах из 239 — это норма.- Отдельная группа для Яндекса — в 60, для Google — в 33. Разница
объясняется
Clean-param: у Google такой директивы нет, а у Яндекса есть, и ради неё заводят отдельную группу. - Аналитические боты запрещены в 11 файлах. Чаще всего перечисляют AhrefsBot и MJ12bot — по 10 файлов, DotBot и SemrushBot — по 9.
- ИИ-роботы упомянуты всего в пяти файлах. GPTBot — в четырёх, ClaudeBot — в трёх, Perplexity — в двух. На фоне разговоров о том, что «нейросети воруют контент», это самое красноречивое число во всём обходе: в обходе про них не думали 234 файла из 239.
Как проверить свой файл
- Откройте
ваш-сайт.ru/robots.txtи убедитесь, что это текст, а не страница сайта. Код ответа должен быть 200, а содержимое — начинаться со словаUser-agent. - Найдите все строки
Disallow: /и посмотрите не на них, а на ближайшую строкуUser-agentвыше. Если там*— сайт закрыт от поиска. - Проверьте группы для роботов Яндекса. Если есть
YandexBot, помните: всё, что написано подYandexи*, основной робот проигнорирует. Проще держать одну группуYandex. - Уберите
HostиCrawl-delay, если они есть. Они ничего не делают с 2018 года. - Проверьте, указан ли
Sitemap. Это одна строка, и её забывают 36 файлов из 239. - Прогоните файл через Вебмастер: «Инструменты» → «Анализ robots.txt». Он покажет, как правила видит именно робот Яндекса, а не вы.
Наш собственный файл разобран отдельно, строка за строкой — вместе с двумя противоречиями, которые в нём нашлись.
Границы замера
Один город, один день, один запрос к каждому адресу. Мы читали файл как текст и разбирали по стандарту — это не то же самое, что поведение живого робота: у каждого поисковика свои отступления, и проверить их можно только в его собственном инструменте.
Про пять адресов, которые не ответили, и три, отдавших отказ, мы не говорим
ничего. Признак «закрыт от поиска» мы считали по группам агентов, и
спорный случай со слипшимися группами вынесен отдельно, а не растворён в
числах. Директивы считались по вхождению в файл — файл может содержать
Clean-param и при этом быть написан так, что робот до него не дойдёт.
Коротко
Из 260 адресов файл отдали 242, настоящих файлов среди них 239. Закрыт от
поиска один сайт, а наивная проверка нашла бы пятнадцать: Disallow: / в
чужой группе — не запрет, а настройка против сборщиков ссылок. Каждый
третий файл хранит директиву Host, отменённую восемь лет назад. И почти
никто в городе — пятеро из 239 — не написал ни строчки про ИИ-роботов.
