Robots.txt: правильная настройка для SEO

Robots.txt: правильная настройка для SEO

Файл robots.txt — первое, что запрашивает поисковый робот, попав на сайт. От его содержимого зависит, какие разделы попадут в индекс, как расходуется краулинговый бюджет и не утекут ли в выдачу служебные страницы. Ошибка в одной строке способна закрыть от индексации весь проект, поэтому к настройке стоит подходить так же серьёзно, как к контенту или ссылкам. Разберём, как составить robots.txt без типичных промахов и с учётом различий между Яндексом и Google.

Что такое robots.txt и как он работает

Robots.txt — текстовый файл в корне домена, доступный по адресу https://site.ru/robots.txt. Он содержит рекомендации для поисковых краулеров: какие URL обходить можно, а какие нет. У механизма два важных ограничения.

Во-первых, директивы — это именно рекомендации. Роботы Яндекса и Google их соблюдают, но многие парсеры и агрессивные краулеры игнорируют файл.

Во-вторых, Disallow запрещает не индексацию, а сканирование. Если на закрытую страницу ведут внешние ссылки, Google может показать её в выдаче без сниппета. Для гарантированного исключения из индекса нужен мета-тег robots со значением noindex или заголовок X-Robots-Tag, при этом страница должна быть открыта для сканирования.

Базовые директивы

Синтаксис строится на нескольких командах. Их немного, но сочетание имеет значение.

Директива Назначение Пример
User-agent Указывает робота, к которому относится блок правил User-agent: Yandex
Disallow Запрещает сканирование URL по маске Disallow: /cart/
Allow Явно разрешает сканирование (приоритетнее в рамках блока) Allow: /catalog/
Sitemap Указывает адрес XML-карты сайта Sitemap: https://site.ru/sitemap.xml
Clean-param Убирает GET-параметры из учёта (только Яндекс) Clean-param: utm_source /

Директива Host, задававшая главное зеркало для Яндекса, устарела — зеркало теперь определяется через 301-редирект и rel=canonical. Её наличие в чужом файле — признак, что конфигурацию давно не обновляли.

Различия Яндекса и Google

Два поисковика трактуют файл по-разному.

  • Allow/Disallow. Google при конфликте выбирает более специфичное (длинное) правило. Яндекс тоже опирается на длину директивы, но при равенстве отдаёт приоритет Allow. Надёжнее проверять результат в валидаторах вебмастера.
  • Clean-param. Директива только для Яндекса — Google её не понимает. Для управления параметрами в Google используйте rel=canonical.
  • Регистр. Пути в Disallow чувствительны к регистру: /Catalog/ и /catalog/ — разные адреса.

Работа с параметрами тесно связана с каноническими адресами — об этом в материале про канонические URL и в гайде по дублям страниц.

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

Главный принцип: закрывать только то, что не несёт ценности для поиска и не должно расходовать бюджет робота. Типовой список под закрытие для коммерческого сайта:

  • корзина, оформление заказа, личный кабинет (/cart/, /checkout/, /personal/);
  • результаты внутреннего поиска (/search/, /?s=);
  • страницы сравнения, избранного, страницы авторизации и служебные каталоги CMS;
  • технические дубли с параметрами сортировки, если они не закрыты каноникалом.

При этом нельзя закрывать ресурсы, влияющие на рендеринг, — CSS, JS, изображения. Без стилей и скриптов робот не отрисует страницу и не оценит её мобильную версию, что бьёт по позициям при mobile-first индексации (подробнее — в статье про mobile-first).

Пример рабочего файла

Минимальный корректный robots.txt для сайта на CMS может выглядеть так:

User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /personal/
Disallow: /search/
Disallow: /*?utm_
Allow: /*.css
Allow: /*.js

Clean-param: utm_source&utm_medium&utm_campaign /

Sitemap: https://site.ru/sitemap.xml

Здесь блок User-agent: * применяется ко всем роботам, метки UTM закрыты от сканирования, для Яндекса параметры вычищаются через Clean-param, явно разрешены стили и скрипты, а в конце указан путь к карте сайта. Адрес sitemap.xml всегда пишется абсолютным URL — это требование обоих поисковиков. О карте сайта есть отдельный материал: sitemap.xml.

Мини-кейс: «спрятанный» каталог

Распространённая ситуация из практики аудитов. Сайт услуг переезжал на новую версию, и разработчик при выкатке оставил в robots.txt строку Disallow: / с тестового стенда. Сайт работал, контент был на месте, но за несколько недель страницы начали выпадать из индекса: робот видел запрет на сканирование и переставал обходить новые URL.

Диагностика заняла минуты — достаточно открыть site.ru/robots.txt и инструмент проверки в Яндекс.Вебмастере, который показал, что нужные страницы запрещены. После удаления строки и переотправки карты сайта обход восстановился. Вывод: robots.txt — первое, что нужно проверять при необъяснимом падении индексации и сверять после любого релиза.

⚠️ Риски и частые ошибки

  • Disallow: / на боевом домене. Полный запрет сканирования. Чаще всего попадает в прод с тестового окружения — проверяйте файл после каждого деплоя.
  • Закрытие CSS и JS. Ломает рендеринг и оценку мобильной версии. Наследие старых шаблонов, где «прятали» всё подряд.
  • Попытка скрыть конфиденциальные данные через Disallow. Robots.txt — публичный файл: любой увидит, какие «секретные» пути вы перечислили. Конфиденциальные разделы закрывают авторизацией и noindex, а не записью в robots.txt.
  • Использование noindex внутри robots.txt. Google не поддерживает директиву Noindex в этом файле. Для исключения из индекса — мета-тег или X-Robots-Tag.
  • Один robots.txt на поддоменах. Каждый поддомен требует собственного файла в своём корне; правила основного домена на него не распространяются.

Проверка и обслуживание

После правок файл нужно валидировать. В Яндекс.Вебмастере есть «Анализ robots.txt», в Google Search Console — отчёты об индексировании и проверка URL. Они покажут, разрешён ли адрес к обходу и какое правило сработало. Полезно сверять и серверные логи: куда реально ходит робот и не тратит ли бюджет на закрытые разделы.

Robots.txt — не документ «настроил и забыл». При изменении структуры сайта или смене CMS его нужно пересматривать.

FAQ

Обязателен ли robots.txt для сайта?
Формально нет — без него робот считает, что сканировать можно всё. Но на боевом проекте файл нужен, чтобы управлять бюджетом сканирования и закрыть служебные разделы.

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

Чем Clean-param отличается от Disallow для параметров?
Clean-param (только Яндекс) сообщает, что параметр не меняет содержимое, и объединяет статистику на чистом URL без потери веса. Disallow просто запрещает обход — это грубее.

Как часто обновлять robots.txt?
По мере изменений: после релизов, смены CMS, появления новых служебных разделов. «Обновления по календарю» файл не требует.

Можно ли указать несколько sitemap?
Да, директиву Sitemap можно повторять — для разных карт (страницы, изображения, новости).

Материал подготовлен экспертами Chrome Media — агентства по техническому SEO и продвижению в Яндексе и Google.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *