Как работает сопоставление правил robots.txt по стандарту RFC 9309
Файл robots.txt управляет поведением поисковых роботов и краулеров на сайте. Базовая структура файла состоит из групп директив. Каждая группа начинается с одной или нескольких строк User-agent и содержит правила Allow и Disallow. Когда робот обращается к файлу, он ищет группу, предназначенную именно для него, опираясь на официальный стандарт RFC 9309.
Поисковый робот выбирает правила по строгому алгоритму: 1. Точное совпадение токена робота (например, YandexBot или Googlebot). 2. Совпадение с родительским токеном при наличии дефиса: бот Googlebot-Image сначала ищет правила для Googlebot-Image, а при их отсутствии переходит к группе Googlebot. 3. Общая группа с директивой User-agent: *, если специфичная секция не найдена. 4. Полный доступ ко всем страницам, если в файле нет ни персональной группы, ни общей секции со звездочкой.
Главный принцип работы: специфичная группа полностью заменяет общую группу, а не дополняет ее. Если в файле объявлена секция для YandexBot, робот Яндекса считывает только правила из этой секции и полностью игнорирует блок User-agent: *. Тестер robots.txt помогает мгновенно определить, какая именно группа применяется к выбранному краулеру, исключая ошибки двойного толкования.
Правило максимальной длины: почему побеждает самый длинный шаблон
При анализе URL краулер часто сталкивается с ситуацией, когда под один адрес подходят одновременно директивы Allow и Disallow. В современных поисковых системах конфликт правил разрешается по принципу наибольшей длины совпадающего пути (longest match).
Робот вычисляет длину пути в символах для каждого подходящего правила. Побеждает директива с наибольшим количеством символов. Если длины директив Allow и Disallow абсолютно одинаковы, стандарт отдает приоритет директиве Allow.
| Директива robots.txt |
Проверяемый URL |
Результат |
Причина решения |
Disallow: /catalog/ |
/catalog/item-1 |
Заблокирован |
Длина правила 9 символов |
Allow: /catalog/item |
/catalog/item-1 |
Разрешен |
Длина 13 символов, правило длиннее |
Disallow: /admin |
/admin |
Заблокирован |
Точное совпадение длины |
Allow: /admin |
/admin |
Разрешен |
При равной длине побеждает Allow |
В правилах активно используются два специальных символа: звездочка *, которая обозначает любую последовательность символов, и знак доллара $, фиксирующий конец строки. Например, директива Disallow: /*.pdf$ заблокирует только файлы с расширением PDF в конце адреса, оставив доступными пути вроде /file.pdf?preview=true. Пустая директива Disallow: без указания пути отменяет все предыдущие запреты и разрешает сканирование всего сайта.
Тестирование правил для краулеров искусственного интеллекта
С развитием генеративных языковых моделей на сайты стали приходить специализированные боты: GPTBot, ClaudeBot, PerplexityBot и Google-Extended. Вебмастерам важно контролировать, какие материалы попадают в обучающие выборки нейросетей, а какие доступны только для стандартного поиска.
Для настройки специфичных директив под такие задачи удобно использовать специализированный генератор robots.txt для AI-краулеров, а затем проверить корректность работы ограничений в тестере. В файле robots.txt можно адресовать правила как традиционным поисковым системам, так и новым агентам сбора данных.
Помимо стандартных директив Allow и Disallow, в экосистеме набирает популярность директива Content-Signal. Она указывает предпочтения владельца сайта в отношении использования контента: для поиска (search), для подачи на вход моделей (ai-input) или для прямого обучения нейросетей (ai-train). Тестер robots.txt извлекает значение Content-Signal для проверяемого краулера и выводит его в отчете. При этом важно помнить: Content-Signal декларирует намерения владельца сайта, но техническая блокировка сканирования обеспечивается только через директиву Disallow.
Для подготовки сайта к взаимодействию с моделями полезно также создать файл llms.txt для языковых моделей, который помогает структурировать общедоступную информацию о проекте.
Распространенные ошибки в синтаксисе robots.txt
Тестер robots.txt выполняет детальный синтаксический анализ и предупреждает о некорректных строках. Среди типичных проблем встречаются следующие ситуации:
- Директивы до первого блока
User-agent: любые правила Allow или Disallow, написанные в самом начале файла до объявления агента, игнорируются краулерами.
- Относительные пути: путь в правиле обязан начинаться со слеша
/. Запись Disallow: admin/ считается некорректной и приводит к непредсказуемой обработке.
- Директива
Crawl-delay: параметр задержки между запросами не входит в официальный стандарт RFC 9309. Яндекс поддерживает эту команду с ограничениями, а Google полностью игнорирует ее.
- Нестандартные директивы: параметры
Host и Clean-param исторически обрабатываются поисковой системой Яндекс, но не поддерживаются большинством глобальных краулеров.
- Директива
Noindex внутри файла: поисковые системы больше не поддерживают команду Noindex в файле robots.txt. Для запрета индексации страницы следует использовать метатег в коде HTML или HTTP-заголовок X-Robots-Tag.
Важно помнить о регистре символов. Пути в robots.txt чувствительны к регистру: правило Disallow: /secret/ не блокирует адрес /Secret/. Другая классическая ошибка: смешение понятий сканирования и индексации. Запрет в robots.txt запрещает роботу загружать страницу, но страница все равно может появиться в результатах поиска без сниппета, если на нее ведут внешние ссылки.
Границы возможностей тестера и безопасность данных
Тестер robots.txt работает исключительно на основе вставленного текста и выполняет анализ локально в браузере. Инструмент не отправляет сетевых запросов к вашему серверу и не скачивает файл по ссылке. Это дает важное преимущество: вы можете безопасно тестировать черновые версии файла перед их выгрузкой в продакшн, проверять конфигурации закрытых тестовых серверов и не раскрывать конфиденциальные структуры ссылок третьим лицам.
Однако у локального парсера есть четкие границы применения:
- Тестер не проверяет текущий статус индексации страниц в Яндексе или Google.
- Инструмент не выполняет нормализацию percent-encoding: символы в URL и правилах сравниваются как строковые литералы, поэтому кодированные пути (например, кириллические фрагменты в формате
%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80) необходимо передавать в единообразном виде.
- Фактическое поведение отдельных закрытых роботов может содержать редкие внутренние исключения, выходящие за рамки спецификации RFC 9309.
Тестер robots.txt не занимается проверкой подлинности краулеров. Файл robots.txt только сообщает правила добросовестным ботам, но не защищает сайт от вредоносных парсеров. Для валидации подлинности роботов на уровне веб-сервера применяется генератор ключей аутентификации веб-ботов. Результаты анализа из тестера можно экспортировать в формате CSV или сохранить в виде изображения для отчетов и аудитов.