Медиана

robots.txt: что закрывать и чего файл не делает

Файл управляет обходом, а не индексацией. Разбор директив, ловушки с noindex и отдельно — доступ для ИИ-краулеров.

Обновлено 12.08.2026 · 6 мин чтения

robots.txt — текстовый файл в корне сайта, который сообщает роботам, какие разделы обходить не нужно. Ключевое ограничение: он управляет обходом, а не индексацией. Закрытая директивой страница может попасть в выдачу, если на неё ведут ссылки, — поисковик добавит её, зная только адрес. Для исключения из индекса нужен метатег noindex, и страница при этом должна оставаться открытой для обхода.

Коротко

  • robots.txt управляет обходом, а не индексацией — закрытая страница может остаться в выдаче.
  • Комбинация «закрыть в robots + поставить noindex» не работает: робот не увидит noindex на закрытой странице.
  • Файл публичный, его читает кто угодно, поэтому он не средство защиты приватных данных.
  • Соблюдение директив добровольное: поисковики их уважают, мелкие парсеры игнорируют.
  • Для видимости в ответах нейросетей важно открывать не только ботов обучения, но и поисковых ботов ИИ.

Что файл делает и чего не делает

Разница между обходом и индексацией — источник большинства ошибок в этой теме.

Задачаrobots.txtМетатег noindexАвторизация
Не тратить обход на служебные разделыданетда
Убрать страницу из выдачинетдада
Скрыть содержимое от постороннихнетнетда
Не отдавать содержимое конкретному ботуда, если бот соблюдаетнетда

Вторая строка — та самая ловушка. Закрытая в robots страница остаётся кандидатом на попадание в индекс: поисковик знает её адрес из ссылок и может показать запись без описания, потому что содержимое он не читал.

Базовые директивы

User-agent: *          # к какому роботу относится блок
Disallow: /search/     # что не обходить
Allow: /search/help/   # исключение из запрета
Sitemap: https://site.ru/sitemap.xml

Разбор по частям:

User-agent открывает блок правил. Звёздочка — все роботы. Имя конкретного бота — правила только для него, причём такой блок полностью заменяет общий для этого бота, а не дополняет его. Это частая ошибка: прописали персональный блок и потеряли общие запреты.

Disallow запрещает обход по префиксу пути. /search/ закрывает и /search/, и всё, что начинается с этой строки.

Allow делает исключение внутри запрещённой ветки.

Sitemap указывает адрес карты сайта — эта директива не привязана к блокам и действует глобально.

Что закрывают обычно

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

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

Доступ для ИИ-краулеров

Отдельная тема, где легко навредить, скопировав чужой список блокировок. Боты нейросетей делятся на три группы с разными задачами.

ГруппаПримерыЧто даёт доступ
Обучение моделейGPTBot, ClaudeBot, Google-Extended, CCBotПопадание в обучающие данные будущих версий
Поиск для ответовOAI-SearchBot, PerplexityBot, Claude-SearchBotЦитаты со ссылками в ответах прямо сейчас
Переход по действию пользователяChatGPT-User, Perplexity-UserОткрытие страницы по конкретному запросу человека

Типичная ошибка — открыть первую группу и считать задачу решённой. Цитаты в ответах даёт вторая. Подробный разбор механики — в статье про попадание в ответы нейросетей.

Частые ошибки

Закрыли CSS и JS. Робот не может отрисовать страницу и оценивает её неверно. Стили и скрипты должны быть открыты.

Персональный блок затёр общий. Правила для Yandex не наследуют запреты из блока * — их нужно повторить.

Закрыли раздел вместо удаления из индекса. Страницы остались в выдаче, но без описания и без возможности их оттуда убрать.

Файл отдаёт 404 или 500. Часть роботов при недоступности файла трактует это как запрет на обход всего сайта.

Перечислили в файле приватные пути. Получилась публичная карта скрытого.

Как проверить

Открыть site.ru/robots.txt в браузере — файл должен отдаваться как обычный текст. Дальше сверить: не закрыты ли разделы, которые должны ранжироваться, доступны ли стили и скрипты, указан ли sitemap.

Для проверки конкретного бота удобно запросить страницу с его именем в заголовке:

curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://site.ru/

Ответ 200 означает, что сервер отдаёт содержимое этому агенту. Обратите внимание: это проверка серверных ограничений, а не директив robots.txt — их соблюдение остаётся на совести робота.

Какое правило сработает, если подходит сразу несколько

Порядок строк в файле роли не играет. Побеждает правило с самым длинным совпадающим префиксом пути, а при равной длине — разрешающее.

User-agent: *
Disallow: /catalog/
Allow: /catalog/sale/
Disallow: /catalog/sale/print/
АдресЧто применитсяПочему
/catalog/ЗапретСовпал единственный подходящий префикс
/catalog/shoes/ЗапретРазрешающих правил под этот путь нет
/catalog/sale/РазрешениеСовпадение с Allow длиннее, чем с запретом
/catalog/sale/tent/РазрешениеНаследует тот же более длинный Allow
/catalog/sale/print/ЗапретСамый длинный из трёх совпавших префиксов
/catalog?sort=priceНичегоЗапрет записан со слешем, а здесь его нет

Последняя строка — источник тихих ошибок. Disallow: /catalog/ и Disallow: /catalog закрывают разные множества адресов: вариант без слеша захватит ещё и /catalog-old/, и /catalog.php, а вариант со слешем пропустит /catalog?sort=price.

Спецсимволов два. Звёздочка внутри пути заменяет любую последовательность, знак доллара обозначает конец адреса. Disallow: /*? закрывает все адреса с параметрами, Disallow: /*.pdf$ — только файлы с этим расширением, не задевая /pdf-guide/.

Границы действия файла

Файл действует на один хост и только из корня. Всё, что выходит за эту рамку, к нему отношения не имеет.

Поддомен — отдельный сайт. Правила основного домена на него не распространяются, и наоборот: у поддомена должен быть собственный файл в собственном корне. Забытый поддомен с тестовой копией сайта — типовой источник дублей.

Протокол и порт входят в адрес хоста. Версии на HTTP и HTTPS читаются как разные адреса файла, и после переезда на защищённый протокол правила должны быть доступны по новому.

Файл в подкаталоге игнорируется целиком. /blog/robots.txt не действует ни на что: робот запрашивает только корневой адрес.

Регистр пути значим. /Catalog/ и /catalog/ для сопоставления — разные строки, а не одна.

Не-ASCII символы сравниваются в процентном кодировании. Правило с кириллическим путём, записанное как есть, может не совпасть с тем, что фактически запрашивает робот.

Ответ сервера важнее содержимого. Если по адресу файла отдаётся ошибка сервера, часть роботов трактует это как временный запрет на обход всего сайта. Отсутствие файла с кодом 404, наоборот, читается как «ограничений нет».

Правку внесли, а поведение не изменилось

Между изменением файла и изменением обхода проходит время: робот перечитывает robots.txt не при каждом запросе, а со своей периодичностью. Первое действие после правки — сверить содержимое с тем, которое видит поисковая система в инструменте проверки, а не в браузере.

Симптом → причина → что делать

Страница закрыта в файле, но остаётся в выдаче. Запрет останавливает обход, а не индексирование: адрес попал в базу по ссылкам. Открыть страницу для обхода, поставить noindex и дождаться повторного захода робота.

Раздел открыт, но не обходится. Либо совпал более длинный запрет из другого блока, либо страница закрыта не файлом, а метатегом, заголовком X-Robots-Tag или ответом сервера. Проверять надо код ответа и заголовки, а не один только файл.

Правила видны в браузере, но не применяются. Файл отдаётся с типом text/html, через редирект или лежит в разных версиях на разных протоколах. Отдаваться он должен как обычный текст по прямому адресу нужного хоста.

После правки резко упал обход. В новую маску попало больше, чем планировалось, — почти всегда из-за звёздочки в середине пути. Сравнить списки обойдённых адресов до и после и сузить правило.

Раздел, закрытый по ошибке, возвращается в обход не мгновенно: роботу нужно перечитать файл и заново дойти до адресов по ссылкам. Ускоряет возврат карта сайта с актуальными датами изменения и ссылки на восстановленный раздел с тех страниц, которые обходятся часто.

Спорное место

robots.txt — редкий случай, когда простота формата вредит. Файл выглядит как настройка доступа, ведёт себя как вежливая просьба и при этом публично документирует структуру сайта.

Из-за этого на него возлагают задачи, которых он не решает: защиту данных, удаление из индекса, борьбу с парсерами. Все три требуют других инструментов. Полезно относиться к файлу узко — как к способу не тратить обход на бесполезные адреса, и не более того.

Частые вопросы

Как закрыть страницу от поиска правильно?

Метатегом noindex на самой странице, оставив её открытой для обхода. Робот должен зайти и прочитать указание. После того как страница выпала из индекса, её можно дополнительно закрыть в robots.txt — но чаще этого уже не требуется.

Обязателен ли robots.txt?

Нет. Сайт без него обходится полностью — это нормальное поведение. Файл нужен, когда есть что исключить из обхода: служебные разделы, результаты поиска по сайту, бесконечную пагинацию фильтров.

Можно ли скрыть через robots.txt конфиденциальный раздел?

Нет, и попытка это сделать даёт обратный эффект. Файл доступен всем по прямому адресу, поэтому перечисление закрытых путей — готовая карта того, что вы прячете. Приватные разделы закрываются авторизацией.

Что будет, если закрыть весь сайт?

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

Нужно ли закрывать сайт от ИИ-краулеров?

Это зависит от задачи. Если важна видимость в ответах нейросетей, закрывать их вредно. Если принципиально не попадать в обучающие корпуса — можно закрыть ботов обучения, оставив открытыми поисковых: это разные боты с разными именами.

Источники

  1. Стандарт исключений для роботов — Wikipedia
Артём Строев
Пишу про измеримый маркетинг и видимость в ИИ-поиске. Публикуюсь под псевдонимом — почему так.