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

В WordPress чаще всего индексируются не только полезные страницы, но и мусорные URL: внутренний поиск с параметром ?s=, страницы фильтров, сортировки, пагинации в служебных разделах, архивы с пустым или почти пустым контентом. В результате в индексе появляются слабые страницы, а краулинговый бюджет уходит не туда, куда нужно.

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

Какие страницы обычно стоит закрывать

Перед правками проверьте, что именно у вас создаёт мусорные URL. В типичном WordPress это:

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

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

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

Сначала посмотрите, какие URL реально попали в индекс и как они выглядят в обходе сайта. Это можно сделать в Google Search Console, в логах сервера или через обычный поиск по сайту.

Быстрый чек-лист

  • В Search Console откройте отчёт по страницам и найдите URL с ?s=, ?filter=, ?orderby= и похожими параметрами.
  • Проверьте, не индексируются ли страницы поиска с пустым результатом.
  • Убедитесь, что важные посадочные страницы не используют те же шаблоны URL и не попадут под общее правило.
  • Посмотрите исходный код проблемной страницы: есть ли уже meta robots или заголовок X-Robots-Tag.

Если страница уже отдаёт noindex, не дублируйте это несколькими способами без необходимости. Лучше понять, где именно управляется индексация: в шаблоне, через SEO-плагин или на уровне сервера.

Пошаговое решение: как закрыть поиск и фильтры от индексации

Есть три нормальных подхода: через SEO-плагин, через код темы или плагина, и через заголовки сервера. Для большинства сайтов достаточно первого или второго варианта.

ПодходКогда использоватьПлюсыМинусы
SEO-плагинЕсли уже стоит Yoast, Rank Math или аналогБыстро, без правки темыНе всегда удобно для точечных условий
Код в теме/мини-плагинеЕсли нужна точная логика для поиска и фильтровКонтроль над условиямиНужно аккуратно тестировать
X-Robots-Tag на сервереЕсли нужно закрывать целые группы URLРаботает на уровне ответаСложнее поддерживать, легко ошибиться

Вариант 1: через код в functions.php или мини-плагин

Если у вас нет удобной настройки в SEO-плагине, можно добавить noindex, follow для страниц поиска и некоторых параметров. Ниже пример для внутреннего поиска и типовых служебных параметров.

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

    if ( isset($_GET['orderby']) || isset($_GET['filter']) || isset($_GET['sort']) ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
});

Этот вариант хорош тем, что не ломает обычные страницы и не требует отдельного плагина. Но он работает только если ваши фильтры действительно передаются через указанные параметры. Подставлять сюда всё подряд не стоит: сначала посмотрите реальные URL.

Вариант 2: закрыть пустую выдачу поиска

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

<?php
if ( is_search() && ! have_posts() ) {
    add_action('wp_head', function() {
        echo '<meta name="robots" content="noindex,follow">';
    });
}

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

Вариант 3: через SEO-плагин

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

Плюс такого подхода в том, что он обычно уже согласован с canonical, sitemap и другими SEO-настройками. Минус — не всегда можно гибко исключить только часть параметров, не затронув остальное.

Как проверить, что решение сработало

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

  1. Откройте проблемный URL в браузере и посмотрите исходный код страницы.
  2. Проверьте наличие <meta name="robots" content="noindex,follow"> или аналогичного заголовка.
  3. Если используете серверные заголовки, проверьте ответ через curl -I.
curl -I "https://example.com/?s=test"

В ответе ищите X-Robots-Tag, если вы настраивали его на уровне сервера. Если используете мета-тег в HTML, откройте исходник страницы, а не визуальный DOM в инспекторе — некоторые скрипты могут подменять содержимое после загрузки.

Дополнительно проверьте Search Console: проблемные URL должны постепенно исчезать из отчётов об индексировании или переходить в статус, соответствующий noindex. Это не мгновенный процесс, поэтому ориентируйтесь на повторный обход, а не на результат в тот же день.

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

Ставят noindex на все страницы поиска без разбора

Это нормально для внутреннего поиска, но опасно, если у вас есть отдельные посадочные страницы с поисковым интентом, которые реально нужны в индексе. Решение: ограничивайте правило только техническими URL и проверяйте реальные шаблоны.

Дублируют robots-теги из плагина и темы

Когда один плагин ставит index,follow, а тема добавляет noindex, поисковик получает конфликтующий сигнал. В итоге поведение становится непредсказуемым. Оставьте один источник управления индексацией.

Закрывают URL в robots.txt вместо noindex

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

Не проверяют параметры, которые создаёт тема или плагин

Иногда фильтры работают не через filter или orderby, а через другие параметры. Без проверки реальных URL вы легко закроете не то или, наоборот, оставите мусор в индексе.

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

Если вы добавляете логику через PHP, не встраивайте её прямо в активную тему без необходимости. Для точечных правил лучше использовать мини-плагин или mu-plugin, чтобы не потерять настройки при обновлении темы.

Ещё один момент: не перегружайте wp_head десятком условий. Если сайт большой и логика сложная, соберите правила в одном месте и документируйте, какие параметры закрываются и почему. Это упростит поддержку и снизит риск случайно закрыть полезные страницы.

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

Когда лучше не ставить noindex

Не закрывайте страницы только потому, что они выглядят «тонкими» на первый взгляд. Если фильтр или поиск создаёт реально полезные посадочные страницы, которые получают трафик и решают пользовательскую задачу, их лучше оставить в индексе и доработать контентом, canonical и внутренней перелинковкой.

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

Как убрать дубли страниц в WordPress: canonical, noindex и пагинация без потери индексации
15.08.2026
Как отключить emoji в WordPress и убрать лишние скрипты из head
19.08.2026
Как настроить noindex для страниц поиска и фильтров в WordPress
19.08.2026
Как отключить XML-RPC в WordPress без поломки внешних сервисов
15.08.2026
Как отключить XML-RPC в WordPress без срыва Jetpack и внешних сервисов
19.08.2026