robots.txt: что он умеет, чего не умеет и как не закрыть лишнее
robots.txt управляет обходом, а не показом в поиске. Закрытая в нём страница может остаться в выдаче — Яндекс пишет об этом прямо, Google добавляет, что она покажется без описания. Чтобы убрать страницу из поиска, нужен noindex, и тогда запрещать её в robots.txt нельзя: робот не увидит указание.
Ниже — поддерживаемые директивы обеих систем, разбор живых споров из чата сообщества, устаревшие советы, которые до сих пор повторяют, и чек-лист проверки.
Главное недоразумение
В чате это обсуждали сорока одним сообщением за один день, и формулировки участников точнее любого учебника:
«robots.txt не жёсткая обязаловка для Яндекса. Он помогает экономить краулинговый бюджет, например, чтобы не переходить по всем результатам фильтраций. Чтобы закрыть отдельные страницы, идеально подойдёт мета noindex».
Так и есть, и обе системы пишут об этом в справке.
Яндекс: «Ограниченные в robots.txt страницы могут участвовать в поиске Яндекса. Чтобы удалить страницы из поиска, укажите директиву noindex в HTML-коде страницы или настройте HTTP-заголовок. Не ограничивайте такие страницы в robots.txt, чтобы робот Яндекса смог их проиндексировать и обнаружить ваши указания».
Google: «Файл robots.txt не предназначен для того, чтобы запрещать показ ваших материалов в результатах поиска Google». И дальше: если на такой адрес ссылаются другие сайты, он всё равно может быть найден и добавлен в индекс, а в выдаче покажется без описания.
Вывод, который экономит месяцы: запрет в robots.txt и удаление из поиска — разные операции. Первое про то, куда робот ходит. Второе про то, что он показывает.
Что поддерживает Яндекс
| Директива | Что делает |
|---|---|
User-agent | Указывает робота, для которого действуют правила. Обязательная |
Disallow | Запрещает обход разделов или страниц |
Allow | Разрешает обход разделов или страниц |
Sitemap | Путь к карте сайта |
Clean-param | Сообщает, что параметр в адресе не меняет содержимое |
Требования к самому файлу: размер не больше 500 КБ, имя robots.txt, расположение в корне сайта, сервер отвечает кодом 200. И важная строчка из справки: если файл не соответствует требованиям, сайт считается открытым для индексирования. То есть ошибка в robots.txt никогда не «закрывает» сайт на всякий случай — она его открывает.
Ещё две детали, на которых спотыкаются:
- Кириллица запрещена и в файле, и в HTTP-заголовках. Домены пишутся в Punycode, адреса — в кодировке структуры сайта.
- Регистр учитывается в путях и именах роботов, но не учитывается в названиях директив.
Чем Google отличается
Набор директив у Google уже: User-agent, Disallow, Allow, Sitemap. Директивы Clean-param у него нет — ту же задачу решает канонический адрес.
И отдельно: Google не рекомендует использовать robots.txt для нормализации, то есть для выбора главной версии страницы из дублей. Логика та же, что и выше: закрытая страница не исчезает, а становится страницей, про которую поисковик ничего не знает.
Для исключения страницы из поиска Google называет два способа: пароль или noindex.
Clean-param: зачем он и почему его зря хоронят
Директива говорит роботу Яндекса, что параметр в адресе не влияет на содержимое. Классический случай — метки источника:
Clean-param: ref /some_dir/get_book.pl
Clean-param: utm_source&utm_medium&utm_campaign
Почему это лучше запрета: в справке сказано прямо, что для закрытия таких страниц иногда используют Disallow, но рекомендуется именно Clean-param, потому что он позволяет передавать основному адресу или сайту некоторые накопленные показатели. Запрет просто выкидывает адрес из обхода, склейка — переносит сигналы на нужный.
В чате про эту директиву рассказывали показательную историю: специалисту не дали работу после технического собеседования, когда он заявил, что Яндекс давно не учитывает Clean-param, и на вопрос «откуда данные» ответил, что прочитал у популярного блогера. Директива жива, описана в действующей справке и имеет отдельную страницу с примерами.
Полезное дополнение оттуда же: если доступа к robots.txt нет — сайт на конструкторе, самопис или просто нет доступа к хостингу, — те же параметры можно задать в интерфейсе Яндекс Вебмастера.
Устаревшие советы, которые всё ещё повторяют
Crawl-delay. Яндекс перестал её учитывать 22 февраля 2018 года. Скорость обхода настраивается в Вебмастере, в разделе «Скорость обхода» — и это не то же самое, что скорость загрузки. Тем не менее совет «поставьте Crawl-delay» встречается до сих пор — он встретился и в нашем чате в сентябре 2026-го, в ответе человеку, у которого сторонний бот создавал нагрузку на сервер.
Host. Директива главного зеркала не используется — её полностью заменил 301-редирект.
Закрывать «мусор» вместо того, чтобы его не создавать. robots.txt не чинит структуру: если сайт плодит тысячи адресов с параметрами, правильнее убрать причину, а директивы оставить как страховку.
Закрывать /wp-admin/ и прочие служебные разделы и считать это настройкой. Это гигиена, а не оптимизация: на видимость она не влияет.
Живые случаи из чата
«Закрыл весь сайт и открыл отдельные страницы — Вебмастер ругается». Схема Disallow: / плюс точечные Allow вызывает в Яндекс Вебмастере критическую ошибку «Сайт закрыт от индексации»: робот видит запрет на всё, включая главную. Технически Allow работает, но сигнал системе отправляется плохой, а любая ошибка в порядке правил выключает весь сайт. Если задача — отдавать в индекс только проработанные страницы, надёжнее идти от обратного: открыть сайт и закрывать noindex то, что не готово.
«Страницы под контекстную рекламу: robots или noindex?» Вопрос из чата, и ответ следует из справки: если страница не должна быть в поиске — noindex, и не закрывать её в robots.txt, иначе робот не увидит метатег. Запрет в robots.txt подойдёт, только если вам всё равно, попадёт ли адрес в выдачу без описания.
«Использовать всё сразу: robots, noindex и 403 для ботов». Совет из чата, с которым стоит быть осторожным. Отдавать поисковым роботам 403 — это не «усиленное закрытие», а сигнал о недоступности сайта; в сочетании с ошибкой в настройке так теряют индексацию целиком. Достаточно одного инструмента, выбранного под задачу.
«Пагинацию закрывать в robots?» В чате отвечали: не закрывать, канонический адрес на саму себя, чтобы робот ходил по страницам и видел карточки товаров. Это совпадает с тем, что мы писали в разборе дублей: пагинация — не дубли.
«Сторонний бот создаёт нагрузку». Блокировка в robots.txt помогает только с теми, кто её соблюдает. Для остальных это уровень сервера: ограничения в конфигурации или у хостинг-провайдера. Отдельная история — роботы нейросетей: там у запрета есть смысл, но и последствия свои.
Что писать в файле
Минимальный рабочий вариант для обычного сайта:
User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /search/
Clean-param: utm_source&utm_medium&utm_campaign&utm_term&utm_content
Sitemap: https://example.com/sitemap.xml
Что обычно закрывают: административную часть, корзину и оформление заказа, внутренний поиск, личный кабинет, страницы сравнения и печати, служебные каталоги движка.
Что закрывать не нужно: страницы пагинации, фильтры, по которым есть спрос, CSS и JS-файлы (без них робот не увидит страницу так, как видит человек), изображения, если вы хотите трафик из поиска по картинкам.
Чек-лист проверки
- Файл открывается по адресу
site.ru/robots.txtи отдаёт код 200. - В нём нет кириллицы, размер меньше 500 КБ.
- Нет случайного
Disallow: /— самая дорогая опечатка в SEO. - Разрешены CSS и JS.
- Указан
Sitemapс полным адресом, карта открывается. - Прописан
Clean-paramдля меток и сортировок. - Нет
Crawl-delayиHost— они больше ничего не делают. - Страницы, которые должны уйти из поиска, закрыты
noindexи не закрыты в robots.txt. - Файл проверен в анализаторе Яндекс Вебмастера и в инструменте Google.
- После релиза проверено ещё раз: на тестовом сервере robots.txt обычно закрывает всё, и этот файл регулярно уезжает в продакшен.
Последний пункт — самая частая авария в этой теме. Сайт переехал, трафик рухнул через неделю, причина — одна строка, приехавшая со стенда.
Частые вопросы
Удаляет ли robots.txt страницу из поиска?
Нет. Яндекс пишет, что ограниченные в robots.txt страницы могут участвовать в поиске, а Google — что заблокированный адрес всё равно может быть найден и показан, только без описания. robots.txt управляет обходом. Чтобы убрать страницу из выдачи, нужен noindex в HTML или в HTTP-заголовке.
Что надёжнее: robots.txt или meta noindex?
Это разные инструменты. Disallow экономит обход и не пускает робота на служебные разделы. noindex убирает страницу из поиска. Если цель — чтобы страницы не было в выдаче, ставится noindex, и тогда запрещать адрес в robots.txt нельзя: робот не сможет зайти и увидеть указание.
Можно ли закрыть сайт целиком через Disallow: / и открыть нужное через Allow?
Технически можно, но Яндекс Вебмастер покажет критическую ошибку «Сайт закрыт от индексации», потому что робот видит запрет на всё, включая главную. Любая неточность в правилах при такой схеме выключает сайт целиком. Безопаснее держать сайт открытым и закрывать noindex то, что не готово.
Учитывает ли Яндекс Clean-param?
Да. Директива описана в действующей справке, у неё есть отдельная страница с примерами, и там же сказано, что её рекомендуют вместо Disallow — потому что она позволяет передавать основному адресу накопленные показатели. Утверждение «Clean-param давно не работает» — миф, который кочует по блогам.
Работает ли Crawl-delay?
У Яндекса — нет: директива не учитывается с 22 февраля 2018 года, скорость обхода задаётся в Вебмастере. Совет «пропишите Crawl-delay» при проблемах с нагрузкой устарел на восемь лет, хотя встречается до сих пор.
Нужна ли директива Host?
Нет. Главное зеркало определяется 301-редиректом, директива больше не используется.
Можно ли через robots.txt убрать дубли?
Нет, и Google пишет об этом прямо: для нормализации файл использовать не нужно. Дубли закрываются 301-редиректом, каноническим адресом или Clean-param в Яндексе — разбор по типам. Запрет обхода лишь лишает поисковик возможности увидеть ваш canonical или редирект.
Что будет, если в robots.txt ошибка?
Если файл не соответствует требованиям Яндекса — например, недоступен или слишком большой, — сайт считается открытым для индексирования. Опасна обратная ситуация: синтаксически верный файл с лишним Disallow: /. Он работает идеально и закрывает всё.
Нужно ли закрывать CSS и JS?
Нет, наоборот. Без них робот увидит страницу не так, как видит человек, и это ухудшает оценку. Закрывать стили и скрипты — совет из середины десятых, который давно вреден.
Как закрыть сайт от ботов нейросетей?
Отдельными директивами для их роботов: у Яндекса это YandexAdditionalBot для ответов Алисы AI, у OpenAI — GPTBot для обучения и OAI-SearchBot для показа в поиске ChatGPT. Это разные настройки с разными последствиями, разобраны в статье про ответы нейросетей.
Поможет ли robots.txt против парсеров и лишней нагрузки?
Только против тех, кто его соблюдает. Поисковые роботы соблюдают, сомнительные парсеры — нет. Если бот создаёт нагрузку, вопрос решается на уровне сервера или хостинга, а не текстовым файлом.
Где проверить файл?
В анализаторе robots.txt в Яндекс Вебмастере: туда можно вставить список адресов и увидеть, какие из них разрешены, а какие запрещены. У Google аналогичная проверка в Search Console. Проверять стоит не абстрактно, а по конкретным адресам, которые должны быть в поиске.
Спросите в чате сообщества
Самое интересное всплывает в обсуждении: в чате отвечают практикующие специалисты, те, кто занимается продвижением каждый день. Приносите свои случаи и спорьте — вступление бесплатное, в том числе для заказчиков.