Noindex — директива для поисковика «не показывай эту страницу в результатах поиска». Ставится двумя способами: мета-тегом в шапке страницы — <meta name="robots" content="noindex">, или HTTP-заголовком ответа — X-Robots-Tag: noindex. Второй способ удобен для не-HTML файлов: PDF, изображений, JSON.
Главное отличие от Disallow в robots.txt: noindex разрешает обход страницы, но запрещает её показ. Disallow — наоборот: запрещает обход. Если страница уже в индексе, а вы поставили её под Disallow — она оттуда не уйдёт, потому что робот не сможет туда зайти и увидеть директиву. Правильный путь убрать из индекса — noindex (а Disallow добавляется потом, после того как страница выпала).
В Яндексе действует Yandex-специфичный тег <meta name="yandex" content="noindex">, который игнорируется Google, и наоборот. Универсальное name="robots" понимают оба.
<!-- Запрет индексации страницы в Google и Яндексе --> <meta name="robots" content="noindex, follow"> <!-- Альтернатива: HTTP-заголовок для PDF, картинок, JSON --> X-Robots-Tag: noindex
Как делать правильно
- технические страницы: личный кабинет, корзина, формы оформления заказа
- результаты внутреннего поиска по сайту
- теговые страницы и фильтры с тонким контентом
- архивы за год/месяц, пагинация с дублирующим контентом
- временные посадки промо-акций, которые не должны жить в индексе вечно
- не ставить noindex на страницы, которые уже хорошо ранжируются — потеряете трафик
- не совмещать с Disallow в robots.txt одновременно: робот не зайдёт и не увидит noindex
- не закрывать noindex'ом дубли — для этого canonical, он сохраняет ссылочный сок
- не забывать, что noindex накапливается: страница не сразу выпадает, нужно дать роботу время
На большом интернет-магазине теговые страницы (комбинации фильтров — «красные / 42 размер / до 5000») создавали 380 000 thin-content URL в индексе. Поставили noindex на все теги, кроме 20 проверенных коммерческих. За 3 месяца индекс сократился в 8 раз, остальные страницы выросли в позициях за счёт концентрации crawl budget и сигналов.
Ключевой момент, на котором спотыкаются: noindex срабатывает только если робот СМОЖЕТ скачать страницу и прочитать директиву. Поэтому последовательность строгая — сначала открываете страницу в robots.txt для обхода и ставите noindex, ждёте, пока URL выпадет из индекса (в Search Console это видно в отчёте «Покрытие», в Яндекс Вебмастере — в «Страницах в поиске»), и только потом, если нужно, добавляете Disallow. Поставите Disallow раньше времени — робот не зайдёт, noindex не увидит, и страница застрянет в выдаче месяцами с подписью «нет описания из-за robots.txt».
Не путайте noindex с canonical: для дублей и почти-дублей нужен именно canonical, потому что он передаёт сигналы целевой странице, а noindex просто выкидывает URL без передачи веса. На больших сайтах массовый noindex полезен и для краулингового бюджета косвенно — робот перестаёт тратить ресурс на бесполезные результаты внутреннего поиска и фильтры. И помните про разнобой движков: мета-тег name="robots" понимают и Яндекс, и Google, а name="yandex" Google игнорирует — если закрываете страницу только для одного поисковика, проверьте, что не закрыли её случайно для обоих.
Мета-тег или заголовок X-Robots-Tag со значением noindex для не-HTML файлов.
Disallow запрещает обход; под ним noindex не прочитается и страница не выпадет.
Корзина, личный кабинет, внутренний поиск, фильтры и временные промо-посадки.