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

Параметры в URL — частая причина дублей на WordPress-сайте. Один и тот же контент может открываться как /page/, /?sort=price, /?utm_source=... или /?filter=red. Для пользователя это просто разные ссылки, а для поисковика — отдельные страницы, которые конкурируют между собой и расходуют краулинговый бюджет.

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

Как понять, что дубли уже появились

Сначала не трогайте robots.txt и не ставьте массовый noindex наугад. Важно понять, какие именно параметры создают лишние URL и как они влияют на сайт.

Признаки в Search Console и логах

Обычно картина выглядит так:

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

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

Быстрая проверка через поиск по сайту

Откройте несколько типовых страниц и сравните:

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

Если контент на этих адресах одинаковый или почти одинаковый, это кандидат на канонизацию или закрытие от индексации.

Что делать в первую очередь: сравнить варианты решения

Не все параметры нужно обрабатывать одинаково. UTM-метки и служебные параметры обычно не должны создавать отдельные страницы. Фильтры и сортировки — зависят от задачи: иногда их надо индексировать выборочно, иногда закрывать полностью.

ПодходКогда подходитМинус
Кодом: canonical, редирект, noindexКогда параметр технический и не должен жить как отдельная страницаНужно аккуратно тестировать, чтобы не сломать фильтры
Плагином для SEO/чистки дублейКогда нужен быстрый контроль без правки темыНе всегда покрывает нестандартные параметры
Оставить как естьКогда параметр реально меняет смысл страницы и нужен в индексеРиск дублей и лишнего обхода

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

Пошаговое решение: закрываем служебные параметры и нормализуем URL

Шаг 1. Определите список параметров

Разделите параметры на три группы:

  • служебные — UTM, fbclid, gclid, ref;
  • технические — preview, replytocom, внутренние токены;
  • содержательные — sort, filter, brand, color.

Служебные почти всегда можно убрать из индексации. Содержательные — только после проверки, не нужен ли им отдельный SEO-статус.

Шаг 2. Добавьте canonical для страниц с параметрами

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

<?php
add_filter('wpseo_canonical', function ($canonical) {
    if (is_admin()) {
        return $canonical;
    }

    if (!empty($_GET)) {
        $clean_url = home_url(add_query_arg(array(), $GLOBALS['wp']->request));
        return trailingslashit($clean_url);
    }

    return $canonical;
});

Этот пример подходит не для всех сайтов. Если у вас уже используется SEO-плагин, проверьте, не конфликтует ли он с генерацией canonical. Иногда проще настроить правила в самом плагине, чем вмешиваться в фильтр.

Шаг 3. Уберите UTM и похожие параметры через редирект

Для маркетинговых меток лучше не плодить отдельные URL. Если страница открыта с UTM, можно сделать 301 на чистый адрес, сохранив аналитику на стороне трекинга.

<?php
add_action('template_redirect', function () {
    if (is_admin() || wp_doing_ajax()) {
        return;
    }

    $remove_params = array('utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid');
    $has_tracking = false;

    foreach ($remove_params as $param) {
        if (isset($_GET[$param])) {
            $has_tracking = true;
            break;
        }
    }

    if (!$has_tracking) {
        return;
    }

    $url = home_url(add_query_arg(array(), $GLOBALS['wp']->request));
    wp_safe_redirect(trailingslashit($url), 301);
    exit;
});

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

Шаг 4. Закройте технические параметры от индексации

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

<?php
add_filter('wp_robots', function ($robots) {
    $blocked_params = array('replytocom', 'preview', 'sort', 'filter');

    foreach ($blocked_params as $param) {
        if (isset($_GET[$param])) {
            $robots['noindex'] = true;
            $robots['follow'] = true;
            break;
        }
    }

    return $robots;
});

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

Шаг 5. Нормализуйте внутренние ссылки

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

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

Если нужен быстрый вариант без кода

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

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

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

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

  1. Откройте URL с параметром и убедитесь, что canonical указывает на чистую страницу.
  2. Проверьте HTTP-статус: для редиректа должен быть 301, для обычной страницы — корректный код без ошибок.
  3. Посмотрите исходный код и убедитесь, что meta robots или заголовок X-Robots-Tag выставлены как задумано.
  4. Сравните страницу с параметром и без него: контент должен быть либо одинаковым, либо осознанно отличаться.
  5. Через Search Console проверьте, не растёт ли число URL с параметрами в отчёте об индексировании.

Для быстрой проверки из консоли можно использовать curl:

curl -I "https://example.com/category/?utm_source=test"
curl -I "https://example.com/category/?filter=red"

По ответу сервера видно, есть ли редирект, и не отдаёт ли страница неожиданный статус.

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

Ставят noindex на всё подряд

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

Делают редирект с любых query-параметров

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

Canonical указывает на несуществующий или динамически собранный URL

Если canonical собран неправильно, поисковик может игнорировать его. Проверьте, что в ссылке нет лишних параметров, двойных слэшей и ошибок в пути.

Оставляют параметры во внутренних ссылках

Даже если canonical настроен, сайт продолжит сам плодить дубли. Нужно чистить шаблоны, меню и блоки, которые генерируют ссылки.

Закрывают параметры в robots.txt

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

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

Чем больше параметров обрабатывается на лету, тем выше риск ошибок и лишней нагрузки. Несколько правил помогают не превратить решение в новую проблему:

  • не используйте универсальный редирект для всех query-параметров;
  • проверяйте список допустимых параметров через белый список, а не через отрицание;
  • не полагайтесь только на плагины, если параметры создаёт тема или кастомный код;
  • после изменений очистите кэш страниц и объектный кэш, если он есть;
  • следите, чтобы фильтры не генерировали бесконечные комбинации URL.

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как закрыть от индексации страницы автора и архивы дат в WordPress
16.09.2026
Как избежать конфликтов между плагинами WordPress: практические решения и примеры кода
29.09.2026
Как закрыть от индексации вложенные архивы в WordPress
22.09.2026
Как исправить дубли страниц пагинации в WordPress и убрать лишние URL из индекса
21.08.2026
Как сделать автоматический импорт товаров в WooCommerce: практическое руководство
23.09.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше