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

Страницы фильтров и сортировок часто появляются сами: в каталоге, архиве записей, на странице поиска по сайту или в плагине таксономий. Проблема не в самом фильтре, а в том, что поисковик начинает индексировать десятки и сотни почти одинаковых URL с параметрами вроде ?sort=price, ?color=red, ?s= или ?filter=. В результате размывается вес, растёт количество дублей, а в отчётах по индексации появляются мусорные страницы.

Когда это действительно проблема

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

Типичные признаки дублей

  • в Google Search Console растёт число страниц с пометкой «Просканировано, но не проиндексировано»;
  • в индексе есть URL с параметрами, которые не должны ранжироваться;
  • одна и та же страница доступна по нескольким адресам: с параметром и без него;
  • в логах или аналитике видны массовые заходы на URL вида ?sort=, ?filter=, ?replytocom=;
  • поисковик выбирает неканонический вариант страницы, хотя основной URL уже есть.

Диагностика: что именно индексируется

Сначала нужно понять, какие URL реально попали в индекс и откуда они берутся. Не стоит сразу закрывать всё подряд через noindex или robots.txt: можно случайно сломать полезные страницы или скрыть проблему с каноникалами.

Проверьте источники дублей

  • поиск в Google по шаблону site:example.ru inurl:?;
  • отчёт «Страницы» в Google Search Console;
  • HTML исходник проблемной страницы: есть ли rel="canonical" и совпадает ли он с основным URL;
  • настройки темы и плагинов: некоторые добавляют параметры сортировки, AJAX-фильтры и пагинацию;
  • серверные логи: какие URL чаще всего запрашивают боты.

Если фильтр работает через GET-параметры, а содержимое страницы почти не отличается от базовой выдачи, это кандидат на закрытие от индексации. Если же параметр меняет смысл страницы, лучше делать отдельный ЧПУ-адрес и управлять им как обычной посадочной страницей.

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

Здесь есть три основных подхода: noindex в мета-тегах, canonical на основную страницу и запрет обхода через robots.txt. На практике чаще всего нужен не один способ, а комбинация. Но порядок важен: сначала определяем, что именно не должно индексироваться, потом выбираем механизм.

Подход Когда использовать Плюсы Ограничения
noindex,follow Для страниц фильтров, сортировок, поиска Страница не попадает в индекс, ссылки могут передавать вес Нужно, чтобы робот мог зайти на страницу и увидеть мета-тег
canonical Если есть основной URL без параметров Подсказывает поисковику предпочтительный адрес Не всегда игнорирует дубль, если страница сильно отличается
robots.txt Для явного ограничения обхода мусорных параметров Снижает нагрузку на сайт Не гарантирует удаление уже известных URL из индекса

Вариант 1: поставить noindex на страницы с параметрами

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

<?php
add_action( 'wp_head', function () {
    if ( is_search() ) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
        return;
    }

    $params = array( 'sort', 'filter', 'color', 'size', 'price', 'replytocom' );
    foreach ( $params as $param ) {
        if ( isset( $_GET[ $param ] ) ) {
            echo '<meta name="robots" content="noindex,follow">' . "\n";
            break;
        }
    }
}, 1 );

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

Вариант 2: задать canonical на основную страницу

Если у страницы с параметрами есть очевидный основной адрес без параметров, canonical должен указывать именно на него. Многие SEO-плагины умеют это делать, но иногда тема или кастомный код перезаписывают тег. Тогда полезно проверить HTML и при необходимости переопределить canonical вручную.

<?php
add_filter( 'get_canonical_url', function( $canonical, $post ) {
    if ( is_search() ) {
        return home_url( '/' );
    }

    if ( ! empty( $_GET['sort'] ) || ! empty( $_GET['filter'] ) ) {
        return get_permalink( $post );
    }

    return $canonical;
}, 10, 2 );

Здесь важно не подменять canonical на случайный адрес. Он должен вести на реально существующую и релевантную страницу. Если canonical указывает на нерелевантный URL, поисковик может проигнорировать подсказку.

Вариант 3: ограничить мусорные параметры в robots.txt

Этот способ полезен, когда бот тратит слишком много времени на обход бесполезных комбинаций параметров. Но robots.txt не удаляет уже проиндексированные страницы сам по себе. Поэтому его используют как дополнение, а не как единственную меру.

User-agent: *
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?replytocom=

Синтаксис зависит от сервера и того, как именно формируются URL. Перед внедрением проверьте, что правило не задевает полезные страницы и не блокирует CSS/JS ресурсы, нужные для рендеринга.

Пошаговое решение без лишнего риска

  1. Соберите список параметров, которые создают дубли: сортировка, фильтры, поиск, служебные ссылки комментариев.
  2. Определите, есть ли у этих URL ценность для поиска. Если нет — закрывайте.
  3. Добавьте noindex,follow на проблемные страницы.
  4. Проверьте canonical: он должен вести на основную версию страницы без параметров.
  5. При необходимости ограничьте обход мусорных параметров в robots.txt.
  6. Уберите внутренние ссылки на бесполезные варианты, если они массово генерируются шаблоном.

Если фильтр работает через AJAX

AJAX-фильтр часто создаёт две проблемы одновременно: визуально страница меняется без перезагрузки, но URL в адресной строке всё равно обновляется, а поисковик видит отдельные адреса. В этом случае нужно смотреть не только на мета-теги, но и на то, как плагин формирует историю браузера и ссылку для шаринга. Иногда достаточно отключить запись параметров в URL, иногда — настроить фильтр так, чтобы он не создавал индексируемые адреса вообще.

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

Проверка нужна не только в браузере. После внедрения откройте проблемный URL и посмотрите исходный код страницы: должен появиться noindex,follow, а canonical — вести на правильный адрес. Затем проверьте, как страница выглядит для робота в Search Console.

  • в исходнике есть нужный meta robots;
  • canonical совпадает с основной страницей;
  • URL с параметрами не получает новых переходов из поиска;
  • в отчёте Search Console постепенно уменьшается число дублей;
  • страница без параметров остаётся доступной и индексируемой.

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

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

Закрыли в robots.txt, но URL остались в индексе

Это ожидаемое поведение. robots.txt запрещает обход, но не гарантирует удаление уже известных страниц. Для удаления нужен noindex на самой странице или корректный canonical, а в отдельных случаях — ручное удаление через Search Console.

Поставили noindex на все страницы архива

Так часто ломают нормальную индексацию. Если архив категории или рубрики полезен для поиска, закрывать его целиком не стоит. Закрывать нужно именно страницы с параметрами, а не весь архив.

Canonical указывает на несуществующий URL

Это бывает после редизайна, смены структуры ссылок или удаления страницы. Поисковик не любит каноникал на 404. Сначала восстановите целевой адрес или замените canonical на существующую страницу.

Плагин SEO и тема пишут разные canonical

В итоге в HTML может оказаться два тега canonical или конфликтующие значения. Проверьте, кто именно выводит тег: SEO-плагин, тема или кастомный код. Должен остаться один источник правды.

Что учесть по безопасности и производительности

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

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

Для сайтов, где проблема с дублями повторяется системно, имеет смысл посмотреть в сторону инструментов, которые помогают чистить технические хвосты и управлять SEO-настройками без ручного кода. Например, в Clearfy Pro есть функции для удаления дублей и технической чистки сайта: https://wpshop.ru/plugins/clearfy. Но даже с плагином всё равно нужно понимать, какие URL вы закрываете и почему.

Короткий чек-лист перед публикацией изменений

  • Проверены конкретные параметры, которые создают дубли.
  • На проблемных URL есть noindex,follow.
  • Canonical ведёт на основную страницу без параметров.
  • robots.txt не блокирует полезные ресурсы и страницы.
  • Внутренние ссылки не генерируют лишние индексируемые комбинации.
  • После правок страница проходит проверку в Search Console.

Если задача не в том, чтобы «спрятать всё от поисковика», а в том, чтобы оставить в индексе только полезные страницы, этот подход работает предсказуемо. Сначала диагностируете источник дублей, потом закрываете только мусорные URL и отдельно проверяете, что основная версия страницы не пострадала.

Как закрыть от индексации страницы поискового фильтра в WordPress
13.08.2026
Как закрыть от индексации страницы поиска по сайту в WordPress
23.08.2026
Как закрыть дубли архивов авторов и дат в WordPress
20.08.2026
Как отключить XML-RPC в WordPress без поломки приложений и плагинов
17.08.2026
×
Прокачай свой WordPress!

Скидка -20% на премиум темы и плагины

Воспользоваться сейчас ⋙