Файл 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.

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