robots.txt – первое, что запрашивает робот, придя на сайт. Это соглашение, а не защита: файл никого не блокирует технически, добросовестные роботы его соблюдают, недобросовестные – игнорируют. Долгое время формат существовал как неформальная договорённость и лишь позже был закреплён отдельным стандартом.
robots.txt
Определение
robots.txt – текстовый файл в корне сайта, которым владелец сообщает роботам, какие разделы обходить не нужно. Формат описан в RFC 9309: секции User-agent, директивы Disallow и Allow, Sitemap. Файл управляет обходом, но не индексацией: закрытый адрес может попасть в выдачу, но без описания.
4 мин 49 Обновлено 15 октября
Как это работает
Файл лежит строго в корне и доступен по адресу /robots.txt. Он состоит из групп: имя робота и правила для него.
User-agent: *
Disallow: /bitrix/
Disallow: /*?print=
Allow: /bitrix/templates/
Sitemap: https://example.com/sitemap.xml| Директива | Назначение |
|---|---|
User-agent | Начало группы правил для конкретного робота, * – для всех остальных |
Disallow | Путь, который обходить не нужно. Пустое значение означает "разрешено всё" |
Allow | Исключение внутри закрытого раздела |
Sitemap | Абсолютный адрес карты сайта, действует независимо от групп |
Clean-param | Незначащие GET-параметры, понимает Яндекс |
Crawl-delay | Устаревшая директива задержки: Google её не поддерживает, Яндекс от неё отказался в пользу настройки в панели вебмастера |
Три спецсимвола, без которых правила не читаются:
*– любая последовательность символов. В конце пути он подразумевается неявно, поэтомуDisallow: /searchзакрывает и/search-results/.$– конец адреса.Disallow: /*.pdf$закрывает сами PDF, но не адреса с параметрами после расширения.#– комментарий: всё до конца строки робот игнорирует.
Конфликт Allow и Disallow разрешается не порядком строк, а длиной правила: выигрывает то, чей путь длиннее и точнее. Если длина совпадает, приоритет у Allow.
Есть и предел объёма: роботы разбирают не более 500 КиБ файла, остальное отбрасывается. Для файла на несколько сотен строк это неважно, а вот огромный автогенерируемый список запретов до конца прочитан не будет.
Два правила, о которых чаще всего забывают. Первое: робот применяет только одну группу – ту, что точнее всего соответствует его имени; правила из User-agent: * к нему уже не добавляются. Второе: файл действует в пределах своего хоста и протокола, поэтому у версии с www и без www это формально разные файлы, и содержимое у них должно совпадать.
Обход и индексация – не одно и то же
Самое частое заблуждение: "закрыл в robots.txt – значит убрал из поиска". Нет. Запрет в robots.txt означает "не заходи на страницу". Если на неё ведут внешние ссылки, адрес может попасть в выдачу без заголовка и описания – содержимое ведь не прочитано. Хуже того: указанный на такой странице noindex робот никогда не увидит, потому что не откроет страницу.
Правило простое: не нужно обходить – robots.txt; не нужно в индексе – noindex при открытом обходе; страница не должна быть доступна вообще – авторизация или удаление.
Частые ошибки
- Закрытые CSS и JavaScript. Поисковик не может отрисовать страницу и оценивает её неверно.
- Забытый запрет после переноса с тестового сервера.
Disallow: /уезжает на боевой сайт и выключает его из поиска целиком. - Попытка убрать страницу из индекса запретом обхода вместо noindex.
- Разные файлы на разных хостах – с www и без, на HTTP и HTTPS.
- Ошибки в ответе файла. Если robots.txt отдаёт 5xx, робот по RFC 9309 обязан считать сайт полностью закрытым для обхода. Google в этой ситуации останавливает обход примерно на 12 часов, дальше до 30 дней пользуется последней успешной копией файла из кэша, а когда и её нет – обходит сайт так, будто запретов не задано. Файл должен стабильно отвечать 200 и не попадать под WAF или JS-челлендж.
- Ставка на robots.txt как на защиту. Файл публичен и, по сути, представляет собой список интересных путей для того, кто ищет уязвимости.
robots.txt и ИИ-краулеры
Роботы языковых моделей управляются тем же файлом. Имена задаются отдельными группами, а часть токенов вроде Google-Extended и Applebot-Extended вообще не соответствует реальным роботам и регулирует только использование контента – подробнее в термине ИИ-краулер.
В Яндексе за попадание в быстрые ответы – YandexGPT, Нейро, Алису – отвечает отдельное имя YandexAdditional (встречается и как YandexAdditionalBot). Собственного обхода оно не ведёт, а работает поверх страниц, уже обойдённых YandexBot. Запрет этого имени убирает сайт из нейроответов, но в органической выдаче оставляет.
Решение здесь стратегическое. Если задача – присутствие в ответах ИИ-поиска, закрывать эти имена нельзя: ИИ-видимость начинается с доступа. Если контент принципиально не должен уходить в обучение, запрет ставится точечно, для обучающих роботов, а индексирующим доступ остаётся. Файл llms.txt робота ни на что не уполномочивает – это карта ключевых материалов, а не система разрешений, и robots.txt он не заменяет.
Как проверить
curl -sI https://example.com/robots.txt | head -n 1
curl -s https://example.com/robots.txtОтвет должен быть 200, тип содержимого – обычный текст, кодировка UTF-8 без служебного маркера в начале файла. Проверять правила удобно в панелях вебмастера: и Google, и Яндекс показывают, разрешён ли конкретный адрес и какая строка его закрывает. После правок стоит убедиться, что в sitemap.xml нет адресов, закрытых от обхода, – это противоречивый сигнал, а закрытые страницы всё равно не будут прочитаны.
Частые вопросы
Для чего нужен robots.txt?
Чтобы сказать роботам, какие разделы сайта обходить не нужно: служебные пути, дубли с параметрами, тяжёлые страницы фильтров. Файл лежит в корне сайта и запрашивается роботом первым. Это соглашение, а не техническая защита: добросовестные роботы его соблюдают, остальные могут игнорировать.
Убирает ли robots.txt страницу из поиска?
Нет. Запрет означает "не заходи на страницу", а не "не показывай её". Если на закрытый адрес ведут ссылки, он может попасть в выдачу без заголовка и описания. Более того, указанный на странице noindex робот не увидит, потому что не откроет её. Для удаления из индекса нужен noindex при открытом обходе.
Как закрыть раздел, но оставить в нём одну страницу?
Директивой Allow внутри той же группы: сначала Disallow на раздел, затем Allow на нужный путь. При конфликте правил поисковые системы ориентируются не на порядок строк, а на длину пути: выигрывает более точное и длинное правило, а при равной длине – Allow. После правки стоит проверить конкретный адрес в панели вебмастера – там видно, какая именно строка его разрешает или закрывает.
Нужны ли директивы Host и Crawl-delay?
Нет. Host, задававший главное зеркало, отменён – теперь используются постоянная переадресация и canonical. Crawl-delay Google никогда не поддерживал, а Яндекс от неё отказался в пользу настройки скорости обхода в панели вебмастера. Обе директивы можно удалить из файла без последствий.
Закрывать ли ИИ-краулеров в robots.txt?
Зависит от цели. Если нужно присутствие в ответах ИИ-поиска, закрывать их нельзя – видимость начинается с доступа к контенту. Если контент не должен уходить в обучение моделей, запрет ставится точечно для обучающих роботов, а индексирующим доступ остаётся: они отвечают за ответы со ссылками на источник.
Что будет, если robots.txt отдаёт ошибку?
Это опасная ситуация: при ответе 5xx робот по RFC 9309 обязан считать сайт полностью закрытым для обхода. Google останавливает обход примерно на 12 часов, дальше до 30 дней использует последнюю успешную копию файла из кэша. Файл обязан стабильно отвечать кодом 200 обычным текстом и не попадать под антибот-проверки и правила защиты. Отсутствие файла – ситуация нормальная, она трактуется как разрешение обходить всё.
Связанные термины
Материалы по теме
Что почитать дальше по этой теме