Перейти к содержанию
⚙️
Технический SEO
Урок 15 из 22 · Управление краулингом
БЕСПЛАТНО +55 XP

robots.txt и meta robots: подробный разбор

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

Основа — спецификация Google о разборе robots.txt и описание метатега robots и X-Robots-Tag. Базовое введение — в уроке про robots.txt; здесь — подробности.

🤖
Два уровня управления
«Файл robots.txt решает, можно ли заходить. Метатег решает, что делать с тем, что робот увидел.»

Где лежит файл и на что распространяется

  • Файл должен быть текстом в UTF-8, лежать в корне хоста;
  • он действует только для своего хоста, протокола и порта: файл на example.com не распространяется на поддомен, на http и на другой порт, а файл в подпапке не проверяется вовсе;
  • предел размера — 500 КиБ, всё, что дальше, игнорируется;
  • имена полей не зависят от регистра, но пути в правилах зависят от него;
  • Google кэширует файл обычно до 24 часов.

Какие директивы поддерживаются

ПолеЗначение
user-agentк какому роботу относятся правила
disallowпуть, который нельзя сканировать
allowпуть, который можно сканировать
sitemapполный URL карты сайта

Это весь список. Нередко называют ещё директиву Crawl-delay, но Google другие поля, например crawl-delay, не поддерживает. Недействительные строки Google игнорирует. Подробнее о картах сайта — в уроке про XML-карты.

Как выбирается группа и правило

  • Группа. Google выбирает группу с наиболее подходящим user-agent; порядок групп неважен. Если для робота объявлено несколько специальных групп, их правила объединяются, а группа со звёздочкой с ними не объединяется;
  • Правило. Применяется самое специфичное правило по длине пути; при конфликте, в том числе с подстановками, берётся наименее строгое. Поэтому утверждение «Allow всегда перебивает Disallow» неточно: важна длина пути;
  • Подстановки. Поддерживаются две: звёздочка (любое число любых символов) и знак доллара (конец URL). Завершающая звёздочка игнорируется.
User-agent: *
Disallow: /cart/
Disallow: /*?sessionid=
Allow: /cart/help

User-agent: Googlebot-Image
Disallow: /drafts/

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

Что будет при ошибках

  • Ответы 4xx (кроме 429) Google воспринимает так, будто файла нет: ограничений нет;
  • Ответы 5xx. Первые 12 часов Google прекращает обход сайта и пытается получить файл заново; затем до 30 дней использует последнюю удачную версию; если версии нет, считает, что ограничений нет. Поэтому «лежащий» robots.txt — не мелочь;
  • не используйте 401 и 403 для ограничения частоты обхода — они на неё не влияют.

Состояние файла видно в отчёте robots.txt в Search Console: какие файлы Google нашёл для основных хостов, когда обходил и какие были предупреждения. Устаревший «Тест robots.txt» из меню инструментов заменён этим отчётом.

Что закрывать, а что нет

Закрывать имеет смысл то, что создаёт нагрузку без пользы для поиска: корзину, внутренний поиск, адреса с сеансовыми идентификаторами. Не закрывайте то, без чего Google не поймёт страницу: иначе он плохо проанализирует страницы, зависящие от этих ресурсов. Для JavaScript есть дополнительное правило: Google не выполняет скрипты из заблокированных файлов; подробности — в уроке про JavaScript и SEO.

Метатег robots

Метатег в head или заголовок X-Robots-Tag управляют индексированием и показом. Правила можно комбинировать через запятую; они не зависят от регистра. Для текущих целей важны:

ПравилоЭффект
noindexне показывать страницу в результатах
nofollowне переходить по ссылкам страницы; без него Google может использовать их для обнаружения
noneто же, что noindex и nofollow
nosnippetне показывать текстовый фрагмент и видеопревью
max-snippet: Nне больше N символов текстового фрагмента

Два уточнения. Во-первых, Google больше не использует noarchive, потому что кэшированной ссылки в результатах больше нет. Во-вторых, при конфликте правил действует более строгое: если на странице есть и max-snippet:50, и nosnippet, применяется nosnippet.

X-Robots-Tag: для PDF и не только

Заголовок HTTP позволяет задать те же правила для файлов, у которых нет head: PDF, изображений, документов. Можно указать робота перед правилами: X-Robots-Tag: googlebot: nofollow. Правила без указания робота действуют на всех.

HTTP/1.1 200 OK
X-Robots-Tag: noindex

Главная ловушка: Disallow + noindex

Это самая известная ловушка. Правило из руководства по блокированию индексации: чтобы noindex сработал, страница не должна быть закрыта в robots.txt и должна быть доступна обходчику. Если закрыть, робот правила не увидит, и страница всё равно может появиться в результатах, например если на неё ссылаются. Для убранной из выдачи страницы порядок такой: сначала открыть обход, дать noindex, дождаться исключения, только потом при необходимости закрывать.

Robots.txt, noindex и canonical

Это три разных инструмента для трёх разных задач: нагрузка на сайт, видимость в результатах и выбор основного URL. Для дублей документация прямо предостерегает: не используйте robots.txt для канонизации, а noindex не рекомендуется использовать, чтобы предотвратить выбор канонической страницы на одном сайте. Подробнее — в уроках про дублированный контент и тег canonical.

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

  1. Откройте отчёт robots.txt в Search Console и убедитесь, что файл найден без ошибок для каждого хоста.
  2. Проверьте, что нет случайного Disallow: /.
  3. Через анализатор страницы проверьте, что страницы, которые должны быть в поиске, не помечены noindex.
  4. Обойдите сайт краулером и найдите страницы с noindex, закрытые одновременно в robots.txt.
  5. Для массовой проверки статусов индексирования — аудит URL. Общие вопросы обходимости — в уроке про обходимость.

Чек-лист

  1. robots.txt лежит в корне каждого хоста, в UTF-8, не больше 500 КиБ.
  2. Используются только поддерживаемые поля: user-agent, allow, disallow, sitemap.
  3. Нет случайного Disallow: /.
  4. Закрыто то, что даёт нагрузку, но не нужно поиску; ресурсы для отображения открыты.
  5. Страницы с noindex не закрыты в robots.txt.
  6. Для PDF и других файлов используется X-Robots-Tag.

Ошибки

  • Закрывать в robots.txt то, что нужно убрать из поиска.
  • Одновременно Disallow и noindex на одной странице.
  • Использовать Crawl-delay, ожидая эффекта в Google.
  • Закрывать CSS и JavaScript, нужные для отображения.
  • Использовать robots.txt для канонизации.

Что дальше

Дальше — тег canonical, как задать предпочтительный URL, не закрывая дубли от обхода.

🎯
Задание к уроку
Проверьте понимание и получите +20 XP
← Тег canonical
Урок 15 из 22
Перейти к заданию →