robots.txt — текстовый файл в корневом каталоге сайта с инструкциями для поисковых роботов: какие адреса им разрешено сканировать, а какие нет. Он управляет обходом, а не индексацией. Страница, закрытая в robots.txt, всё равно может оставаться в поиске.
Ниже — как устроен файл, какие директивы учитывают Google и Яндекс, какое правило побеждает при конфликте, как проверить файл и не закрыть лишнее.
Что такое robots.txt и где он находится
Для чего нужен файл
Сканирование (обход) — это загрузка страниц поисковым роботом. Google описывает robots.txt прежде всего как способ управлять обходом: с его помощью можно ограничить количество запросов на сканирование и снизить нагрузку на сайт. Типичные кандидаты на запрет — служебные разделы, внутренний поиск, корзина и другие адреса, которые роботу незачем загружать.
robots.txt не защищает доступ к страницам. В стандарте протокола прямо сказано, что эти правила — не механизм авторизации. Google также напоминает, что правила поддерживаются не всеми поисковыми системами, а конфиденциальные файлы советует защищать на сервере паролем или другими способами.
Где лежит и требования к файлу
Требования Google к файлу:
- файл называется
robots.txtи лежит в корневом каталоге:https://example.com/robots.txt; - на сайте должен быть только один такой файл;
- правила действуют только для того протокола, хоста и порта, где размещён файл. У поддомена
https://shop.example.com/— свой robots.txt; - кодировка — UTF-8;
- правила указываются с учётом регистра:
/Catalog/и/catalog/— разные пути.
Максимальный размер файла у Google — 500 кибибайт (КиБ), контент сверх лимита игнорируется. Яндекс корректно обрабатывает файл размером не более 500 КБ, который лежит в корне сайта и отдаётся с кодом 200 OK. Кириллицу в robots.txt Яндекс использовать запрещает.
Посмотреть файл любого сайта просто: откройте в браузере адрес /robots.txt в корне домена. В CMS файл часто формирует плагин или шаблон, поэтому проверяйте итоговый /robots.txt, а не настройки в админке.
Сканирование и индексация: что robots.txt может и чего не может
Путь страницы в поиск идёт в три шага: робот загружает страницу, система обрабатывает содержимое, затем сохраняет сведения о странице в индексе. robots.txt действует только на первом шаге: Disallow запрещает загрузку, но не удаляет адрес из базы поисковой системы.
Поэтому адрес закрытой страницы может попасть в индекс другим путём. Google пишет, что запрещённая в robots.txt страница может быть проиндексирована по ссылкам с других сайтов и показываться в результатах без описания. В справке Яндекса сказано, что ограниченные в robots.txt страницы могут участвовать в поиске.
Убрать страницу из поиска помогает другой инструмент — noindex в метатеге или HTTP-заголовке, и работает он, только если страница не закрыта в robots.txt: иначе робот не загрузит код и не увидит правило. Подробнее о том, как noindex убирает страницу из поиска, — в статье об индексации.
robots.txt также не склеивает дубли и не выбирает основной адрес страницы. Для этого есть отдельный механизм — о том, как указать основной адрес через canonical, мы рассказали отдельно.
Синтаксис robots.txt: группы, директивы и порядок правил
Группы и User-agent
Файл состоит из групп. Каждая группа начинается со строки User-agent — она называет робота, которому адресованы правила, — и содержит одно или несколько правил Disallow / Allow. Значение * относится ко всем роботам, для которых нет отдельной группы. Текст после символа # — комментарий.
# Группа для всех роботов
User-agent: *
Disallow: /search/
# Группа только для основного робота Google
User-agent: Googlebot
Disallow: /search/
Disallow: /drafts/
Google и Яндекс выбирают группу по-разному:
- Google для каждого робота использует только одну группу — ту, в которой робот назван наиболее конкретно. Если для этого робота в файле несколько групп, Google объединяет их правила в одну. Порядок групп в файле не важен, регистр в значении
User-agentне учитывается. - Яндекс выбирает группу по старшинству. Если в файле есть
User-agent: Yandex, группаUser-agent: *не учитывается. Если есть группа для конкретного робота Яндекса, не используются ниYandex, ни*.
Практический вывод: если вы добавляете отдельную группу для робота, повторите в ней все общие правила из *. Иначе этот робот их не увидит.
Так же задаются правила для роботов ИИ-сервисов. Какие из них существуют и что означают их имена, — в материале о том, какие роботы ИИ-сервисов существуют и как ими управлять.
Disallow и Allow
Disallow запрещает обход разделов или страниц, Allow — разрешает. Путь в правиле указывается от корня сайта и начинается с /.
User-agent: *
# Запретить обход раздела /cart/ и всего, что внутри
Disallow: /cart/
# Разрешить один подраздел внутри запрещённого
Allow: /cart/help/
Несколько частных случаев:
Disallow:без пути ничего не запрещает. Яндекс считает его эквивалентомAllow: /, Google игнорирует правила без пути.Disallow: /запрещает обход всего сайта.- Если ни одно правило группы не подходит к адресу, адрес разрешён.
Какое правило побеждает
Если к адресу подходят и Allow, и Disallow, решает длина пути, а не порядок строк в файле:
- Google применяет правило с более длинным путём. Если правила конфликтуют при равной длине, выбирается наименее строгое, то есть
Allow. - Стандарт RFC 9309 требует использовать самое длинное совпадение; при равенстве
AllowиDisallowследует применятьAllow. - Яндекс сортирует правила группы по длине префикса от меньшего к большему и применяет последнее подходящее. При одинаковой длине приоритет у
Allow.
Пример:
User-agent: *
Disallow: /catalog/
Allow: /catalog/shoes/
Адрес /catalog/shoes/boots/ подходит под оба правила. Путь /catalog/shoes/ длиннее, поэтому страница разрешена. Адрес /catalog/bags/ подходит только под Disallow: /catalog/ и закрыт. Если поменять строки местами, результат для Google и Яндекса не изменится.
Символы * и $
В путях Google и Яндекс поддерживают два спецсимвола:
*— любая последовательность символов, в том числе пустая;$— конец адреса. По умолчанию правило действует как префикс: Яндекс неявно добавляет*в конец пути, а$эту звёздочку отменяет.
User-agent: *
# Адреса, где строка запроса начинается с параметра sort
Disallow: /*?sort=
# Только адреса, которые заканчиваются на.pdf
Disallow: /*.pdf$
Яндекс в справке называет такие шаблоны регулярными выражениями, но других спецсимволов, кроме * и $, ни Google, ни Яндекс не описывают. Поэтому рассчитывайте только на эти два символа.
Осторожно с символом #: всё, что после него, — комментарий. Поэтому правило Disallow: /# Яндекс воспримет как Disallow: /, то есть как запрет обхода всего сайта.
Строка Sitemap
Строка Sitemap сообщает роботам адрес карты сайта. Её поддерживают и Google, и Яндекс. По правилам Google адрес должен быть полным, с протоколом и хостом. Строк Sitemap может быть несколько, и они не привязаны к конкретной группе User-agent.
Sitemap: https://example.com/sitemap.xml
Какие адреса включать в карту и как её отправить в поисковые системы, — в статье о том, что включать в карту сайта и как её отправить.
Clean-param — директива Яндекса
Clean-param сообщает роботу Яндекса, какие GET-параметры не меняют содержимое страницы. С этой директивой робот не будет многократно загружать одинаковую информацию по адресам, которые различаются только такими параметрами.
Синтаксис:
Clean-param: p0[&p1&p2&..&pn] [path]
- В первом поле через
&перечисляются параметры, во втором — префикс пути, к которому относится правило. - Длина правила ограничена 500 символами, регистр учитывается.
- Директива межсекционная: её можно указать в любом месте файла.
Часть параметров аналитики Яндекс может удалять автоматически, без записи в robots.txt. В справке перечислены, в частности, utm_source, utm_medium, utm_campaign и ysclid. Clean-param нужен для остальных параметров, которые не меняют содержимое страницы.
Google директиву не поддерживает: в его списке поддерживаемых полей только user-agent, allow, disallow и sitemap. Откуда берутся дубли страниц из-за параметров и как поисковые системы выбирают среди них основной адрес, — в статье о canonical.
Crawl-delay и Host: директивы, которые больше не работают
Crawl-delay задавал паузу между запросами робота. Google эту директиву не поддерживает. Яндекс перестал её учитывать с 22 февраля 2018 года; скорость обхода предлагается задавать настройкой «Скорость обхода сайта» в Вебмастере.
Host указывал Яндексу главное зеркало сайта. 20 марта 2018 года Яндекс сообщил, что отказывается от директивы: главное зеркало определяется постраничным 301-редиректом с неглавных зеркал. Строку Host можно удалить или оставить — по словам Яндекса, робот её просто игнорирует.
Таблица директив
| Директива | Что делает | Яндекс | |
|---|---|---|---|
User-agent | Начинает группу и называет робота | Поддерживается; применяется самая конкретная группа, группы для одного робота объединяются | Поддерживается; группа Yandex или конкретного робота отменяет * |
Disallow | Запрещает обход пути | Поддерживается | Поддерживается |
Allow | Разрешает обход пути | Поддерживается | Поддерживается |
Sitemap | Указывает адрес карты сайта | Поддерживается, полный URL, вне групп | Поддерживается |
Clean-param | Указывает параметры, не меняющие содержимое | Не поддерживается | Поддерживается |
Crawl-delay | Задавал паузу между запросами | Не поддерживается | Не учитывается с 22.02.2018 |
Host | Указывал главное зеркало | Нет в списке поддерживаемых полей | Не учитывается с 20.03.2018, заменён 301-редиректом |
Пример robots.txt с комментариями
Пример ниже иллюстрирует синтаксис. Это не шаблон «правильного robots.txt»: набор правил зависит от структуры конкретного сайта. Файлы стилей, скрипты и изображения в примере намеренно не закрыты.
# Правила для всех роботов
User-agent: *
# Служебный раздел
Disallow: /admin/
# Исключение: публичная справка внутри служебного раздела
Allow: /admin/help/
# Результаты внутреннего поиска
Disallow: /search/
# Корзина и оформление заказа
Disallow: /cart/
Disallow: /checkout/
# Адреса, где строка запроса начинается с параметра сортировки
Disallow: /*?sort=
# Параметры, не меняющие содержимое страниц каталога (учитывает только Яндекс)
Clean-param: sid&ref /catalog/
# Карта сайта: полный адрес
Sitemap: https://example.com/sitemap.xml
Что здесь происходит:
- одна группа
*действует для всех роботов, у которых нет своей группы; /admin/help/открыт, хотя/admin/закрыт: путьAllowдлиннее;Clean-paramвынесен в конец файла: для Яндекса это межсекционная директива, её можно указать в любом месте, а Google строку не учитывает;Sitemapуказан полным адресом.
Как проверить robots.txt
Отчёт robots.txt в Google Search Console
В Search Console есть «Отчет о файлах robots.txt». Он показывает, какие файлы robots.txt нашёл Google, когда сканировал их в последний раз, какие были предупреждения и ошибки. Статусы получения файла: «Получен», «Не получен – не найден (404)», «Не получен – любая другая причина».
В отчёте можно посмотреть версии файла за последние 30 дней. После исправления файла можно запросить повторное сканирование: меню «Ещё» рядом с файлом → «Запросить повторное сканирование».
Анализ robots.txt в Яндекс Вебмастере
Инструмент «Анализ robots.txt» находится в разделе «Инструменты». Он показывает синтаксические ошибки и противоречия в файле. В нём же можно указать список адресов и проверить, разрешены они или запрещены.
Правки можно проверить до публикации: измените код в поле инструмента и нажмите «Проверить». Проверить файл можно и без прав на сайт. Чтобы увидеть историю версий файла, сайт нужно добавить в Вебмастер и подтвердить права.
Ответ сервера на /robots.txt
Важно не только содержимое файла, но и код ответа сервера на запрос /robots.txt.
Google:
- 2xx — файл обрабатывается;
- 3xx — Google проходит не менее пяти переадресаций в цепочке;
- 4xx, кроме 429, — Google ведёт себя так, будто файла нет, то есть ограничений на обход нет;
- 5xx и сетевые ошибки — первые 12 часов Google не сканирует сайт, затем до 30 дней использует последнюю доступную версию файла. Если файл недоступен дольше, Google действует как без файла, когда сайт в целом доступен, и прекращает сканирование при общих проблемах с доступностью;
- кэш: содержимое файла обычно хранится не более суток.
Яндекс учитывает файл, если сервер отвечает кодом 200 OK или перенаправляет на другой robots.txt, который отдаётся с кодом 200 OK. Если файл не соответствует требованиям, сайт считается открытым для обхода.
Порядок проверки:
- Откройте
/robots.txtв браузере и убедитесь, что файл открывается и содержит ожидаемые правила. - Проверьте файл в Search Console и в Вебмастере.
- Прогоните через «Анализ robots.txt» важные адреса сайта: главную, разделы, ключевые страницы.
- Если файл в порядке, а страница всё равно не в поиске, ищите другие причины — о том, почему страница не попадает в индекс, есть отдельная статья.
Чек-лист после релиза
/robots.txtотдаёт код 200 и открывается в браузере.- В файле нет
Disallow: /, оставшегося от тестовой версии сайта. - Не закрыты стили, скрипты и изображения, без которых страница отображается иначе.
- Разделы, которые должны быть в поиске, разрешены — проверено списком адресов в Вебмастере.
- Строка
Sitemapуказывает на актуальную карту сайта полным адресом. - Страницы, которые должны уйти из поиска, не закрыты в robots.txt, иначе робот не увидит noindex.
Типичные ошибки в robots.txt
| Ошибка | Чем грозит | Как исправить |
|---|---|---|
Disallow: / остался после тестовой версии сайта | Запрет обхода всего сайта | Сравнивайте robots.txt до и после релиза; удалите правило |
Disallow: /# или слишком короткий путь | /# для Яндекса равно Disallow: /; правило-префикс закрывает все адреса, которые начинаются с этого пути | Проверяйте правило на списке адресов в «Анализе robots.txt» |
| Закрыты стили, скрипты, изображения, нужные для отрисовки | Google предупреждает: страницы могут быть проанализированы неправильно | Закрывайте только ресурсы, которые почти не влияют на оформление страниц |
| Закрыта страница, которую нужно убрать из поиска | Робот не увидит noindex; страница может остаться в поиске | Откройте страницу для обхода и используйте noindex |
| Файл не в корне, с другим именем, для другого поддомена или протокола | Правила не действуют для нужного хоста; для Яндекса файл не соответствует требованиям | Разместите robots.txt в корне каждого хоста |
| Файл больше лимита | Google игнорирует контент сверх 500 КиБ; для Яндекса файл больше 500 КБ не соответствует требованиям, и сайт считается открытым | Сократите файл: объедините правила через * |
/robots.txt отвечает 5xx, 4xx или редиректом не на robots.txt | Google при 5xx приостанавливает сканирование, при 4xx считает, что файла нет; Яндекс, если файл не отдаётся с кодом 200 OK напрямую или после редиректа на другой robots.txt, считает сайт открытым | Настройте отдачу файла с кодом 200 |
| Расчёт на Crawl-delay или Host | Директивы не работают | Скорость обхода — в настройках Вебмастера, главное зеркало — 301-редиректом |
Если ошибки затрагивают много разделов или появились после релиза, нужна проверка сайта целиком, а не одного файла. Это часть работы по техническому SEO — подробнее о том, как устроен технический аудит настроек обхода.
Частые вопросы
Почему страница, закрытая в robots.txt, всё равно в поиске?
Потому что robots.txt запрещает загрузку, а не индексацию. Google может проиндексировать такую страницу по внешним ссылкам и показать её без описания; Яндекс пишет, что такие страницы могут участвовать в поиске. Подробнее — в разделе «Сканирование и индексация».
Обязательно ли иметь robots.txt?
Нет. Если файла нет и сервер отвечает 4xx, Google считает, что ограничений нет. Яндекс без корректного файла считает сайт открытым. Файл нужен, когда часть адресов роботу загружать незачем.
Как быстро поисковики увидят изменения?
Google обычно хранит файл в кэше не более суток; после правки можно запросить повторное сканирование в отчёте Search Console. Срока учёта изменений Яндексом справка не называет; версии файла видны в «Анализе robots.txt». Обновление файла не означает, что изменится индекс.
Нужен ли отдельный блок User-agent: Yandex?
Не обязательно: без него робот Яндекса следует группе *. Если такой блок есть, Яндекс не учитывает *, поэтому общие правила нужно повторить в нём.
Можно ли через robots.txt закрыть сайт от ИИ-сервисов?
Можно задать правила для имён конкретных роботов. Но правила поддерживаются не всеми системами и не являются механизмом авторизации, поэтому полностью полагаться на них нельзя. Подробнее об именах роботов — в статье о GEO по ссылке выше.
Есть ли в robots.txt регулярные выражения?
Только два спецсимвола: * и $. Подробнее — в разделе «Символы * и $».
Источники
Документация, на которую опирается статья (проверено 6 октября 2026 г.):
- Google Search Central: Общие сведения о файлах robots.txt; Как Google интерпретирует спецификацию robots.txt; Как создать и отправить файл robots.txt; Блокировка индексирования при помощи директивы noindex.
- Справка Search Console: Отчет о файлах robots.txt.
- RFC 9309: Robots Exclusion Protocol.
- Яндекс Вебмастер, справка: Использование файла robots.txt; Директивы Allow и Disallow; Директива Clean-param; Директива Crawl-delay; Анализ robots.txt; Директива User-agent.
- Блог Яндекса для вебмастеров: 301-й редирект полностью заменил директиву Host.
Ошибки в robots.txt могут появиться после релиза или переезда. Проверим правила обхода, ответы сервера и карту сайта и предложим, что исправить. → Обсудить техническое SEO