robots.txt — текстовый файл в корне сайта, который поисковые роботы читают перед обходом, чтобы понять, какие разделы им разрешено, а какие запрещено сканировать. Для рунета особенно важно проверять не только Googlebot, но и YandexBot — Яндекс исторически по-своему трактовал часть директив.
User-agent, Disallow и Allow
Файл состоит из блоков, каждый начинается с User-agent:, за которым следуют Disallow и Allow — запрещённые и разрешённые пути. Бот применяет правила из первого блока, чей User-agent совпадает с его именем, а если такого блока нет — берёт блок с User-agent: *.
Директива Host: зачем она была и почему её больше нет смысла писать
Долгое время в рунете в robots.txt добавляли нестандартную директиву Host:, чтобы указать Яндексу главное зеркало сайта (с www или без). Это расширение поддерживал только Яндекс — Google его никогда не читал. В 2018 году сам Яндекс объявил Host устаревшей и перешёл на определение зеркала через redirect и настройки в Яндекс.Вебмастере, так что сегодня эта директива — просто игнорируемый мусор в файле.
Sitemap как подсказка роботу
Директива Sitemap: указывает поисковику расположение файла sitemap.xml. Это не обязательно, но удобно: боту не нужно угадывать путь к карте сайта или полагаться только на её регистрацию в Яндекс.Вебмастере и Google Search Console.
Зачем это нужно
- Проверить синтаксис robots.txt перед публикацией, чтобы случайная опечатка не закрыла весь сайт от индексации.
- Убедиться, что правила для YandexBot и Googlebot не противоречат друг другу.
- Проверить конкретную пару user-agent и путь через встроенный тестер, не дожидаясь переобхода роботом.
Почему Disallow не убирает страницу из выдачи
Частая путаница: Disallow запрещает боту сканировать содержимое страницы, но не запрещает знать о её существовании. Если на закрытую страницу ведёт ссылка с другого проиндексированного сайта, Google может показать её URL в выдаче без описания — просто потому, что содержимое не сканировалось.