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

Страницы с параметрами в URL — типичная причина мусора в индексе: ?sort=price, ?filter_color=red, ?utm_source=..., внутренние фильтры каталога, пагинация с параметрами и служебные комбинации, которые не несут самостоятельной ценности. Проблема не в самих параметрах, а в том, что поисковик начинает считать такие URL отдельными страницами и тратит на них обход, а иногда ещё и показывает их вместо основной версии.

Ниже — рабочая схема для WordPress: как диагностировать проблему, какие URL закрывать, чем отличаются noindex, canonical и редиректы, и как проверить, что всё сработало без побочных эффектов.

Когда параметры уже расползлись по индексу

Сначала стоит понять, что именно у вас индексируется. Не все URL с параметрами нужно закрывать одинаково. Например, UTM-метки обычно не должны попадать в индекс, но и не требуют отдельной страницы. А вот фильтры каталога, сортировки и поисковые параметры могут создавать десятки или сотни дублей одной и той же сущности.

Что искать в Google Search Console и логах

Откройте отчёт по страницам и посмотрите, есть ли там URL с вопросительным знаком. Дополнительно проверьте:

  • страницы с параметрами в отчёте «Страницы»;
  • дубли одной и той же категории с разными сортировками;
  • URL, которые открываются, но не должны иметь отдельный сниппет;
  • страницы, где canonical указывает не туда или отсутствует вовсе.

Если у вас есть доступ к логам веб-сервера, полезно посмотреть, как часто поисковые боты ходят на такие адреса. Это помогает понять, есть ли реальная нагрузка на обход.

Какие URL закрывать, а какие оставить

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

ПодходКогда использоватьПлюсыМинусы
canonicalСтраница должна открываться пользователю, но в индексе нужна основная версияНе ломает UX, мягко склеивает дублиНе всегда достаточно, если URL активно индексируется
noindex,followСтраница не должна быть в поиске, но ссылки с неё можно обходитьПрямой сигнал поисковикуНужно аккуратно внедрять, чтобы не закрыть важные страницы
301-редиректПараметр бесполезен и не нужен пользователюУбирает дубль полностьюНельзя применять к страницам, которые реально используются

Пошаговое решение: от мягкой склейки до жёсткого запрета

Если задача касается именно WordPress, удобнее разделить решение на два слоя: на уровне шаблона/плагина и на уровне сервера. Так проще не сломать нужные страницы и быстрее проверить результат.

Шаг 1. Добавьте canonical на основную версию страницы

Если у вас есть страницы с сортировкой или фильтром, но контент по сути тот же, canonical должен указывать на чистый URL без параметров. В WordPress это можно сделать через фильтр wpseo_canonical, если используется Yoast SEO, или через собственный вывод в <head>, если вы контролируете тему.

Пример для темы или мини-плагина:

<?php
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }

    if (!empty($_GET)) {
        $canonical = home_url(add_query_arg([], $GLOBALS['wp']->request));
        $canonical = strtok($canonical, '?');
        echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
    }
}, 1);

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

Шаг 2. Для служебных параметров добавьте noindex

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

<?php
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }

    $blocked_params = ['sort', 'orderby', 'filter_color', 'filter_size', 'price_min', 'price_max'];

    foreach ($blocked_params as $param) {
        if (isset($_GET[$param])) {
            echo '<meta name="robots" content="noindex,follow" />' . "\n";
            break;
        }
    }
}, 5);

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

Шаг 3. Уберите мусорные параметры на уровне сервера

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

Для Apache можно использовать mod_rewrite в .htaccess:

RewriteEngine On

# Убираем UTM и другие маркетинговые параметры
RewriteCond %{QUERY_STRING} (^|&)(utm_source|utm_medium|utm_campaign|utm_term|utm_content)=[^&]+ [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L]

Если сайт на Nginx, логику лучше вынести в конфигурацию сервера или в PHP-редирект, если доступ к конфигу ограничен. Главное — не делать цепочки редиректов и не редиректить то, что должно работать для пользователя.

Если фильтры нужны пользователю, но не нужны поиску

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

Проверьте шаблон ссылок фильтра

Если фильтр генерирует ссылки вида ?filter_color=red&filter_size=m на каждой странице, поисковик будет их обходить. Иногда достаточно убрать такие ссылки из HTML и оставить их только в JS-обработке формы. Это снижает количество мусорных URL, которые бот видит как отдельные документы.

Для форм фильтрации полезно:

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

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

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

  1. Посмотрите исходный код страницы и найдите meta name="robots" и link rel="canonical".
  2. Проверьте, что canonical указывает на чистый URL без лишних параметров.
  3. Убедитесь, что служебные URL не отдают 200 там, где нужен редирект.
  4. В Google Search Console используйте проверку URL и посмотрите, как Google видит страницу.
  5. Через несколько дней проверьте отчёт по индексированию: мусорные URL должны исчезать или переставать накапливаться.

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

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

Canonical указывает на саму себя вместе с параметрами

Это происходит, когда canonical собирается из текущего URL без очистки query string. В итоге страница с ?sort=price канонизируется сама на себя, и дубль не склеивается. Исправление простое: canonical должен строиться от базового пути без параметров.

noindex ставят на все страницы с вопросительным знаком

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

Редиректят всё на главную

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

Оставляют одновременно canonical, noindex и редирект

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

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

Чем больше параметров вы обрабатываете, тем выше риск ошибок в шаблоне и лишней нагрузки. Не собирайте canonical вручную через небезопасные строки и не выводите в head сырые значения из $_GET без экранирования.

  • используйте esc_url() и sanitize_text_field() для параметров;
  • не храните список запрещённых параметров в нескольких местах;
  • если логика сложная, вынесите её в маленький mu-plugin, а не в functions.php;
  • после изменений очистите кеш страницы и кеш CDN, иначе поисковик и пользователи увидят старую версию;
  • если используете SEO-плагин, проверьте, не дублирует ли он ваши мета-теги.

Если нужен более широкий контроль над дублями, canonical и технической чисткой сайта, в экосистеме WPShop есть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином полезно понимать, какие именно параметры вы закрываете и почему.

Мини-чек-лист перед публикацией

  • Список параметров разделён на служебные и полезные.
  • Для полезных страниц настроен canonical на чистый URL.
  • Для мусорных комбинаций стоит noindex,follow или редирект.
  • Нет конфликтов между SEO-плагином, темой и кастомным кодом.
  • Проверка URL в Search Console показывает ожидаемую версию страницы.
  • Кеш очищен, а старые URL не отдаются из CDN.

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

Как закрыть от индексации страницы фильтров и параметров в WordPress
09.09.2026
Как отключить XML-RPC в WordPress без срыва работы сайта
06.09.2026
Как закрыть от индексации страницы поисковых запросов в WordPress
31.08.2026
Как закрыть от индексации страницы внутреннего поиска в WordPress
03.09.2026
Как закрыть дубли страниц пагинации в WordPress без вреда для индексации
22.08.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее