Noindex, nofollow и meta robots: что и как закрывать от индексации

18 минут

noindex — правило в метатеге robots или в HTTP-заголовке X-Robots-Tag, которое запрещает показывать страницу в результатах поиска. nofollow бывает двух видов: в метатеге оно относится ко всем ссылкам страницы, а в атрибуте rel — к одной ссылке. По ссылке с таким атрибутом роботы Google обычно не переходят, но целевую страницу могут найти другими путями. robots.txt управляет обходом, а не индексом: запрет в нём не убирает страницу из поиска.

Ниже — чем отличаются эти механизмы, как их записать, что выбрать для страницы, раздела, сайта или одной ссылки и как проверить результат.

Noindex, nofollow и meta robots: что есть что

Что такое noindex

Индексация — это обработка загруженной страницы и сохранение сведений о ней в базе поисковой системы. Только проиндексированная страница может появиться в поиске.

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

Фраза «страница закрыта от индексации» означает именно это: в поиске её нет. Но робот её загружает — иначе он не прочитал бы правило. Это важно для всего, о чём пойдёт речь ниже.

Что такое nofollow: правило страницы и атрибут ссылки

Слово nofollow («не следовать») используется в двух разных местах.

  • nofollow в метатеге robots относится ко всем ссылкам страницы. Google описывает его как «не выполнять переход по ссылкам на странице», Яндекс — как «не переходить по ссылкам на странице».
  • nofollow в атрибуте rel ставят у одной ссылки. Google относит его к способам сообщить, что вы не хотите связывать свой сайт с этой ссылкой. Яндекс перечисляет rel="nofollow" среди способов скрыть ссылку от индексирования.

Ни одно из двух значений не убирает из поиска саму страницу, на которой стоит ссылка.

Meta robots и X-Robots-Tag: где задают правила

Метатег robots — строка в разделе <head> HTML-кода страницы с правилами для поисковых роботов.

X-Robots-Tag — HTTP-заголовок, который сервер отправляет вместе со страницей или файлом. Через него можно задать те же правила, что и в метатеге. Яндекс этот заголовок тоже поддерживает.

Четыре механизма и robots.txt: сравнение

МеханизмГде указываютНа что действуетGoogleЯндекс
Метатег robotsВ <head> HTML-страницыВся страницаПоддерживается, набор правил — в таблице нижеПоддерживается
X-Robots-TagHTTP-заголовок ответа сервераСтраница или файл: PDF, изображение, видеоТе же правила, что в метатегеПоддерживается
Атрибут rel у ссылкиВ теге ссылки <a>Одна ссылкаОбычно робот не переходит по ссылке, но страницу может найти другими путямиСреди способов скрыть ссылку от индексирования
Элемент <noindex>Вокруг фрагмента HTML-кодаЧасть текста страницыВ документации Google не описанПоддерживается
Disallow в robots.txtФайл в корне сайтаОбход адресов, а не индексПравила индексирования на закрытой странице игнорируютсяЗакрытые страницы могут участвовать в поиске

Подробнее о последней строке — в разделе «Почему запрет обхода не убирает страницу из поиска».

Метатег robots и X-Robots-Tag: синтаксис и директивы

Как записать метатег <meta name="robots">

Метатег размещают в разделе <head> страницы. Google при этом учитывает метатег robots и в разделе <body>. В атрибуте name указывают, для каких роботов правило, в content — само правило. Несколько правил перечисляют через запятую. Google допускает и другой вариант — несколько отдельных метатегов. Атрибуты name и content Google читает без учёта регистра.

<!-- Не индексировать страницу и не переходить по ссылкам на ней -->
<meta name="robots" content="noindex, nofollow">

Значение robots в атрибуте name адресует правило всем роботам. Чтобы задать правило только для одной системы, вместо robots указывают имя её робота:

<!-- Только для Google -->
<meta name="googlebot" content="noindex">

<!-- Только для роботов Яндекса -->
<meta name="yandex" content="noindex">

Вариант с googlebot описан в справке Google, вариант с yandex — в справке Яндекса. Google предупреждает, что другие поисковые системы могут по-своему интерпретировать noindex.

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

X-Robots-Tag: правила в HTTP-заголовке

Заголовок нужен там, где метатег поставить некуда: в PDF, видео, изображениях и других файлах не в формате HTML. Он удобен и тогда, когда правило проще задать на сервере для целой группы адресов.

X-Robots-Tag: noindex

Google поддерживает в заголовке те же правила, что и в метатеге. Яндекс для заголовка перечисляет noindex, nofollow, none и noarchive, несколько значений — через запятую: X-Robots-Tag: noindex, nofollow. Google в справке приводит пример для всех PDF-файлов сайта — в конфигурации Apache и NGINX:

# Apache: заголовок для всех PDF-файлов
<Files ~ "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

# NGINX: то же самое
location ~* \.pdf$ {
  add_header X-Robots-Tag "noindex, nofollow";
}

Где именно хранится конфигурация, зависит от сервера и хостинга. Правило в заголовке не видно в HTML-коде страницы, поэтому его легко забыть — проверка описана ниже.

Какие директивы поддерживают Google и Яндекс

В таблице — директивы из справок обеих систем на дату проверки. «Нет в справке» означает, что система не описывает директиву, а не что она «точно не работает».

ДирективаЧто делаетGoogleЯндекс
noindexНе показывать страницу в результатах поискаЕстьЕсть
nofollowНе переходить по ссылкам на страницеЕстьЕсть
noneТо же, что noindex, nofollowЕстьЕсть
allНет ограниченийЕсть; это значение по умолчаниюЕсть; соответствует index и follow
index, follow, archiveРазрешающие директивыНет в справкеОтменяют запрещающие директивы
noarchiveНе показывать ссылку на сохранённую копиюБольше не используется: ссылки на сохранённую копию в Google нетЕсть
nosnippetНе показывать текстовый фрагмент или видео в результатахЕстьНет в справке
max-snippet, max-image-preview, max-video-previewОграничивают длину фрагмента, размер изображения и длительность видео в результатахЕстьНет в справке
notranslateНе предлагать перевод страницы в результатахЕстьНет в справке
noimageindexНе индексировать изображения на страницеЕстьНет в справке
unavailable_afterНе показывать страницу после указанных даты и времениЕстьНет в справке
indexifembeddedРазрешить индексировать контент страницы, когда он встроен в другуюЕстьНет в справке

Директивы показа вроде nosnippet управляют фрагментом в результатах поиска. Как такие ограничения связаны с ответами ИИ-сервисов — в материале о том, как директивы показа влияют на ИИ-ответы.

Что если директивы противоречат друг другу

Здесь Google и Яндекс поступают по-разному.

Google применяет наиболее строгое из противоречащих правил. Пример из справки: если на страницу действуют max-snippet:50 и nosnippet, работает nosnippet.

Яндекс отдаёт приоритет разрешающим директивам. Пример из справки Яндекса:

<meta name="robots" content="all">
<meta name="robots" content="noindex, follow">
<!-- Яндекс выберет all: текст и ссылки будут проиндексированы -->

Практический вывод: если на странице оказались два метатега, например от темы и от SEO-плагина, или метатег и заголовок с разными правилами, итог может отличаться в разных системах. Допустим, в одном метатеге noindex, а в другом all. По правилам справок такая страница будет закрыта в Google и открыта в Яндексе. Поэтому смотрите итоговый ответ страницы, а не одну настройку.

«noindex, follow»: что значит

Сочетание означает: страницу не индексировать, а запрета на переход по ссылкам нет.

  • Google: follow в списке правил справки нет, по умолчанию ограничений нет. Без nofollow роботы Google могут использовать ссылки на странице, чтобы найти другие страницы. Поэтому для Google noindex, follow по сути то же, что noindex: ссылки правило не ограничивает.
  • Яндекс: follow — разрешающая директива, а разрешающие робот использует по умолчанию.

Указывать follow явно не обязательно. Что поисковые системы делают со ссылками на странице, которая долго остаётся вне индекса, ни одна из справок не описывает. Поэтому не стройте на таких страницах важную перелинковку.

Nofollow для ссылок: rel="nofollow", sponsored и ugc

Как прописать nofollow у ссылки

Значение указывают в атрибуте rel тега ссылки. У Google три значения:

  • sponsored — для рекламы и платных мест размещения;
  • ugc — для ссылок, которые опубликовали пользователи: в комментариях, на форуме;
  • nofollow — когда два других значения не подходят, а вы не хотите, чтобы роботы Google переходили по ссылке и связывали её с вашим сайтом.
<a href="https://example.com/" rel="nofollow">Текст ссылки</a>
<a href="https://example.com/" rel="sponsored">Текст ссылки</a>
<a href="https://example.com/" rel="ugc nofollow">Текст ссылки</a>

Значения можно сочетать, разделяя пробелом или запятой: rel="ugc nofollow" или rel="ugc,nofollow". В справке Яндекса есть такие же варианты записи: rel="nofollow sponsored" и rel="nofollow,sponsored".

Как Google и Яндекс учитывают rel

Google пишет, что обычно роботы не переходят по ссылкам с атрибутами rel. Но целевую страницу робот может найти и просканировать другими способами — например, через файл Sitemap или по ссылкам с других сайтов. Значит, rel="nofollow" не прячет страницу от Google.

Яндекс перечисляет rel="ugc" (форумы и отзывы), rel="sponsored" (рекламные ссылки) и rel="nofollow" (чтобы робот не проходил по ссылке) в разделе о том, как скрыть ссылку от индексирования. Всегда ли робот следует этому указанию, справка не уточняет.

Одна ссылка или все ссылки страницы

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

Для обычных ссылок, по которым роботу можно переходить, атрибут rel не нужен. На внутренних ссылках nofollow обычно не решает задачу «убрать страницу из поиска»: робот может найти её по другим ссылкам или через Sitemap. Для этого нужен noindex на самой странице, открытой для сканирования. О том, как строить внутренние ссылки между страницами, у нас есть отдельная статья.

Тег <noindex> Яндекса: как закрыть часть текста

Элемент <noindex> закрывает от индексирования Яндексом фрагмент текста, а не всю страницу. Его ставят вокруг нужного куска HTML-кода. Если важна валидность кода, справка Яндекса предлагает вариант в виде HTML-комментариев.

<noindex>текст, который не нужно индексировать</noindex>

<!--noindex-->текст, который не нужно индексировать<!--/noindex-->

По справке Яндекса, элемент не чувствителен к вложенности и может стоять в любом месте HTML-кода. Если закрывающего тега нет, скрытым считается весь контент страницы. Поэтому каждый открытый <noindex> нужно закрыть.

В документации Google элемент <noindex> не описан. В перечне метатегов и атрибутов, которые распознают роботы Google, его нет. Не рассчитывайте, что он закроет текст от Google.

<noindex> вокруг ссылки и rel="nofollow": в чём разница

Это разные механизмы, хотя их часто ставят вместе.

  • <noindex> закрывает от индексирования Яндексом текст фрагмента.
  • rel="nofollow" относится к самой ссылке: по справке Яндекса — чтобы робот не проходил по ней; Google обычно по такой ссылке не переходит.
  • Метатег с noindex убирает из поиска страницу целиком.

Что Яндекс делает со ссылкой внутри <noindex>, справка отдельно не описывает. Если задача — закрыть ссылку, для неё есть атрибут rel.

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

ЗадачаСпособПочему не другой
Служебная страницаnoindex в метатеге или в X-Robots-TagDisallow не убирает страницу из поиска
Раздел или группа страницnoindex в шаблоне раздела или X-Robots-Tag на сервереСтавить правило вручную на каждую страницу ненадёжно: новые страницы раздела останутся без него
PDF и другие файлыX-Robots-TagВ файл не в формате HTML метатег не поставить
Весь сайт, поддомен, тестовая копияДоступ по паролю или авторизации, noindex на всех страницахПароль закрывает сайт и от людей, и от роботов; robots.txt действует только для своего хоста
Страница уже в поискеnoindex при открытом обходе, коды 404 / 410, инструменты удаленияЗапрет обхода помешает роботу увидеть noindex
Дубли и варианты одной страницыНе noindex, а canonical — о том, как выбрать между canonical, 301-редиректом и noindex, есть отдельная статьяnoindex убирает страницу из поиска, но не указывает основную версию
Одна ссылкаАтрибут rel у ссылкиnoindex и nofollow в метатеге действуют на всю страницу

Отдельная страница

Подходят метатег robots с noindex или заголовок X-Robots-Tag: noindex. Обычно так закрывают служебные адреса: результаты внутреннего поиска, корзину, оформление заказа, личный кабинет. О том, какие служебные страницы обычно не нужны в поиске, — в статье о структуре сайта.

Страницу с noindex не включайте в Sitemap. Google советует добавлять в карту сайта те адреса, которые вы хотите видеть в результатах поиска. Подробнее о том, какие страницы не включать в карту сайта, — в отдельной статье.

Раздел или группа страниц

Для раздела правило удобнее задать один раз: в шаблоне страниц раздела или заголовком X-Robots-Tag на сервере для всех адресов по шаблону пути. Так новые страницы раздела получат правило автоматически.

Запрет обхода раздела в robots.txt экономит запросы робота, но не убирает страницы из поиска. Почему — в разделе ниже.

Весь сайт, поддомен или тестовая копия

Для тестовой копии подходит доступ по паролю. Яндекс называет авторизацию на сайте одним из способов запретить индексирование. Google для страниц, которые не должны показываться в поиске, советует noindex или доступ только по паролю. Пароль к тому же закрывает сайт от посторонних людей, а не только от роботов.

Если пароль поставить нельзя, нужен noindex на всех страницах — метатегом в общем шаблоне или заголовком на сервере.

Правила действуют для своего хоста. robots.txt распространяется только на протокол, хост и порт, где он размещён: у поддомена https://test.example.com/ должен быть свой файл. Метатег и заголовок тоже задаются для каждого ответа отдельно: noindex на основном домене не закрывает поддомен.

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

Страница уже в поиске: как её убрать

Google. Добавьте noindex и оставьте страницу открытой для обхода. Затем в инструменте проверки URL в Search Console запросите повторное сканирование. Изменения видны в «Отчете об индексировании страниц».

Инструмент удаления URL в Search Console позволяет владельцу сайта временно исключить страницы из результатов поиска. Чтобы убрать контент навсегда, справка требует дополнительных мер: удалить страницу с ответом 404 или 410, закрыть доступ паролем или добавить noindex. Блокировка через инструмент не запрещает Google сканировать страницу.

Яндекс. Сначала справка предлагает запретить индексирование одним из трёх способов: Disallow в robots.txt, ответ 404, 403 или 410 или метатег robots с noindex. Затем удаление можно ускорить инструментом «Удаление страниц из поиска» в разделе «Инструменты» Вебмастера — по отдельным адресам или по префиксу, то есть сразу для группы адресов. Для удаления по префиксу справка ставит условие: робот удалит такие страницы, только если для них прописан Disallow в robots.txt.

О том, как отправить страницу на переобход и прочитать статусы индексации, — в статье об индексации сайта.

Почему запрет обхода не убирает страницу из поиска

Disallow и noindex: почему вместе не работают

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

Google пишет об этом прямо: если сканирование страницы запрещено в robots.txt, правила индексирования и показа будут проигнорированы. Робот не обработает код и не обнаружит noindex. Контент страницы может по-прежнему появляться в результатах, например если на неё ссылаются другие ресурсы.

Яндекс в справке о метатегах пишет: если страница запрещена в robots.txt, директива метатега или заголовка не действует. В справке о robots.txt сказано, что ограниченные в нём страницы могут участвовать в поиске, а для удаления из поиска рекомендуется noindex в коде или заголовке.

При этом в справке о запрете индексирования Яндекс называет Disallow одним из способов, а для удаления группы адресов по префиксу инструмент Вебмастера требует Disallow. Для одной страницы выберите один механизм. Если нужно, чтобы робот прочитал noindex, страница должна быть открыта для обхода. Как записывать правила, — в статье о том, как записать правила Disallow в robots.txt.

Когда запрет обхода в robots.txt всё же уместен

Google описывает robots.txt прежде всего как инструмент управления трафиком роботов на сайте. Запрет обхода уместен для адресов, которые роботу незачем загружать и которых нет в поиске. Например, это бесконечные варианты сортировки или технические адреса, которые не нужны ни людям, ни поиску.

Если такие адреса уже попали в поиск, из правил выше следует порядок:

  1. Откройте страницы для обхода и добавьте noindex.
  2. Дождитесь, пока страницы пропадут из поиска, — это видно в отчётах Search Console и Вебмастера.
  3. Если обход этих адресов по-прежнему не нужен, добавьте Disallow.

Если начать с третьего шага, робот не увидит noindex, и страницы могут остаться в поиске.

Как проверить, закрыта ли страница от индексации

Код страницы и HTTP-заголовки

Откройте исходный код страницы в браузере и найдите name="robots", а также name="googlebot" и name="yandex". Обратите внимание на число метатегов: два правила с разными значениями — повод разобраться, откуда взялось второе.

Заголовки ответа видны в панели разработчика браузера, на вкладке сетевых запросов. Из командной строки их можно запросить так:

curl -I https://example.com/page/

В ответе ищите строку X-Robots-Tag. Проверяйте итоговый ответ страницы, а не настройки в админке: правило могли добавить шаблон, плагин или сервер.

Google Search Console

В инструменте проверки URL есть поля «Сканирование разрешено?» и «Индексирование разрешено?». Первое показывает, не мешает ли обходу robots.txt, второе — не запрещает ли индексирование noindex. Кнопка «Проверить страницу на сайте» проверяет текущую версию страницы, «Запросить индексирование» — отправляет запрос на сканирование.

В «Отчете об индексировании страниц» страницы с noindex попадают в группу с причиной «Страница содержит директиву noindex».

Яндекс Вебмастер

В отчёте «Индексирование → Страницы в поиске», на вкладке исключённых страниц, страницы с noindex получают статус «Запрещено элементом noindex». Инструмент «Индексирование → Проверка страницы» показывает код ответа, контент страницы глазами робота и её статус в поиске.

Если страница не в поиске по другой причине, пройдите по диагностическому дереву причин неиндексации — по шагам.

Чек-лист после релиза

  • На шаблонах страниц, которые должны быть в поиске, нет noindex — ни в метатеге, ни в X-Robots-Tag.
  • Тестовая копия закрыта паролем или noindex, а рабочий сайт — нет.
  • Страницы, которые должны уйти из поиска через noindex, не закрыты в robots.txt.
  • Страниц с noindex нет в Sitemap.
  • На странице нет двух метатегов robots с противоречащими правилами.
  • Каждый <noindex> в коде закрыт.
  • rel="nofollow" стоит только у тех ссылок, где это задумано.

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

ОшибкаЧем грозитКак исправить
noindex остался в шаблоне после переноса с тестовой копии или релизаСтраницы, которые должны быть в поиске, исключаются из результатовПроверяйте метатег и заголовки на ключевых шаблонах после каждого релиза
noindex и Disallow на одной страницеРобот не прочитает noindex, страница может остаться в поискеУберите Disallow, пока страница не выпадет из поиска
Страницы с noindex в SitemapКарта сайта перечисляет адреса, которые вы хотите видеть в поиске, — сигналы противоречат друг другуУберите такие адреса из карты
noindex вместо canonical для дублейДубль пропадает из поиска, но основная версия не указанаДля дублей используйте canonical (см. таблицу выше)
Два противоречащих метатега или метатег и заголовок с разными правиламиGoogle применит более строгое правило, Яндекс — разрешающееОставьте одно правило в одном месте
Незакрытый <noindex>Для Яндекса скрытым считается весь контент страницыЗакройте элемент или используйте вариант с комментариями
Расчёт на <noindex> или rel как на запрет для Google<noindex> в документации Google не описан; по ссылке с rel Google обычно не переходит, но страницу может найти иначеЧтобы убрать страницу из поиска, используйте noindex на ней самой
nofollow в метатеге на всех страницах вместо rel у отдельных ссылокЗапрет действует на все ссылки страницы, включая менюСтавьте rel у конкретных ссылок
Правило задано в X-Robots-Tag на сервере и забытоВ HTML-коде его не видно, а правило действуетПроверяйте заголовки ответа, а не только код страницы

Если закрытые страницы обнаружились после релиза или правила задают сразу шаблон, плагин и сервер, разбираться стоит по всему сайту, а не по одной странице. Это задача технического SEO — подробнее о том, как устроена проверка meta robots и правил обхода в рамках технического SEO.

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

Что значит «URL запрещён к индексированию тегом noindex» и что с этим делать?

Так обычно описывают ситуацию, когда на странице есть noindex. В Яндекс Вебмастере у такой страницы статус «Запрещено элементом noindex», в Search Console — причина «Страница содержит директиву noindex». Проверьте метатег, заголовок X-Robots-Tag и шаблон страницы. Если страница должна быть в поиске, уберите правило и отправьте её на повторное сканирование.

Какой файл запрещает поисковым роботам индексировать страницы?

Такого файла нет. robots.txt управляет обходом: Google пишет, что он не предназначен для запрета показа в поиске, а Яндекс — что закрытые в нём страницы могут участвовать в поиске. Запрет индексирования задают метатегом robots или заголовком X-Robots-Tag.

Правда ли, что ссылка с nofollow не передаёт вес?

В справках Google и Яндекса об атрибуте rel понятия «вес» нет. Google описывает nofollow так: вы не хотите, чтобы роботы переходили по ссылке и связывали её с вашим сайтом; при этом целевую страницу робот может найти другими способами. Яндекс — «чтобы робот не проходил по ссылке». Как это влияет на ранжирование, справки не описывают.

Нужно ли ставить nofollow на все внешние ссылки?

Нет. Google просит помечать рекламные и платные ссылки как sponsored, пользовательские — как ugc, а nofollow использовать, когда эти значения не подходят и вы не хотите связывать сайт со ссылкой. Для обычных ссылок атрибут rel не нужен.

Бывает ли атрибут dofollow?

Нет. В перечнях значений rel в справках Google и Яндекса такого значения нет. Обычная ссылка без атрибута rel и есть ссылка, по которой роботу можно переходить.

Лишний noindex в шаблоне или забытый запрет с тестовой копии могут обнаружиться уже после релиза. Проверим, какие страницы закрыты от индексации и почему, и предложим, что исправить. → Обсудить техническое SEO