Самая частая путаница в техническом SEO: «я закрыл страницу в robots.txt, а она всё равно в индексе». Это не баг поисковика — это непонимание того, что robots.txt вообще не управляет индексацией. Он управляет только обходом. Разберём все три механизма по отдельности и сведём в понятную систему, какой когда использовать.
Три механизма — три разные задачи
Путаница возникает потому, что все три инструмента кажутся «про одно и то же» — управление видимостью страницы в поиске. На деле они решают разные задачи на разных уровнях:
| Механизм | Уровень | Что контролирует | Где применяется |
|---|---|---|---|
| robots.txt | Сайт целиком | Разрешение на обход конкретных путей роботом | Файл в корне домена |
| meta robots | Отдельная HTML-страница | Разрешение на индексацию и переход по ссылкам этой страницы | Тег <meta> в <head> |
| X-Robots-Tag | Отдельный HTTP-ответ | То же самое, что meta robots, но для любого типа файла | HTTP-заголовок ответа сервера |
robots.txt: про обход, не про индексацию
robots.txt — это файл в корне сайта, который говорит роботу, какие разделы можно обходить, а какие нет. Ключевой момент, который многие упускают: запрет в robots.txt не гарантирует, что страница не попадёт в индекс.
Если на закрытую в robots.txt страницу ведут внешние ссылки, поисковик может проиндексировать сам URL (без содержимого, которое он не смог обойти) — в выдаче это будет выглядеть как сниппет без описания, с пометкой вроде «no information is available for this page». Робот не зашёл на страницу, чтобы прочитать noindex, потому что ему запретили туда заходить.
User-agent: *
Disallow: /admin/
Disallow: /search
Allow: /robots.txt — правильный инструмент, когда:
- нужно сэкономить краулинговый бюджет на заведомо неважных разделах (внутренний поиск, фильтры, корзина);
- нужно полностью запретить обход служебных директорий;
- НЕ нужно гарантированно убрать страницу из индекса — для этого есть другие инструменты.
Проверить текущую конфигурацию и найти потенциальные ошибки можно через анализатор robots.txt.
meta robots: про индексацию конкретной HTML-страницы
Тег <meta name="robots"> размещается в <head> HTML-документа и явно указывает, что делать с этой конкретной страницей:
<meta name="robots" content="noindex, follow">Самые частые значения:
index, follow— индексировать страницу и переходить по ссылкам на ней (поведение по умолчанию, тег можно не ставить вообще);noindex, follow— не индексировать страницу, но переходить по ссылкам на ней (передавать вес дальше);noindex, nofollow— не индексировать и не переходить по ссылкам;index, nofollow— индексировать страницу, но не передавать вес по ссылкам с неё (редкий случай).
В отличие от robots.txt, meta robots работает только если робот смог обойти страницу — то есть путь к ней не должен быть заблокирован в robots.txt. Это и есть источник классической ошибки: страница закрыта одновременно и в robots.txt, и через noindex в meta — а нужного эффекта нет, потому что робот не доходит до тега, который должен был сообщить ему об исключении.
Именно так мы недавно закрывали от индексации низкокачественные автогенерируемые страницы на собственном проекте — подробности в статье про scaled content abuse. Страницы оставались доступны по прямой ссылке (важно для пользователей, у которых уже могла быть закладка), но получали noindex, follow, чтобы не оставаться в выдаче.
X-Robots-Tag: то же самое, но для всего, что не HTML
Тег meta robots работает только внутри HTML — у PDF, изображений, XML-фидов или API-ответов нет <head>, куда его можно вставить. Для таких случаев используется HTTP-заголовок X-Robots-Tag, который задаёт ту же логику на уровне ответа сервера:
HTTP/1.1 200 OK
Content-Type: application/pdf
X-Robots-Tag: noindexЗаголовок настраивается на уровне сервера или приложения, например в Nginx:
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, noarchive";
}X-Robots-Tag — единственный вариант, когда нужно закрыть от индексации:
- PDF-файлы, документы, прайс-листы;
- изображения и медиафайлы;
- сгенерированные не-HTML ответы (например, JSON-эндпоинты, случайно попавшие в индекс).
Проверить, какие заголовки реально отдаёт сервер для конкретного URL, можно через анализатор HTTP-заголовков — иногда заголовок прописан в коде, но не доходит до клиента из-за прокси или CDN.
Как эти три механизма работают вместе
Правильная ментальная модель — не «выбрать один из трёх», а понимать, на каком этапе каждый вступает в игру:
- robots.txt решает, может ли робот вообще зайти на URL.
- Если может — он скачивает контент и видит meta robots (для HTML) или X-Robots-Tag (для всего остального), которые решают, индексировать ли его и передавать ли вес по ссылкам.
- Если URL заблокирован в robots.txt, шаги 2 и 3 не происходят вообще — робот не видит ни meta-тег, ни заголовок.
Отсюда практическое правило: если страница точно не должна попадать в индекс — используйте noindex (meta robots или X-Robots-Tag), а не блокировку в robots.txt. robots.txt оставьте для случаев, когда важно сэкономить краулинговый бюджет на разделах, которые не несут вреда в индексе, а просто не нужны роботу для обхода (например, страницы внутреннего поиска с тысячами вариаций запроса).
Отдельно стоит не путать noindex с canonical — это разные инструменты для разных ситуаций: noindex говорит «эту страницу вообще не нужно индексировать», а canonical говорит «вот несколько похожих страниц, считай главной вот эту». Если задача — объединить дубли, а не убрать страницу из выдачи полностью, правильный инструмент — canonical, а не noindex.
Типичные ошибки
Блокировка в robots.txt вместо noindex. Страница остаётся в индексе без контента, потому что робот не может её обойти и прочитать запрет.
noindex на страницах, заблокированных в robots.txt. Тег просто никогда не будет прочитан — это бессмысленная комбинация.
X-Robots-Tag, потерянный на CDN. Заголовок настроен на бэкенде, но CDN или прокси его перезаписывает или обрезает — страница продолжает индексироваться, хотя в коде всё выглядит правильно.
noindex, оставленный после тестового периода. Частая история: страницу временно закрыли при разработке, забыли снять тег после запуска — и она просто никогда не появляется в поиске, хотя должна была.
Чек-лист
- Убедиться, что страницы с
noindexне заблокированы одновременно в robots.txt - Проверить, что для PDF и других не-HTML файлов используется X-Robots-Tag, если нужно их исключить
- Сверить canonical и noindex — не использовать их одновременно на одной странице с противоречащими сигналами
- Проверить, не теряется ли X-Robots-Tag на уровне CDN/прокси
- Найти страницы, которые случайно остались с
noindexпосле разработки или тестирования - Использовать robots.txt только для экономии краулингового бюджета, не как способ убрать страницу из индекса
Заключение
Все три механизма решают разные задачи на разных уровнях, и большинство проблем с индексацией возникает именно из попытки использовать не тот инструмент для конкретной ситуации. Запомнить просто: robots.txt — про обход, meta robots и X-Robots-Tag — про индексацию, а разница между ними двумя — просто в том, HTML это или нет. Проверить, как эти механизмы настроены на вашем сайте прямо сейчас, можно через анализатор robots.txt и проверку HTTP-заголовков — обычно несостыковки находятся за несколько минут.