Проверка robots.txt

Проверка robots.txt, которая показывает ход решения: правило, решившее судьбу вашего URL, с номером строки; группу, которую робот на самом деле читает, и почему остальные пропущены; и что код ответа вашего файла значит для всего сайта.

31 известный робот и что говорит о robots.txt оператор каждого · решающее правило с номером строки · RFC 9309 и толкование самого Google · robots.txt читается один раз, а дальше каждый URL сверяется в вашем браузере
Читаем один раз, сверяем здесь

Введите домен, чтобы прочитать его файл, или полный URL, например example.com/admin/, чтобы заодно проверить этот путь.

  • ЗапросGET /robots.txt
  • Разборгруппы, правила, sitemap
  • Группакакие правила соблюдает робот
  • Вердиктчто можно сканировать каждому роботу
Примеры

Как проверить robots.txt теперь, когда тестера Google больше нет

Введите домен выше и нажмите «Проверить robots.txt». Мы один раз загрузим файл с нашего сервера, а затем проверим по нему любой URL, который вы введёте, прямо в вашем браузере и для любого выбранного робота — то же самое раньше делал инструмент проверки файла robots.txt от Google, пока его не отключили.

Google объявил об изменении 15 ноября 2023 года: «В рамках этого обновления мы прекращаем поддержку инструмента проверки robots.txt». Старый инструмент исчез в декабре 2023 года, а пришедший ему на смену отчёт о файлах robots.txt в Search Console — вещь совсем другого рода.

Этот отчёт перечисляет файлы, которые Google уже загрузил для 20 главных хостов вашего подтверждённого ресурса, с датой проверки, размером в байтах и числом проблем. Проверить URL по правилу, проверить робота не от Google или заглянуть на чужой сайт он не может. Эта страница умеет все три вещи.

Что показывает отчёт о файлах robots.txt в Search Console и что делает тестер
Отчёт о файлах robots.txtТолько ваши подтверждённые ресурсыТестер robots.txtЛюбой сайт, любой робот, любой URL
  • Файл, который Google загрузил последним
  • Его размер и дата проверки
  • Число ошибок разбора
  • Разрешён ли этот URL для этого робота?
  • Какое правило решило и в какой строке
  • Робот не от Google
  • Чужой сайт

Google объявил об изменении 15 ноября 2023 года и убрал инструмент проверки в декабре 2023 года.

Проверка robots.txt: вердикт по файлу, правило и группа, решившие судьбу /admin/public/ для Googlebot, и находкиПроверка robots.txt: вердикт по файлу, правило и группа, решившие судьбу /admin/public/ для Googlebot, и находкиСледствиеНе просто код ответа, а то, что он значит для всего сайта. 404 здесь позволяет любому роботу брать всё; 503 означает, что робот, который следует стандарту, не берёт ничего.Решающее правилоПравило, которое решило судьбу этого URL для этого робота, с номером строки и правилом, которое оно перевесило. Побеждает самое длинное совпадение, а при равенстве — Allow.Выбранная группаКакую группу робот прочитал на самом деле и почему остальные пропущены. Этот шаг другие инструменты не показывают.НаходкиКаждая проблема на своей строке файла и что с ней делать.
Проверка вымышленного сайта: что значит код ответа файла, тестер URL с решающим правилом и выбранной группой, и находки на своих строках. Нажмите на номер, чтобы увидеть, что показывает каждая часть.

Как Google выбирает, какая группа действует для робота?

Робот соблюдает ровно один набор правил. Он ищет группу, в строке User-agent которой указан его собственный токен продукта, и только если такой нет, переходит к группе *. Группа * — запасной вариант, а не добавка.

RFC 9309 говорит прямо: «Роботы ДОЛЖНЫ искать группу, соответствующую токену продукта, без учёта регистра» и «[если] подходящей группы нет, роботы ДОЛЖНЫ соблюдать группу со строкой user-agent со значением *, если она есть». Google говорит то же своими словами: «Для конкретного робота действительна только одна группа».

Отсюда два следствия, и вместе они дают большую часть путаницы. Несколько групп с одним и тем же токеном сливаются в одну, так что оба блока User-agent: Googlebot учитываются. Но группа с именем робота и группа * не сливаются никогда: Allow: / под * ничего не даёт Googlebot, если есть группа Googlebot. Googlebot-Image и другие роботы Googlebot-* переходят к группе googlebot — это поведение, которое робот добавляет поверх алгоритма сопоставления: в открытом парсере самого Google его нет.

Какую группу читает робот и почему остальные игнорируются
robots.txt
  1. 1# www.example.org
  2. 2User-agent: *
  3. 3Allow: /
  4. 4Disallow: /cart/
  5. 5
  6. 6User-agent: Googlebot
  7. 7Disallow: /admin/
  8. 8Allow: /admin/report.pdf
  9. 9
  10. 10Sitemap: https://www.example.org/sitemap.xml
  1. 1Есть группа с собственным токеном этого робота?Читать эту группу. Группа * не используется.
  2. 2Таких групп несколько?Читать их как одну группу.
  3. 3Есть группа *?Читать группу *.
  4. —Правила не действуют. Сканировать можно всё.
Один файл, два робота
GooglebotСтрока 6Своя группа. Allow: / под * не читается никогда.
GPTBotСтрока 2Ни одна группа его не называет, поэтому он читает *.
Пример файла принадлежит www.example.org — вымышленному сайту: ни один настоящий robots.txt не показан как сломанный.

Allow или Disallow: побеждает самое длинное совпадение

Когда URL подходит под несколько правил, побеждает правило с самым длинным путём, какого бы типа оно ни было. Если Allow и Disallow одинаковой длины, побеждает Allow.

RFC 9309: «ДОЛЖНО использоваться самое специфичное совпадение. Самое специфичное совпадение — то, в котором больше всего октетов», и «если правило allow и правило disallow равнозначны, СЛЕДУЕТ использовать правило allow». Google описывает то же поведение: при конфликте правил применяется «наименее строгое правило».

Октеты, а не символы: путь с буквами с диакритикой или с %2F сравнивается после процентного кодирования — именно здесь наивные инструменты ошибаются. Сравниваются только путь и строка запроса, начиная с первого символа, и они чувствительны к регистру, хотя имена директив — нет: Disallow: /File.pdf никак не действует на /file.pdf.

Под URL подходят два правила: побеждает более длинный путь
/admin/report.pdf
  • Disallow: /admin/7 символов
  • Allow: /admin/report.pdf17 символов

Побеждает Allow: это правило совпадает с большей частью пути.

Точная ничья
Disallow: /files/7 символовAllow: /files/7 символов

Длина одинаковая, поэтому побеждает Allow. «Наименее строгое правило», как говорит Google.

Пример файла принадлежит www.example.org — вымышленному сайту: ни один настоящий robots.txt не показан как сломанный.

Всего два подстановочных знака: `*` и `$`

* означает любую последовательность символов, а $ отмечает конец URL. Больше ничего нет: ни регулярных выражений, ни особого смысла у ?, ., [ или + — всё это обычные символы.

Правило без $ — это префикс, поэтому Disallow: /admin закрывает также /administrator и /admin-tools. Добавьте завершающий слеш (/admin/), если имеете в виду папку, и $, если имеете в виду ровно этот URL. Disallow: /*.pdf$ закрывает все PDF; Disallow: /*? закрывает все URL со строкой запроса.

«Тестер URL» выше показывает пути, которые правило захватывает заодно, — по тому же алгоритму сопоставления, что дал вердикт, — так что правило, которое заходит дальше задуманного, видно ещё до публикации.

* и $ — и что на самом деле захватывает каждый шаблон
ШаблонЗахватываетНе захватывает
/admin/admin/ · /administrator · /admin-tools/wp-admin
/admin//admin/users/administrator
/*.pdf$/files/report.pdf/report.pdf?v=2
/*?/search?q=x/search

?, ., [ и + — обычные символы. Регулярных выражений в robots.txt нет.

Что означает код ответа вашего robots.txt?

4xx и 5xx на один и тот же сломанный файл дают противоположные результаты. 4xx понимается так, будто файла нет, поэтому робот может брать всё. 5xx означает, что файл не определён, поэтому робот, который соблюдает стандарт, не должен брать ничего.

RFC 9309 §2.3.1.3: если код ответа говорит, что файл «недоступен роботу, робот МОЖЕТ обращаться к любым ресурсам на сервере». §2.3.1.4: если он «недостижим из-за ошибок сервера или сети… робот ДОЛЖЕН считать, что запрещено всё». Google обрабатывает «все ошибки 4xx, кроме 429, так, как если бы действительного файла robots.txt не было», а значит, 429 оказывается на стороне 5xx.

Затем Google смягчает случай 5xx собственной лестницей: первые 12 часов он не сканирует сайт, следующие 30 дней пользуется последней удачной копией, а после этого, если остальной сайт доступен, ведёт себя так, будто robots.txt нет вовсе. По редиректам Google проходит не меньше пяти переходов, а затем останавливается и, по его словам, «интерпретирует ситуацию как ошибку 404, относящуюся к файлу robots.txt», то есть сканирует свободно. А имя, которого нет в DNS, — это не сайт, который кого-то закрывает: нет ни файла, ни вердикта.

Что каждый ответ на GET /robots.txt значит для всего сайта
Сервер отвечаетРобот затем
200Следует правилам из файла.
301, 302Проходит не меньше пяти переходов, затем останавливается. Тогда Google считает файл ответом 404.
403, 404Сканирует всё, как будто файла нет.
429Не сканирует ничего. Google относит этот ответ к 5xx, а не к 4xx.
500, 503По стандарту не сканирует вообще ничего.
Имени нет в DNSЧитать нечего: сайта нет, а значит, нет и вердикта.
Что Google делает с 5xx, день за днём
  1. 1Первые 12 часовНе сканирует сайт и повторяет запрос файла
  2. 2До 30 днейПользуется последней удачной копией robots.txt
  3. 3После 30 днейЕсли сайт доступен, ведёт себя так, будто robots.txt нет

Убирает ли robots.txt страницу из Google?

Нет. Он просит робота не загружать страницу, но не просит поисковую систему её не показывать. Google не может прочитать запрещённую страницу, но, по его словам, «может индексировать URL и показывать его в результатах поиска без фрагмента», если на него ссылаются другие страницы.

Это статус Search Console «Проиндексировано, несмотря на блокировку в файле robots.txt»: «Google не будет запрашивать и сканировать страницу, но всё равно может проиндексировать её по информации со страницы, которая ссылается на заблокированную». Решение, которое предлагает сам Google: «удалите блокировку в robots.txt и используйте директиву noindex».

Поэтому самая частая ошибка в robots.txt — это пара, а не одна строка: URL, который одновременно запрещён здесь и несёт noindex. Google прямо говорит, что «если страница заблокирована файлом robots.txt… робот никогда не увидит правило noindex, и страница по-прежнему может появляться в результатах поиска». Выберите одно: закройте сканирование или впустите робота и скажите ему не индексировать.

Почему запрещённая страница всё равно может появиться в Google и почему её noindex никогда не читается
  1. Робот
  2. Читает robots.txt
  3. URL запрещён
  4. Не загружает страницу
Сама страница<meta name="robots" content="noindex">Никогда не читается
Поисковый индексURL без описания
Search Console называет этоПроиндексировано, несмотря на блокировку в файле robots.txt

Чтобы страницы не было в выдаче: впустите робота и поставьте noindex либо пускайте только после входа в аккаунт.

Как заблокировать ChatGPT, Claude и других ИИ-роботов?

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

Эти три стоит различать. Закрыв робота для обучения, вы не пускаете свои страницы в модель; закрыв робота для ответов, вы ещё и выпадаете из ссылок, которые показывают эти продукты. На вкладке «Роботы» выше указаны назначение каждого, его токен и то, что говорит о соблюдении правил документация самого оператора, — так вы можете отказаться от обучения, не исчезая из ответов ИИ.

Некоторые операторы прямо говорят, что робот, загружающий страницу по просьбе одного человека, может игнорировать robots.txt, потому что действует от имени пользователя, а не сканирует. В таблице такие роботы отмечены. А строки Content-Signal от Cloudflare, которые публикует всё больше сайтов, — это заявление о том, для чего можно использовать ваш контент, а не правило сканирования: эта страница сохраняет их и объясняет, а не называет ошибкой.

Три задачи ИИ-роботов и что каждый оператор говорит о robots.txt
ОператорОбучениеОтветы ИИЗапрос человека
OpenAIGPTBotСоблюдаетOAI-SearchBotСоблюдаетChatGPT-UserМожет игнорировать
AnthropicClaudeBotСоблюдаетClaude-SearchBotСоблюдаетClaude-UserСоблюдает
PerplexityТакого робота нетPerplexityBotСоблюдаетPerplexity-UserМожет игнорировать
GoogleGoogle-ExtendedТолько токенТакого робота нетТакого робота нет
AppleApplebot-ExtendedТолько токенТакого робота нетТакого робота нет
Metameta-externalagentСоблюдаетmeta-webindexerСоблюдаетmeta-externalfetcherМожет игнорировать
AmazonAmazonbotСоблюдаетТакого робота нетAmzn-UserМожет игнорировать
  • ОбучениеСобирает страницы для обучения модели.
  • Ответы ИИЗагружает страницы, чтобы ответить на вопрос, обычно со ссылкой на ваш сайт.
  • Запрос человекаЗагружает одну страницу, потому что кто-то о ней попросил. Некоторые операторы говорят, что такой робот может игнорировать robots.txt.

Crawl-delay, Clean-param, Host и Content-Signal: кто что читает?

Google читает четыре поля и никаких других: user-agent, allow, disallow и sitemap. Всё остальное в robots.txt читает кто-то другой или никто — и неизвестная строка никогда не считается ошибкой.

Google перечисляет свои четыре поля и добавляет, что «другие поля, например crawl-delay, не поддерживаются». Bing Crawl-delay поддерживает — об этом в блоге самого Bing: «директива crawl-delay принимает в качестве значений только положительные целые числа». Clean-param — директива Yandex, и больше ничья. Host нет ни в стандарте, ни в списке Google.

Ни одна из них файл не ломает. RFC 9309 требует, чтобы разбор других записей «НЕ ДОЛЖЕН мешать разбору явно определённых записей», поэтому робот, не знающий строку, просто её пропускает. По-настоящему мёртвые директивы — это noindex и nofollow внутри robots.txt: в 2019 году Google убрал код, который их обрабатывал, и сегодня в Google они не делают ничего.

Какая поисковая система какую директиву читает
ДирективаGoogleBingYandex
User-agentЧитаетЧитаетЧитает
AllowЧитаетЧитаетЧитает
DisallowЧитаетЧитаетЧитает
SitemapЧитаетЧитаетЧитает
Crawl-delayИгнорируетЧитаетНе подтверждено
Clean-paramИгнорируетИгнорируетЧитает
HostИгнорируетИгнорируетНе подтверждено
noindexИгнорируетНе подтвержденоНе подтверждено
Content-SignalИгнорируетНе подтвержденоНе подтверждено
  • Google поддерживает четыре поля и прямо об этом говорит: user-agent, allow, disallow и sitemap.
  • Блог самого Bing подтверждает Crawl-delay. Диапазон и единицу измерения мы не приводим: текущую справку Bing не удалось прочитать, чтобы их проверить.
  • Google отказался от неё в 2019 году, а в стандарт она никогда не входила.
  • Content Signals Policy от Cloudflare: заявление о том, как можно использовать контент, а не правило сканирования.

Предел в 500 KiB и то, что остаётся за ним

Google читает первые 500 кибибайт robots.txt и игнорирует всё, что дальше, — нигде не сообщая об ошибке. RFC 9309 задаёт 500 KiB как нижнюю границу предела разбора для робота; Google называет это значение верхней границей.

Google: «Google ограничивает размер файла robots.txt 500 кибибайтами (KiB). Содержимое за пределами максимального размера файла игнорируется». Ничто вас не предупредит. Файл в 600 KiB не становится недопустимым — просто его последних 100 KiB для Googlebot не существует, и Disallow там внизу ничего не защищает.

Сайты упираются в него чаще, чем кажется: по правилу на каждый параметр рекламной кампании, на каждый фасетный фильтр, на каждую старую тестовую папку. Проверка выше сверяет файл с этой чертой и сообщает, сколько осталось за ней. Заменяйте длинные списки шаблонами (Disallow: /*?filter=) и ставьте важные правила наверх.

robots.txt на 640 KiB: последних 140 KiB для Google не существует
Прочитано GoogleПроигнорировано без предупреждения
Disallow: /cart/ · Строка 12Соблюдается
Disallow: /private/ · Строка 9 412Никогда не читается

Файл по-прежнему отвечает 200 и разбирается без ошибок. Ничто и нигде не сообщает вам, что остаток отброшен.

Частые ошибки в robots.txt и как их найти

Большинство сломанных файлов robots.txt ломаются одним из шести способов, и ни один из них не заметен, пока файл чем-нибудь не проверят: он по-прежнему отвечает 200, разбирается без ошибок и выглядит правильно.

Ошибка, которую знают все, — Disallow: /, забытый при переезде сайта с тестовой версии в рабочую. Остальные пять: правило, которое заходит дальше задуманного (например, Disallow: /admin цепляет и /administrator); Allow: / под *, которое группа с именем робота тихо игнорирует; строка Sitemap:, записанная как путь, а не полный адрес; путь без начального слеша, который не совпадает ни с чем; и строка noindex, которую Google перестал читать в 2019 году.

Запустите проверку выше и откройте вкладку «Проблемы»: каждая находка стоит на своей строке файла вместе с тем, что с ней делать. Если вы не проверяете файл, а правите его, генератор robots.txt пишет файл, который этот же инструмент проверки уже прочитал.

Источники

Шесть ошибок в robots.txt и что на самом деле делает каждая
Строка как написанаЧто происходит на самом деле
Disallow: /Осталось от тестовой версии: весь рабочий сайт закрыт для всех роботов.
Disallow: /adminЗакрывает также /administrator и /admin-tools. Добавьте завершающий слеш.
Allow: / под User-agent: *Робот, у которого где-либо в файле есть своя группа, это никогда не читает.
Sitemap: /sitemap.xmlСтрока Sitemap должна содержать полный адрес с хостом.
Disallow: adminПуть начинается с /. Это правило не совпадает ни с чем.
noindex: /private/Не работает с 2019 года. Страница остаётся доступной для сканирования и индексирования.

Проверка robots.txt: частые вопросы

Что случилось с инструментом проверки файла robots.txt от Google?

Google его отключил. 15 ноября 2023 года Search Central объявил об отчёте о файлах robots.txt в Search Console и о прекращении поддержки инструмента проверки, который перестал работать в декабре того же года. Отчёт показывает файлы, которые Google загрузил для ваших подтверждённых сайтов, с размером и числом проблем, но проверить URL по правилу не может. Инструмент проверки URL покажет, закрыта ли одна из ваших собственных страниц; для любого другого сайта, любого робота или правила, которое вы только собираетесь опубликовать, нужен отдельный тестер.

Почему игнорируется мой Allow: / под User-agent: *?

Потому что робот соблюдает ровно одну группу. Если в файле есть группа с собственным токеном этого робота, он читает только её, а группу * пропускает целиком: это запасной вариант, а не добавка. Группы сливаются, только когда несколько из них называют один и тот же токен. «Тестер URL» выше показывает, какая группа выбрана для каждого робота и почему не выбраны остальные.

Запрещает ли robots.txt индексировать страницу?

Нет. Он управляет сканированием, а не индексированием. Google может показать в выдаче запрещённый URL, который ни разу не загружал, по тексту ссылающихся на него страниц — без описания. Search Console называет это «Проиндексировано, несмотря на блокировку в файле robots.txt». Чтобы страница не попала в результаты поиска, позвольте роботу её загрузить и отдайте мета-тег noindex или заголовок X-Robots-Tag — либо закройте страницу за входом в аккаунт.

Почему не работает мой noindex?

Чаще всего потому, что тот же URL ещё и запрещён в robots.txt. Робот, которому сказано не загружать страницу, не видит на ней ничего, в том числе noindex, поэтому страница может и дальше появляться в результатах поиска по ссылкам с других сайтов. Google говорит об этом прямо: чтобы noindex сработал, страница «не должна быть заблокирована файлом robots.txt». Удалите строку Disallow и оставьте noindex.

Что значит 404 на robots.txt? А 500?

Противоположные вещи. 404 или любой другой 4xx понимается так, будто файла нет, поэтому робот может загружать на сайте что угодно — это RFC 9309 §2.3.1.3. Ответ из диапазона 500 означает, что файл недостижим, а не отсутствует, и по §2.3.1.4 робот тогда должен считать, что запрещено всё, и не брать ничего. Google относит 429 к ошибкам сервера и 30 дней хранит последнюю удачную копию, прежде чем от неё отказаться.

Если подходят и Allow, и Disallow, какое правило побеждает?

То, у которого путь длиннее. RFC 9309 требует использовать самое специфичное совпадение, измеренное в октетах, и Google описывает то же правило. Тип правила решает, только когда оба пути ровно одинаковой длины, — и тогда побеждает Allow, «наименее строгое правило», по словам Google. Тестер выше называет победившее правило и правило, которое оно перевесило, с номерами обеих строк.

Какие подстановочные знаки работают в robots.txt?

Два, и больше никаких. * означает любую последовательность символов, а $ отмечает конец URL. Всё остальное понимается буквально: ?, ., [, ] и + совпадают сами с собой, а регулярных выражений нет. Правило без $ — это префикс, поэтому Disallow: /admin захватывает и /administrator. Пути чувствительны к регистру, а имена директив, такие как Disallow, — нет.

Поддерживает ли Google Crawl-delay?

Нет. Google перечисляет четыре поддерживаемых поля — user-agent, allow, disallow и sitemap — и прямо говорит, что поля вроде crawl-delay не поддерживаются. Bing эту директиву читает: в блоге самого Bing сказано, что она принимает только положительные целые числа. Строка Crawl-delay не вредит, но Googlebot она не замедлит, а настройки скорости сканирования в Search Console тоже больше нет.

Каким может быть размер файла robots.txt?

Google читает первые 500 кибибайт и игнорирует всё, что дальше, — молча: ни ошибки, ни предупреждения в Search Console. RFC 9309 задаёт 500 KiB как минимум, который робот должен разобрать, а Google называет это значение своим максимумом. Если ваш файл близок к пределу, замените длинные списки отдельных URL шаблонами и перенесите важные правила наверх. Эта проверка сверяет ваш файл с пределом.

Как заблокировать ИИ-роботов вроде GPTBot и ClaudeBot?

Дайте каждому свою группу с Disallow: / — точно так же, как поисковой системе. Большинство ИИ-компаний держат несколько роботов с разными задачами: один для обучения, один для ответов на вопросы со ссылкой на ваш сайт и один, который загружает отдельную страницу по просьбе человека. На вкладке «Роботы» выше указаны каждый токен, его назначение и то, что о соблюдении правил говорит оператор, — так вы откажетесь от обучения, не теряя ссылок в ответах ИИ.

Проверка robots.txt и валидатор — это одно и то же?

Они пересекаются. Валидатор смотрит на файл сам по себе: синтаксис, неизвестные директивы, неправильные пути, строка Sitemap без полного адреса. Проверка отвечает ещё и на вопрос, который у вас на самом деле есть: может ли этот робот загрузить этот URL и какое правило так говорит. Эта страница делает и то и другое и добавляет две вещи, которых не скажет один только файл: что значит его код ответа и какая его часть лежит за чертой 500 KiB.

Опасен ли robots.txt для безопасности сайта?

Это не средство защиты. Файл публичен, его может прочитать кто угодно, поэтому Disallow: /admin-backup/ — указатель ровно на то, что вы хотели спрятать. Ничто в нём не мешает доступу: робот соблюдает его лишь потому, что так решил его оператор. Защищайте закрытые пути аутентификацией или правилом файрвола, а эта проверка укажет на пути в вашем файле, которые выглядят как приглашение.

Чего-то не хватает?Предложите функцию или новый инструмент