Как настроить noindex для страниц поиска и архивов в WordPress

Внутренний поиск, архивы по датам, автору, тегам и служебные страницы часто создают лишние URL, которые не дают трафик, но забирают краулинговый бюджет и размывают качество индекса. Если сайт небольшой, это не всегда критично. Но на проектах с большим количеством записей такие страницы быстро превращаются в источник дублей и мусорных страниц в поиске.

Задача здесь не в том, чтобы закрыть всё подряд. Нужен точечный контроль: что оставить в индексе, что пометить как noindex, follow, а что вообще не должно попадать в выдачу. Ниже — рабочий сценарий для WordPress без выдуманных хуков и без опасных правок ядра.

Когда noindex действительно нужен

Сначала стоит понять, какие страницы у вас создаются автоматически. В WordPress это обычно:

  • страницы внутреннего поиска вида /?s=...;
  • архивы по датам, если они не несут самостоятельной ценности;
  • архивы авторов на сайтах с одним автором;
  • архивы тегов, если теги используются хаотично и дублируют рубрики;
  • страницы пагинации, если они не нужны для поиска.

Не стоит ставить noindex на всё подряд. Например, рубрики с нормальной структурой и трафиком лучше оставить открытыми. Иначе можно потерять полезные посадочные страницы.

Диагностика проблемы: что именно попадает в индекс

Перед настройкой проверьте, какие URL уже индексируются. Самый простой путь — поиск по сайту в Google с оператором site: и просмотр отчёта «Страницы» в Google Search Console. Если там много адресов с ?s=, /author/, /tag/ или /date/, это уже повод для настройки.

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

Что проверить до изменений

  • есть ли SEO-плагин, который уже управляет robots meta;
  • не закрыты ли нужные архивы случайно через robots.txt;
  • не используется ли кэш, который показывает старую версию head;
  • не конфликтуют ли настройки темы и плагина.

Пошаговое решение: добавляем noindex через код

Если у вас нет SEO-плагина или вы хотите точечно управлять мета-роботами, можно добавить фильтр в functions.php дочерней темы или в собственный мини-плагин. Для WordPress это самый предсказуемый способ, потому что он не зависит от генерации шаблона.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_search() ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    if ( is_author() && count_users()['total_users'] <= 1 ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    if ( is_date() ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    if ( is_tag() && ! has_term( '', 'category' ) ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
} );

Этот код использует стандартный фильтр wp_robots, который есть в современных версиях WordPress. Он безопаснее, чем ручная вставка meta-тега в шаблон, потому что не ломает разметку и не требует правки header.php.

Если нужно закрыть только поиск, оставьте в коде один блок is_search(). Не добавляйте лишние условия, если не понимаете, как они повлияют на индексацию.

Когда лучше использовать SEO-плагин

Если на сайте уже стоит SEO-плагин, логичнее управлять robots meta через него, а не через код. Это снижает риск конфликта и упрощает поддержку. Но важно проверить, не дублирует ли плагин ваш собственный фильтр.

ПодходПлюсыМинусы
Код через wp_robotsТочный контроль, не зависит от шаблонаНужно следить за обновлениями и условиями
SEO-плагинУдобно для редакторов, меньше ручной работыВозможны конфликты настроек и лишняя нагрузка
Правка шаблонаБыстро для тестаХрупко, легко сломать при обновлении темы

Если нужен noindex только для внутреннего поиска

Частый сценарий — закрыть именно страницы поиска, но оставить архивы открытыми. Тогда не трогайте остальные условия и используйте более узкую проверку. Это особенно полезно, если у вас есть нормальные рубрики и теги, которые реально приводят трафик.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_search() ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
} );

Такой вариант проще сопровождать: если позже понадобится убрать noindex с поиска, вы удалите один блок, а не будете разбирать сложную логику.

Проверка результата после внедрения

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

  1. Откройте проблемную страницу в режиме инкогнито.
  2. Посмотрите исходный код и найдите meta name="robots" или заголовок robots, если он отдается через плагин/сервер.
  3. Убедитесь, что для поиска, архива или даты указан noindex.
  4. Проверьте несколько типов страниц отдельно: поиск, автор, тег, дата.
  5. Если используется кэш, очистите его и повторите проверку.

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

Частые ошибки и как их исправить

Закрыли нужные страницы вместо мусорных

Это происходит, когда noindex ставят на все архивы без анализа. Если рубрики дают трафик, их лучше не трогать. Исправление простое: уберите лишние условия и оставьте только проблемные типы страниц.

Используют одновременно несколько источников robots meta

Например, код в теме, SEO-плагин и ручная вставка в шаблон. В итоге на странице может появиться конфликтующая разметка. Решение: оставьте один источник управления robots meta.

Путают noindex и disallow

noindex говорит поисковику не индексировать страницу, а Disallow в robots.txt запрещает обход. Это не одно и то же. Если закрыть URL в robots.txt, поисковик может не увидеть мета-тег noindex. Для служебных страниц обычно безопаснее сначала ставить noindex, а не блокировать обход.

Не чистят кэш после правки

На сайтах с кэшем старый meta-тег может показываться еще некоторое время. Если проверяете изменения и не видите результата, сначала очистите серверный и плагинный кэш, потом повторите тест.

Практические советы по безопасности и производительности

Не вносите такие правки напрямую в родительскую тему: после обновления они пропадут. Лучше использовать дочернюю тему или небольшой кастомный плагин. Если проект обслуживает несколько человек, храните код в репозитории, чтобы изменения были отслеживаемыми.

Если у вас большой сайт, не пытайтесь решать проблему только через noindex. Параллельно проверьте внутреннюю перелинковку, структуру рубрик и дубли в тегах. Иногда проще убрать источник мусорных URL, чем постоянно закрывать его от индексации.

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

Если нужен более широкий контроль над дублями, мета-тегами и системными страницами, можно посмотреть в сторону Clearfy Pro, но даже в этом случае полезно понимать, какие именно URL вы закрываете и зачем.

Как создать свой плагин в WordPress: практическое руководство
07.09.2026
Как автоматически изменять мета-теги в WordPress динамически
07.09.2026
Как удалить или заблокировать заблокированных пользователей в WordPress
07.09.2026
Как настроить robots.txt в WordPress, чтобы закрыть дубли и системные страницы
16.08.2026
Как закрыть дубли страниц от пагинации в WordPress через robots.txt, canonical и noindex
03.09.2026

Как работать с WordPress: основы работы с движком, обзор встроенных функций, советы по созданию и редактированию контента.