Файл robots.txt для сайта

Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога hozyindachi.ru о продвижении и доработке сайтов.

Файл robots.txt — четыре строки текста, из-за которых я видел и потерю всего трафика за неделю, и годами висящие в выдаче страницы, которые пытались спрятать именно им. Синтаксис здесь предельно прост; беда в том, что от файла ждут не той работы, которую он умеет выполнять. Это файл управления обходом, а не индексацией, и разница между этими понятиями стоит бизнесу денег. В SEO с 2005 года; за это время из файла ушли директивы, которые все считали обязательными, зато появилась новая задача — решать, пускать ли на сайт краулеры нейросетей. Ниже — что файл делает и чего не делает, полная таблица директив в актуальном виде, чем robots.txt отличается от noindex и canonical, как правильно работать с параметрами через Clean-param, какие ошибки встречаются чаще всего и как проверять результат.

Структура файла robots.txt

Что robots.txt делает и чего он не делает

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

Что файл делает.

  • Экономит краулинговый бюджет: робот не тратит обходы на служебные разделы, дубли, результаты поиска по сайту.
  • Снижает нагрузку на сервер от обхода тяжёлых разделов.
  • Указывает путь к карте сайта через директиву Sitemap.
  • Позволяет Яндексу правильно склеивать адреса с незначащими параметрами через Clean-param.
  • Управляет доступом отдельных краулеров, включая роботы нейросетевых сервисов.

Чего файл не делает.

  • Не удаляет страницу из индекса. Закрытая в robots.txt страница может попасть в выдачу, если на неё есть внешние ссылки. Google в такой ситуации показывает адрес без описания; Яндекс тоже способен держать такие адреса в базе.
  • Не скрывает информацию. Файл общедоступен: любой человек открывает его и видит адреса ваших админок и «секретных» разделов. Закрывать в robots.txt то, что нельзя показывать, — прямая уязвимость.
  • Не защищает от парсеров и ботов-сборщиков. Они его просто не читают.
  • Не ускоряет индексацию нужных страниц. Разрешающие директивы не заставляют робота приходить чаще.

Отсюда главное правило: robots.txt управляет обходом, а мета-теги и заголовки — индексацией. Все типовые катастрофы возникают из-за путаницы между этими двумя вещами.

Директивы: полная таблица на 2026 год

Директива Назначение Яндекс Google Комментарий
User-agent Кому адресован блок правил Да Да Обязательна; блоки разделяются пустой строкой
Disallow Запрет обхода пути Да Да Пустое значение означает «разрешено всё»
Allow Исключение из запрета Да Да Позволяет открыть подраздел внутри закрытого
Sitemap Адрес карты сайта Да Да Указывается полным URL, действует для всех роботов независимо от блоков
Clean-param Незначащие GET-параметры Да Нет Только Яндекс; лучший способ борьбы с параметрическими дублями
Crawl-delay Пауза между запросами Не учитывается Никогда не поддерживалась Устарела; скорость обхода настраивается в Яндекс Вебмастере
Host Главное зеркало Не учитывается Нет Устарела; зеркало определяется 301-редиректом и canonical

Про Host и Crawl-delay стоит сказать отдельно, потому что их до сих пор копируют из старых инструкций. Обе директивы Яндекс перестал учитывать ещё в конце 2010-х. Наличие Host в файле не вредит — он просто игнорируется, — но говорит о том, что файл не пересматривали годами. Главное зеркало сегодня задаётся постоянным редиректом с ненужных вариантов (с www на без www или наоборот, с http на https) и атрибутом canonical.

Спецсимволы. Обе системы поддерживают * — любая последовательность символов, и $ — конец адреса. По умолчанию в конце любого правила подразумевается *: запись Disallow: /admin закроет и /admin, и /administrator-panel. Если нужен только точный адрес, ставьте $.

Приоритет правил. И Яндекс, и Google выбирают наиболее конкретное правило: побеждает то, чей путь длиннее. При равной длине приоритет у Allow. Это значит, что порядок строк в файле значения не имеет — вопреки распространённому мнению.

Пример файла robots.txt

robots.txt против noindex, canonical и X-Robots-Tag

Самая полезная таблица во всей статье. Инструменты решают разные задачи, и подмена одного другим — источник большинства проблем.

Задача Правильный инструмент Почему не robots.txt
Убрать страницу из выдачи Мета-тег <meta name="robots" content="noindex"> Закрытие в robots.txt мешает роботу увидеть noindex — страница останется в базе
Убрать из выдачи файл (PDF, DOC) HTTP-заголовок X-Robots-Tag: noindex В файл нельзя вставить мета-тег
Склеить дубли с параметрами Clean-param для Яндекса, canonical для обеих систем Disallow оставит дубли в базе и не передаст их сигналы основному адресу
Выбрать основной адрес среди похожих Атрибут canonical robots.txt не умеет указывать на предпочтительный вариант
Закрыть личный кабинет от посторонних Авторизация на сервере Файл публичный, он показывает адрес всем желающим
Снизить нагрузку от обхода Настройка скорости в Яндекс Вебмастере, Disallow тяжёлых разделов Здесь robots.txt как раз уместен
Не тратить обход на бесконечные фильтры Disallow по маске параметров Здесь robots.txt тоже уместен
Срочно убрать страницу из выдачи Инструмент удаления в панели вебмастера плюс noindex или 410 robots.txt даёт медленный и ненадёжный результат

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

Clean-param: как правильно работать с параметрами

Параметрические дубли — самая частая техническая проблема интернет-магазинов. Один товар доступен по десяткам адресов: с меткой рекламной кампании, с идентификатором сессии, с сортировкой, с фильтром. Для Яндекса лучший инструмент — Clean-param.

Синтаксис: Clean-param: параметр1&параметр2 [префикс_пути]. Путь необязателен: без него правило действует на весь сайт. Директива работает независимо от того, в каком блоке User-agent она указана.

Типовой набор для магазина:

Clean-param: utm_source&utm_medium&utm_campaign&utm_term&utm_content
Clean-param: yclid&gclid&ymclid&from&openstat
Clean-param: sort&order&view&per_page /catalog/

Что даёт Clean-param в отличие от Disallow: робот понимает, что адреса с этими параметрами и без них — одна и та же страница, и объединяет их сигналы на основном адресе. Disallow просто запрещает обход, дубли при этом могут оставаться в базе, а накопленные ими сигналы теряются.

Для Google аналога нет — инструмент управления параметрами был отключён. Там задача решается атрибутом canonical на основной адрес, что нужно делать в любом случае, потому что canonical понимают обе системы.

Важное различие. Параметры, которые меняют содержимое страницы (например, значение фильтра, формирующее отдельную посадочную), в Clean-param добавлять нельзя — вы склеите разные страницы в одну и потеряете трафик. Туда идут только те параметры, которые на содержимое не влияют.

Что закрывать и что закрывать нельзя

Обычно закрывают: служебные каталоги CMS и админку, страницы результатов внутреннего поиска, корзину и оформление заказа, страницы сравнения и избранного, личный кабинет, страницы с идентификаторами сессий, версии для печати, тестовые поддомены целиком.

Никогда не закрывают:

  • CSS и JavaScript. Классическая ошибка, тянущаяся с давних инструкций. Поисковые системы отрисовывают страницу; без стилей и скриптов они видят сломанную вёрстку и могут счесть её неудобной для мобильных.
  • Изображения, которые должны быть в поиске по картинкам. Для магазинов это заметный источник трафика.
  • Страницы пагинации. Через них робот добирается до карточек. Закрытие пагинации регулярно приводит к тому, что часть каталога вообще не индексируется.
  • Страницы, которые нужно удалить из индекса. Причина описана выше: робот не увидит noindex.
  • Разделы с полезными фильтрами. Если по фильтрам есть спрос, они должны быть открыты и оформлены как посадочные, а не спрятаны.

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

Краулеры нейросетей: закрывать или нет

Новая задача последних лет. Роботы, собирающие данные для обучения моделей и для ответов чат-ботов, обращаются к сайтам так же, как поисковые, и так же читают robots.txt. Решение о доступе стоит принимать осознанно, потому что оно влияет на видимость.

User-agent Кто это Что даёт закрытие
GPTBot Сбор данных OpenAI для обучения Материалы не используются для обучения; на ответы в чате влияет косвенно
OAI-SearchBot Поисковая часть OpenAI Сайт перестаёт попадать в ответы с ссылками — обычно нежелательно
ChatGPT-User Переход по ссылке по запросу пользователя Пользователь не сможет открыть вашу страницу через чат
Google-Extended Использование контента моделями Google Не влияет на обычное ранжирование в поиске
ClaudeBot, Claude-User, Claude-SearchBot Роботы Anthropic: обучение, переходы, поиск Аналогично OpenAI: обучение и цитирование разделены
PerplexityBot Поисковый сервис с генеративными ответами Уход из ответов сервиса вместе со ссылкой на вас
CCBot Common Crawl, открытый архив веба Ваши данные не попадают в общедоступные наборы
Bytespider, Amazonbot, meta-externalagent Краулеры соответствующих компаний Обычно закрывают ради экономии ресурсов сервера

Главная ошибка при закрытии от ИИ. Люди пишут одно правило, закрывающее всё разом, и вместе с обучающими роботами отрезают поисковые и «пользовательские». Результат: сайт перестаёт цитироваться в генеративных ответах и терять начинает больше, чем защищает. Разделяйте: закрывайте обучающих (GPTBot, CCBot, Google-Extended), оставляйте открытыми поисковых (OAI-SearchBot, Claude-SearchBot, PerplexityBot), если хотите, чтобы на вас ссылались.

Вторая ошибка — закрывать Googlebot или YandexBot «заодно», под маской правила с * в имени агента. Имена агентов сопоставляются по подстроке, и небрежное правило может задеть основные поисковые роботы. Всегда перечисляйте агентов явно.

Третье. Robots.txt для этих роботов — тоже рекомендация. Часть сборщиков его игнорирует. Если задача — реально закрыть контент, нужны серверные меры: блокировка по User-agent на уровне веб-сервера, ограничение частоты запросов, авторизация.

Частые ошибки и их последствия

Ошибка Как выглядит Последствие
Забыли снять запрет после разработки User-agent: * и Disallow: / Сайт полностью выпадает из поиска; самая дорогая ошибка отрасли
Закрыли стили и скрипты Disallow: /wp-content/, Disallow: /assets/ Робот видит сломанную страницу, страдает оценка мобильной версии
Пытаются удалить страницу через Disallow Закрытие вместо noindex Страница остаётся в выдаче, часто без описания
Пропущен слеш в начале пути Disallow: catalog Правило не работает: путь должен начинаться со слеша
Неверный регистр Disallow: /Catalog/ при реальном /catalog/ Правило не срабатывает: пути чувствительны к регистру
Нет пустой строки между блоками Блоки User-agent слиты Правила читаются не тем роботом, которому предназначены
Файл не в корне или отдаёт не 200 /files/robots.txt, редирект, 403 Файл не учитывается; при устойчивой ошибке 5xx Google временно прекращает обход сайта
Кодировка с BOM или не UTF-8 Файл сохранён в Word Первая строка не распознаётся, весь файл может не примениться
Оставлена директива Host Host: www.site.ru Игнорируется; признак устаревшего файла и, часто, нерешённой проблемы зеркал
Разные файлы на www и без www Забыли про зеркала и поддомены Роботы получают противоречивые указания; у каждого поддомена свой robots.txt
Закрыли пагинацию Disallow: /*page= Часть каталога недоступна для обхода и не индексируется
Закрыли параметры вместо Clean-param Disallow: /*?utm Дубли остаются в базе, сигналы не склеиваются с основным адресом
Указали в Sitemap относительный путь Sitemap: /sitemap.xml Директива не работает: нужен полный URL
Файл больше допустимого размера Тысячи правил Google учитывает первые 500 КБ, остальное отбрасывается

Файл действует только на тот хост, где лежит: у каждого регионального поддомена должен быть свой robots.txt.

Проверка, внедрение и чеклист

Ошибка в robots.txt стоит дороже, чем любая другая правка такого объёма, поэтому порядок внедрения должен быть жёстким.

  1. Сделайте копию текущего файла с датой в имени, прежде чем что-либо менять.
  2. Проверьте новый файл в инструментах. В Яндекс Вебмастере есть анализ robots.txt с проверкой конкретных адресов, у Google — отчёт robots.txt в Search Console. Проверяйте не синтаксис, а список реальных URL: 10–20 открытых адресов и 10 закрытых.
  3. Отдельно проверьте главную, категории, карточки, пагинацию, стили и скрипты. Их закрытие — самые дорогие ошибки.
  4. Выложите файл и убедитесь, что он отдаётся с кодом 200 и с типом text/plain, кодировка UTF-8 без BOM.
  5. Проверьте все зеркала и поддомены — каждый хост отдельно.
  6. Через 7–14 дней сверьте число страниц в индексе в обеих панелях вебмастера. Резкое падение означает, что вы закрыли лишнее.
  7. Проверяйте файл после каждого обновления CMS и переноса сайта. Половина случаев «сайт исчез из поиска» — это восстановившийся из дистрибутива или тестового окружения robots.txt с полным запретом.

Финальный чеклист для проверки уже работающего сайта: файл доступен по корневому адресу и отдаёт 200; нет строки Disallow: / в блоке для всех роботов; стили, скрипты и изображения открыты; пагинация открыта; указан полный URL карты сайта; параметры обработаны через Clean-param и canonical, а не только через Disallow; директив Host и Crawl-delay нет; правила для ИИ-краулеров разделены на обучающих и поисковых; у каждого поддомена свой корректный файл; в файле нет адресов, которые вы не хотели бы показывать посторонним.

Ошибки в robots.txt и индексации входят в техническую доработку сайта. Проверить свой файл и увидеть остальные проблемы можно через бесплатный аудит.

Коротко

  • robots.txt управляет обходом, а не индексацией: закрытая в нём страница может остаться в выдаче, если на неё ведут ссылки.
  • Удалять страницы из поиска нужно мета-тегом noindex или заголовком X-Robots-Tag, и для этого страница обязана быть открыта для обхода.
  • Host и Crawl-delay устарели и не учитываются: зеркало задаётся 301-редиректом и canonical, скорость обхода — настройкой в Яндекс Вебмастере.
  • Параметрические дубли для Яндекса решаются Clean-param, для Google — атрибутом canonical; Disallow здесь работает хуже, так как теряет накопленные сигналы.
  • Никогда не закрывайте CSS, JavaScript, изображения и пагинацию — это прямой ущерб индексации и оценке мобильной версии.
  • Приоритет имеет самое конкретное правило (длиннее путь), при равенстве выигрывает Allow; порядок строк роли не играет.
  • При закрытии от ИИ-краулеров разделяйте обучающих (GPTBot, CCBot, Google-Extended) и поисковых (OAI-SearchBot, Claude-SearchBot, PerplexityBot) — иначе теряете цитирование.
  • Файл публичный: закрывать в нём чувствительные разделы — значит показывать их адреса всем; для этого нужна авторизация.
  • Проверяйте изменения на списке реальных URL в панелях вебмастеров и обязательно после каждого обновления CMS или переноса сайта.

Если нужно заказать SEO-продвижение — помогу вывести сайт в топ Яндекса и удержать позиции.

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

Оставьте комментарий

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

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх