Robots.txt

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

Кратко

Robots.txt следует протоколу исключений роботов: блоки User-agent, директивы Disallow/Allow, опционально Sitemap и (для отдельных систем) Crawl-delay. Правила интерпретируются префиксами путей; ошибка в одной строке может закрыть лишнее.

Назначение

Файл читается перед массовым сканированием: робот выбирает наиболее специфичный блок User-agent или общий *. Правила применяются к префиксам URL-пути на этом хосте; другие поддомены и протоколы требуют своего robots.txt.

Страница, закрытая только Disallow, всё ещё может попасть в индекс по внешним ссылкам — в выдаче может быть URL без сниппета. Для исключения из индекса используйте noindex, удаление через вебмастер или реальное закрытие доступа.

Директивы

Disallow запрещает обход префикса; Allow может разрешить подпуть внутри запрещённого дерева (поведение зависит от краулера). Директива Sitemap указывает абсолютный URL карты — можно несколько строк. Wildcard * и $ поддерживаются у Google в ограниченном виде — проверяйте документацию перед продакшеном.

  • Сортируйте правила от более длинных префиксов к коротким, если логика неочевидна.
  • Не полагайте на robots.txt для блокировки чувствительных данных — используйте авторизацию.
  • Помните про отдельные файлы для staging-доменов и CDN-зеркал.

Пример файла

Ниже — учебный пример с комментариями и строкой Sitemap. Реальный robots этого сайта — всегда /robots.txt на текущем домене (локально и на проде путь одинаковый). В файле видно, что закрыто от обхода (здесь — /api/). Чтобы при деплое в robots подставлялась абсолютная строка Sitemap: …, задайте в окружении NEXT_PUBLIC_SITE_URL с вашим прод-доменом.

TXT
User-agent: *
Allow: /
Disallow: /api/

# Учебно: закрыть дерево, но открыть ветку
# Disallow: /admin/
# Allow: /admin/public/

Sitemap: https://www.example.com/sitemap.xml

Типовые ошибки

  • Закрытие CSS/JS, из-за чего страница рендерится «пустой» для Googlebot.
  • Лишний слэш или регистр в пути — правило не срабатывает.
  • Забытый robots после миграции CMS — случайно закрыта вся витрина.
  • Путаница между robots.txt и meta-robots / X-Robots-Tag — разные уровни сигнала.

Практика

  • Держите ресурсы рендеринга открытыми, если нужна корректная оценка страницы.
  • Укажите Sitemap и проверяйте файл в Search Console после каждого крупного релиза.
  • Версионируйте изменения robots.txt в git и прикладывайте ссылку в постмортем миграции.

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

Нет. Он ограничивает обход. Для удаления из индекса нужны noindex, удаление URL через инструменты вебмастера, 404/410 по назначению или закрытие авторизацией.
Один на комбинацию схема+хост+порт в корне. Поддомены и отдельные мобильные домены требуют собственного robots.txt.
Да, базовый синтаксис совместим, но детали поддержки wildcard и интерпретации Allow могут отличаться — проверяйте справку Яндекса для критичных кейсов.
Префиксы сопоставляются по строке: /admin закроет и /admin-old. Уточняйте префиксы осознанно и тестируйте в отчётах обхода.
Прямые контакты

Обсудим ваш проект?

Расскажите о целях и сайте — предложу формат работы и следующий шаг.