robots.txt управляет обходом: он говорит роботу, какие адреса не скачивать. noindex управляет индексом: он говорит поисковой системе, что страницу не нужно показывать в выдаче. Из-за того что оба механизма «что-то закрывают», их постоянно путают, и самая дорогая ошибка выглядит так: страницу закрывают в robots.txt, чтобы убрать её из поиска, а она остаётся в выдаче, только теперь без описания. Разберём, как каждый механизм работает в Яндексе и Google, что делать с адресами с параметрами, когда нужен X-Robots-Tag и как убедиться, что правила делают то, что задумано.

Обход и индекс: два разных решения

Чтобы страница оказалась в поиске, должны произойти три вещи. Робот узнаёт об адресе (из карты сайта, по ссылке, из уведомления), скачивает страницу, а потом поисковая система решает, добавлять ли её в индекс. Подробно этот путь и способы его проверить описаны в материале о том, как проверить индексацию сайта.

robots.txt вмешивается во второй шаг. Он запрещает скачивать адрес, но не запрещает о нём знать. Google в документации прямо называет robots.txt механизмом, который не предназначен для того, чтобы не пускать страницу в Google: его задача в том, чтобы ограничить число запросов робота к сайту (developers.google.com, проверено 15 октября 2026).

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

Если задача в том, чтобы робот не тратил время на бесполезные адреса, нужен robots.txt. Если задача в том, чтобы страницы не было в выдаче, нужен noindex, код ответа 404 или 410 или закрытие паролем. Бывает, что нужно и то и другое; тогда действовать приходится по очереди, сначала с индексом, потом с обходом.

Как устроен robots.txt

Файл лежит в корне хоста (https://example.ru/robots.txt) и состоит из групп. Каждая группа начинается со строки User-agent, где указан робот, а дальше идут правила Disallow и Allow с префиксами путей. Отдельной строкой указывают Sitemap с полным адресом карты сайта.

Несколько деталей синтаксиса, на которых чаще всего ошибаются:

  • Путь чувствителен к регистру. Disallow: /Catalog/ не закрывает /catalog/. Это прямо оговорено в спецификации Google.
  • Звёздочка означает любую последовательность символов, в том числе пустую. В конце каждого правила звёздочка подразумевается, поэтому Disallow: /search закрывает и /search, и /search-results/. Знак $ отменяет это: Disallow: /example$ закрывает только сам /example.
  • Порядок строк в файле не важен. Яндекс сортирует правила группы по длине префикса и применяет самое длинное из подходящих; при равной длине побеждает Allow (справка Яндекса, проверено 15 октября 2026). Google тоже выбирает самое конкретное правило, а при конфликте берёт наименее строгое.
  • Пустой Disallow: равносилен Allow: /, то есть разрешает всё.

У файла есть предел размера. И Google, и Яндекс называют 500 КБ; Google уточняет, что содержимое после этой границы игнорируется. Google обычно держит копию robots.txt в кеше до 24 часов, так что правка вступает в силу не сразу.

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

Почему Disallow не убирает страницу из выдачи

Об этом прямо пишут обе поисковые системы. Google: страница, закрытая в robots.txt, может появиться в результатах поиска, если на неё ссылаются с других страниц, но у такого результата не будет описания. Яндекс в справке по robots.txt: ограниченные в robots.txt страницы могут участвовать в поиске Яндекса, а для удаления из поиска нужна директива noindex в HTML-коде или в HTTP-заголовке (обе справки проверены 15 октября 2026).

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

Бывает и обратная ситуация. На странице уже стоит noindex, и кто-то для надёжности дописывает её в robots.txt. Теперь робот не может её скачать, директиву не видит, и страница, которая должна была выпасть из индекса, остаётся в нём. Google об этом пишет отдельно: если обход запрещён в robots.txt, правила индексации на странице не будут найдены и будут проигнорированы. Справка Яндекса по метатегам говорит то же: если страница запрещена в robots.txt, директива метатега или заголовка не действует.

Поэтому Disallow и noindex на одной странице почти всегда ошибка: срабатывает запрет обхода, а noindex остаётся невидимым.

noindex и X-Robots-Tag

Директиву noindex можно передать двумя способами. Первый: метатег в <head> страницы, <meta name="robots" content="noindex">. Второй: HTTP-заголовок ответа X-Robots-Tag: noindex. Для HTML-страниц они равноценны, а для файлов без HTML, то есть PDF, изображений, документов, заголовок остаётся единственным вариантом. Google в документации по метатегам приводит пример для Apache, который закрывает все PDF-файлы правилом Header set X-Robots-Tag "noindex, nofollow" внутри блока для файлов с расширением .pdf. В nginx то же делается директивой add_header в нужном location.

Заголовок удобен и для HTML, когда нет доступа к шаблонам: закрыть целый раздел одной строкой в конфигурации сервера проще, чем править сотню страниц. Минус в том, что заголовок не виден в исходном коде страницы, и через год никто не помнит, почему раздел пропал из поиска. Такие правила стоит записывать рядом с конфигурацией.

Кроме noindex, обе системы понимают nofollow (не переходить по ссылкам страницы) и none (то же, что noindex и nofollow вместе). У Google список шире: nosnippet, max-snippet, noimageindex, unavailable_after с датой, после которой страницу нужно убрать из выдачи. В заголовке X-Robots-Tag Яндекс, по своей справке, поддерживает только запрещающие директивы: noindex, nofollow, none и noarchive.

Конфликты Яндекс и Google разрешают по-разному. Если на странице оказались противоречивые директивы, например общий тег с all и ещё один с noindex, Яндекс выберет разрешающую: по его справке, разрешающие директивы имеют приоритет. Google поступает наоборот: в случае конфликта применяется более строгое правило. Одна и та же страница с двумя тегами окажется в индексе Яндекса и не окажется в индексе Google. Проще всего не допускать двух robots-тегов на одной странице, а если CMS и SEO-плагин выводят каждый свой, оставить один.

noindex срабатывает не сразу. Google напоминает, что страница выпадет из выдачи только после повторного обхода, а до редко посещаемой страницы робот может добираться месяцами. Ускорить можно запросом индексирования в Search Console и переобходом в Вебмастере.

Clean-param: как Яндекс склеивает адреса с параметрами

У многих сайтов одна и та же страница доступна по десяткам адресов: с метками utm_*, с идентификатором сессии, с параметром партнёрской программы. Закрывать их через Disallow неудобно, а noindex не поможет, потому что страница одна и та же и её нужно оставить в индексе. Для этого у Яндекса есть собственная директива Clean-param.

Синтаксис из справки Яндекса (проверено 15 октября 2026): Clean-param: p0[&p1&p2&..&pn] [path]. В первом поле через амперсанд перечисляются параметры, которые робот должен игнорировать, во втором, необязательном, указывается префикс пути, для которого действует правило. Пример из справки: правило Clean-param: ref /some_dir/get_book.pl приводит адреса вида get_book.pl?ref=site_1&book_id=123 к одному get_book.pl?book_id=123.

Для типичного сайта с рекламными метками правило выглядит так: Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term. Справка оговаривает три ограничения: длина правила не больше 500 символов, регистр учитывается, а сама директива межсекционная, то есть её можно поставить в любом месте файла.

Clean-param понимает только Яндекс. Google эту строку пропускает, поэтому для него те же дубли склеиваются атрибутом rel="canonical" на странице, который указывает на адрес без параметров. На практике нужны оба механизма: Clean-param экономит обход в Яндексе, canonical собирает сигналы в Google.

Заодно о директивах, которые до сих пор встречаются в старых файлах. Crawl-delay Яндекс не учитывает с 22 февраля 2018 года; вместо него в Вебмастере есть настройка «Скорость обхода сайта». Google crawl-delay тоже не поддерживает. Host в текущей справке Яндекса по robots.txt не упоминается вовсе. Обе строки можно удалить без последствий.

Что чем закрывать: шпаргалка по типам страниц

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

Тип страницЧто использоватьПочему
Внутренний поиск по сайтуDisallowБесконечное число адресов без собственной ценности. Яндекс приводит его как пример для Disallow в справке о скрытии ненужных страниц.
Сортировки, режимы отображенияDisallow или canonicalСодержимое то же, что у основной страницы; робот только тратит запросы.
Фильтры каталогаПо ситуацииФильтр под реальный спрос («диваны угловые серые») лучше сделать отдельной посадочной. Остальные комбинации закрыть от обхода.
Метки utm, идентификаторы сессийClean-param плюс canonicalСтраница нужна в индексе, дубли нет.
Личный кабинет, корзина, оформление заказаDisallow; для страниц с личными данными код 403Так советует справка Яндекса для страниц с авторизацией.
Тонкие страницы, которые нужны людям (теги, архивы)noindex, обход разрешёнСсылки с них продолжают работать, в выдачу они не попадают.
PDF и другие файлыX-Robots-Tag: noindexВ файле негде разместить метатег.
Тестовая копия сайтаПарольrobots.txt и noindex соблюдают только добросовестные роботы, и копия легко уезжает в продакшн вместе с запретом.
Удалённые страницы404 или 410Страницы нет, и сервер должен об этом сообщать.

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

Типичные ошибки

Почти все проблемы с robots.txt и noindex, которые мы встречаем на аудитах, сводятся к нескольким повторяющимся сценариям.

  • Disallow вместо удаления. Страницу хотят убрать из выдачи и закрывают в robots.txt. Она остаётся в поиске без описания, а если раньше на ней был noindex, робот его больше не видит.
  • Запрет, приехавший с тестового сервера. На тестовой копии стоит Disallow: / или noindex в шаблоне, при выкладке файл уезжает на рабочий сайт. Через неделю трафик начинает падать. Проверка robots.txt и заголовков главной страницы должна быть в чеклисте каждого релиза.
  • Закрытые CSS и JavaScript. Старое правило Disallow: /assets/ или /wp-includes/ мешает поисковой системе увидеть страницу так, как её видит человек. Об этом подробнее в чеклисте технического аудита.
  • Регистр и короткий префикс. Disallow: /Admin не закрывает /admin, а Disallow: /blog закрывает заодно /blog-old/ и /blogger/.
  • noindex на канонической странице. Дубли ссылаются через canonical на основную страницу, а на основной по ошибке стоит noindex. Поисковая система получает противоречивые сигналы, и из выдачи может выпасть вся группа.
  • Два тега robots от разных плагинов. В Яндексе победит разрешающий, в Google запрещающий, и поведение в двух системах разойдётся.
  • Страницы под noindex или Disallow в карте сайта. В карте должны быть только адреса, которые вы хотите видеть в индексе и которые отвечают кодом 200.

Как проверить: Вебмастер и Search Console

Правила удобнее всего проверять до выкладки, и у обеих систем для этого есть инструменты.

В Яндекс Вебмастере это «Анализ robots.txt», раздел Инструменты. По справке Яндекса (проверено 15 октября 2026), инструмент загружает текущий файл сайта, показывает синтаксические ошибки и позволяет вставить свою версию правил и проверить её до публикации. В блоке «Доступ к страницам» можно перечислить адреса и увидеть, какие из них открыты для индексирования, а какие нет. Вебмастер хранит до 100 сохранённых версий файла, так что можно выяснить, когда появилось неудачное правило.

Для отдельной страницы в Вебмастере есть «Проверить статус URL»: он покажет, знает ли Яндекс адрес, когда обходил его и в поиске ли страница. Если в причине исключения указан запрет в robots.txt или noindex, вы знаете, какое из правил сработало.

В Google Search Console есть отчёт о файле robots.txt, он находится в настройках. По справке Google, отчёт показывает, какие файлы robots.txt робот Google нашёл для 20 основных хостов сайта, когда проверял их в последний раз, их размер и найденные проблемы. Оттуда же можно запросить повторное сканирование файла, но Google советует делать это только в срочных случаях.

Проверить, закрыт ли конкретный адрес, в Search Console удобнее инструментом проверки URL. Он показывает, разрешён ли обход, разрешено ли индексирование и, если нет, что именно мешает: robots.txt или noindex в метатеге или заголовке. Тест в реальном времени скачивает страницу сейчас, поэтому видит и свежие правки.

Заголовок X-Robots-Tag проще всего проверить из командной строки: curl -sI https://example.ru/file.pdf выводит заголовки ответа без тела страницы. Если в ответе нет нужной строки, правило в конфигурации сервера не сработало, что бы ни показывал файл настроек.

Если страницу нужно убрать из поиска

Порядок действий, который работает в обеих системах:

  1. Убедиться, что адрес не закрыт в robots.txt. Если закрыт, временно открыть.
  2. Поставить noindex (метатег или заголовок) либо отдавать 404 или 410, если страницы больше не будет. Для конфиденциальных данных правильный ответ один: убрать их с сайта или закрыть паролем.
  3. Попросить робота зайти: переобход в Вебмастере, запрос индексирования в Search Console.
  4. Для срочных случаев в Google есть инструмент удаления. Он скрывает адрес из выдачи примерно на шесть месяцев (developers.google.com, проверено 15 октября 2026), но не удаляет его из индекса, поэтому за это время нужно успеть поставить noindex или убрать страницу. В Вебмастере аналогичный раздел называется «Удаление страниц из поиска».
  5. Дождаться, пока страница выпадет из выдачи в обеих системах, и только после этого, если нужно экономить обход, закрыть раздел в robots.txt.

Часто делают наоборот: сначала закрывают адрес в robots.txt, потом ставят noindex, и страница неделями висит в выдаче без описания. Если выпадение страниц отражается в отчёте для клиента, полезно объяснить там и причину, иначе снижение числа страниц в индексе выглядит как авария. Чем ещё различается работа с двумя системами, собрано в материале о Яндексе и Google.

Частые вопросы

Можно ли закрыть страницу от индексации через robots.txt?

Нет. robots.txt запрещает обход, а не индексацию. И Google, и Яндекс пишут, что закрытая в robots.txt страница может оказаться в поиске, если на неё есть ссылки. Для индекса используйте noindex или код 404/410.

Нужно ли ставить noindex и Disallow одновременно?

Обычно нет. Пока страница закрыта в robots.txt, робот не видит noindex. Сначала noindex и дождаться выпадения из индекса, потом, если нужно, Disallow.

Работает ли директива noindex внутри robots.txt?

Нет. Ни Google, ни Яндекс не перечисляют её среди поддерживаемых правил robots.txt. noindex задаётся только метатегом на странице или заголовком X-Robots-Tag.

Понимает ли Google директиву Clean-param?

Нет, это директива Яндекса. Для Google дубли с параметрами склеиваются атрибутом rel="canonical", указывающим на адрес без параметров.

Как быстро страница с noindex пропадёт из выдачи?

После следующего обхода. Для часто посещаемых страниц это дни, для редких может занять месяцы. Переобход в Вебмастере и запрос индексирования в Search Console ускоряют процесс.

Что будет, если robots.txt отдаёт ошибку сервера?

По спецификации Google, при ответе 5xx обход сайта останавливается на первые 12 часов, затем используется последняя сохранённая копия файла. Яндекс при недоступном файле считает сайт открытым для индексирования.