Robots.txt — текстовый файл в корне сайта (site.ru/robots.txt), который сообщает поисковым ботам правила обхода: что можно индексировать, что нельзя. Поддерживает директивы Disallow, Allow, Sitemap, Host.
robots.txt не запрещает индексацию — только сканирование. Если на запрещённую в robots.txt страницу ведут внешние ссылки, она всё равно попадёт в индекс (с пустым сниппетом). Для запрета индексации — meta robots noindex или X-Robots-Tag.
User-agent: * Allow: / Disallow: /admin/ Disallow: /cart/ Disallow: /*?utm_* User-agent: Yandex Clean-param: utm_source&utm_medium Sitemap: https://pawetta.com/sitemap.xml
Как делать правильно
- Disallow: / — закрыли весь сайт от индекса
- блокировка JS / CSS — Google не видит layout
- robots.txt вместо noindex для разделов
- Disallow для UTM = потеря данных аналитики
- Disallow: /admin/ — только служебные разделы
- Allow CSS / JS / шрифтов для корректного рендера
- noindex meta вместо robots.txt для конкретных страниц
- Sitemap: ссылка в файле
Сайт случайно поставил Disallow: / в продакшен (тестовая настройка осталась). Через 2 недели — минус 95% органики, сайт исчез из индекса. Откатили robots.txt, отправили на переобход в Search Console. Восстановление позиций — 6 недель.
Яндекс и Google читают robots.txt по-разному. Директиву Host Яндекс уже не использует с 2018 года — главное зеркало определяется через 301-редирект, и оставшаяся строка Host просто игнорируется. Директиву Crawl-delay Google никогда не поддерживал (скорость обхода задаётся в Search Console), а Яндекс перестал учитывать её в robots.txt — теперь это настройка в Вебмастере. Зато Google понимает шаблоны с * и $ (например, Disallow: /*?sort=$), а Яндекс трактует пустой Disallow: как «можно всё».
Главная ловушка: robots.txt и noindex конфликтуют. Если страница закрыта в Disallow, робот не зайдёт на неё и не увидит мета-тег noindex внутри — поэтому страница с внешними ссылками так и висит в индексе с пустым сниппетом «описание недоступно из-за robots.txt». Чтобы выкинуть URL из индекса, путь должен быть открыт для сканирования, а запрет задан через meta robots или X-Robots-Tag. Проверяйте файл в анализаторе robots.txt Яндекс.Вебмастера и в инструменте проверки URL Google — оба показывают, какое правило применилось к конкретному адресу.
Сообщает боту, какие пути обходить, а какие пропускать — через Disallow, Allow и Sitemap.
Запрещённая страница с внешними ссылками всё равно попадёт в выдачу — с пустым сниппетом.
Один лишний слеш в Disallow: / закрывает весь сайт; восстановление в индексе занимает недели.
Интернет-магазин на 80 000 товаров жёг краулинговый бюджет на бесконечных URL фильтров (?color=&size=&page=). Закрыли в robots.txt Disallow: /*?, оставив Allow для CSS/JS. За месяц Googlebot переключился с мусорных комбинаций на карточки: глубина обхода каталога выросла, в индекс вошли 12 000 ранее не сканированных товаров, а трафик по товарным запросам прибавил 22%.