Закрыть страницу от поискового робота и убрать её из поиска — разные задачи. Поэтому Disallow в robots.txt и noindex нельзя использовать как взаимозаменяемые команды.
Более того, иногда попытка поставить сразу два запрета даёт обратный эффект: robots.txt не позволяет роботу открыть страницу, а значит, поисковик не видит находящийся на ней noindex. Google и Яндекс прямо предупреждают об этом в документации.
Разберём, чем отличаются robots.txt, meta robots и X-Robots-Tag и какой механизм нужен в конкретной ситуации.


Упрощённо путь страницы в поиске выглядит так:
поисковик узнаёт URL → робот получает страницу → анализирует содержимое → поисковая система решает, включать ли документ в индекс и показывать ли его в выдаче.
Обход, или crawling, — получение страницы поисковым роботом.
Индексация — обработка полученного документа поисковой системой.
Отсюда главное правило:
robots.txt в первую очередь управляет обходом URL, а noindex — индексированием полученного документа.
Если поисковику известен адрес страницы, запрет её обхода сам по себе не гарантирует исчезновение URL из результатов поиска. Яндекс прямо пишет, что страницы, закрытые через robots.txt, всё равно могут участвовать в поиске. Google также предупреждает, что заблокированный URL может появиться в выдаче, если поисковик узнал о нём из других источников.
robots.txt — текстовый файл в корне сайта с правилами для поисковых роботов.
Простейший пример:
User-agent: *
Disallow: /admin/User-agent определяет, к каким роботам относится правило.
Disallow указывает URL или раздел, который не нужно обходить.
При необходимости Allow разрешает отдельный путь внутри более широкого запрета.
Например, robots.txt имеет смысл использовать для служебных разделов, внутреннего поиска или технических URL, которые поисковому роботу незачем постоянно запрашивать.
Представим страницу: /private/report/
На неё ведёт ссылка с другого сайта, поэтому поисковик знает URL. Но robots.txt содержит:
User-agent: *
Disallow: /private/Робот не получает страницу. Однако сам адрес ему уже известен.
Поэтому Disallow — плохой выбор, если задача сформулирована как «убрать страницу из результатов поиска». Для этого нужен механизм управления индексированием.
И ещё одно важное ограничение: robots.txt не защищает закрытые данные. Файл публичный, а запрет поисковому роботу не мешает человеку открыть URL напрямую. Если документ действительно приватный, нужна авторизация или ограничение доступа на сервере.

Если поисковому роботу можно получать страницу, но в поиске её быть не должно, используют noindex.
Для обычной HTML-страницы правило можно передать через meta robots:
<meta name="robots" content="noindex">
Поисковик получает HTML, видит директиву и понимает, что страницу не нужно показывать в результатах поиска. Google поддерживает noindex через robots meta tag, Яндекс — также через meta robots и HTTP-заголовок.
Здесь полезно запомнить разницу:
Disallow ограничивает получение URL роботом.
noindex сообщает поисковику, что полученный документ не нужно включать в поиск.
Для большинства задач достаточно четырёх значений:
nofollow не заменяет noindex: первое относится к ссылкам, второе — к самой странице.
Явно прописывать: <meta name="robots" content="index, follow"> обычно не требуется. Разрешающее поведение используется по умолчанию, если других ограничений нет. Яндекс это отдельно отмечает в документации.
У meta robots есть очевидное ограничение: тег находится внутри HTML.
Но что делать с PDF, изображением или другим файлом, где HTML <head> отсутствует?
Для этого существует X-Robots-Tag. Директива передаётся в HTTP-заголовке ответа: X-Robots-Tag: noindex
Google рекомендует этот способ для управления индексированием не-HTML-ресурсов — например PDF, изображений и видео. Те же правила можно применять через X-Robots-Tag и к обычным HTML-страницам, если настройкой удобнее управлять на сервере.
Например, сервер может отдавать PDF так:
HTTP/1.1 200 OK
Content-Type: application/pdf
X-Robots-Tag: noindexПоисковый робот получает файл вместе с HTTP-заголовком и видит запрет индексирования.
X-Robots-Tag особенно удобен, когда правило нужно применить сразу к группе файлов или задавать его на уровне веб-сервера либо приложения.
Главное — сначала определить задачу.
| Задача | Что использовать | Почему |
|---|---|---|
| Ограничить обход раздела | robots.txt | Управляет доступом робота к URL |
| Убрать HTML-страницу из поиска | meta robots: noindex | Поисковик получает правило вместе с HTML |
| Убрать PDF из поиска | X-Robots-Tag: noindex | В PDF нельзя добавить HTML meta robots |
| Задать noindex на уровне сервера | X-Robots-Tag | Директива передаётся в HTTP-ответе |
| Ограничить обработку ссылок страницы | nofollow | Это правило для ссылок, а не замена noindex |
Если задача звучит как «не нужно обходить эти URL» — смотрите в сторону robots.txt.
Если «страницу можно открыть, но в поиске её быть не должно» — нужен noindex.
Если речь о PDF или другом не-HTML-файле либо правилом удобнее управлять на сервере — X-Robots-Tag.
Одна из самых распространённых ошибок выглядит вполне разумно.
В robots.txt:
User-agent: *
Disallow: /private/А на странице: <meta name="robots" content="noindex">
Кажется, что два запрета надёжнее одного. На практике первый может просто спрятать второй.
Происходит следующее:
Google прямо указывает: чтобы noindex сработал, страница или ресурс должны быть доступны роботу. Если URL закрыт в robots.txt, директива может остаться непрочитанной. Яндекс даёт ту же рекомендацию: страницу с noindex, которую требуется убрать из поиска, не следует одновременно закрывать от робота в robots.txt.
Получается немного парадоксально: чтобы поисковик выполнил команду «не индексировать», ему сначала нужно разрешить получить эту команду.
Начните с самого простого — фактического ответа сайта.
Файл обычно находится по адресу: https://example.com/robots.txt
Нужно проверить, какое правило действует для нужного User-agent и попадает ли конкретный URL под Disallow.
В HTML страницы найдите: <meta name="robots" content="...">
Особенно важно проверять это после запуска сайта, миграции или изменения SEO-настроек.
Его нужно искать не в HTML, а в HTTP-заголовках ответа: X-Robots-Tag: noindex
Именно поэтому обычного просмотра исходного кода страницы недостаточно.
Техническая проверка показывает, какие директивы сайт отдаёт сейчас. Но она не доказывает, что конкретный URL уже появился или исчез из индекса.
Для этого нужно смотреть данные самого поисковика — например проверку URL в Google Search Console или статус страницы в Яндекс Вебмастере.
Часть технических признаков можно проверить автоматически с помощью SEO-анализа страницы: robots meta, статус ответа, canonical и другие параметры. Но результат такого анализа нужно отличать от фактического состояния URL в индексе.