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

Если в индексе начали появляться URL вида ?sort=price, ?filter_color=blue, ?orderby=menu_order или похожие вариации, проблема обычно не в самом WordPress, а в том, как тема, плагин фильтрации или поиск формируют ссылки. Поисковик видит десятки почти одинаковых страниц, а вы получаете размытый краулинговый бюджет и дубли в отчётах.

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

Как понять, что дубли идут именно из параметров

Сначала проверьте, какие URL реально попали в индекс или в обход поискового робота. Для этого достаточно посмотреть:

  • отчёт «Страницы» в Google Search Console;
  • логи сервера или статистику обхода, если они доступны;
  • поиск по сайту через site:example.com с типичными параметрами;
  • HTML исходник страниц фильтрации: есть ли там каноникал, мета robots и ссылки с параметрами в навигации.

Типичный признак проблемы: одна и та же категория доступна как /catalog/, /catalog/?sort=price, /catalog/?filter_size=m, /catalog/?utm_source=.... Если такие адреса отдаются с кодом 200 и не нормализуются, поисковик может индексировать их как отдельные страницы.

Что считать нормальным, а что — лишним

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

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

Диагностика: где именно рождаются лишние URL

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

  • Проверьте шаблоны архива и категорий: не добавляет ли тема сортировку через GET-параметры.
  • Посмотрите настройки плагина фильтров: многие дают опцию «SEO-friendly URLs», но при этом всё равно оставляют старые параметры.
  • Проверьте, не генерирует ли форма поиска URL с параметрами в адресной строке.
  • Если есть кастомный код, найдите вызовы add_query_arg() и remove_query_arg().

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

Пошаговое решение

1. Закройте мусорные параметры в robots.txt

Этот способ полезен для массовых шаблонных параметров, которые не несут ценности для поиска. Например, UTM, сортировка, служебные флаги. Важно: robots.txt не удаляет уже проиндексированные URL, он только ограничивает обход.

User-agent: *
Disallow: /*?sort=
Disallow: /*?orderby=
Disallow: /*?filter_
Disallow: /*?utm_

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

2. Добавьте noindex для страниц, которые должны открываться пользователю

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

В WordPress это можно сделать через wp_robots:

add_filter('wp_robots', function ($robots) {
    if (!empty($_GET['sort']) || !empty($_GET['orderby']) || !empty($_GET['filter_color'])) {
        $robots['noindex'] = true;
        $robots['follow'] = true;
    }

    return $robots;
});

Смысл простой: если в URL есть выбранные параметры фильтра, страница не должна попадать в индекс, но ссылки на ней можно продолжать обходить.

3. Укажите канонический URL на основную версию

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

add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_archive() || is_tax() || is_category()) {
        $canonical = remove_query_arg(array('sort', 'orderby', 'filter_color', 'filter_size'));
    }

    return $canonical;
}, 10, 2);

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

4. Уберите параметры из ссылок, если они не нужны

Самый чистый вариант — не порождать мусорные URL вообще. Если сортировка или фильтр не должны индексироваться и не обязаны сохраняться в адресной строке, лучше строить ссылки без GET-параметров.

$base_url = get_term_link($term);
$url = add_query_arg(array(
    'sort' => 'price',
    'filter_color' => 'blue',
), $base_url);

// Если параметр нужен только для JS, не выводите его в href.
// Передавайте значение через data-атрибут:
echo '<a href="' . esc_url($base_url) . '" data-sort="price">Сортировать по цене</a>';

Если фильтр работает на JavaScript, это часто лучший путь: пользователь получает интерактивность, а поисковик — чистый URL.

Какой способ выбрать в реальном проекте

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

Если у вас уже есть плагин фильтрации, сначала проверьте его настройки. Многие решения умеют:

  • отключать индексирование параметров;
  • ставить canonical на базовую категорию;
  • генерировать ЧПУ вместо GET-параметров;
  • скрывать служебные страницы от поисковиков.

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

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

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

  1. Откройте URL с параметром в браузере и убедитесь, что страница доступна.
  2. Посмотрите исходный код: есть ли noindex и правильный canonical.
  3. Проверьте заголовки ответа, если используете серверные правила.
  4. Сравните базовый URL и URL с параметром: не меняется ли основной контент.
  5. В Google Search Console отправьте проверку URL и посмотрите, как робот видит страницу.

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

curl -I 'https://example.com/catalog/?sort=price'

И отдельно посмотреть HTML:

curl -s 'https://example.com/catalog/?sort=price' | grep -iE 'canonical|robots'

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

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

Закрыли всё в robots.txt и ждёте удаления из индекса

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

Ставите noindex на все фильтры без разбора

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

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

Иногда тема или плагин формируют canonical из текущего URL, включая GET-параметры. Это почти бесполезно. Канонический адрес должен вести на чистую основную версию.

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

Если в меню, фильтрах или кнопках всё ещё есть старые URL, поисковик продолжит их находить. После правки проверьте не только мета-теги, но и все внутренние ссылки на странице.

Смешали SEO и аналитику

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

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

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

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

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

Как закрыть от индексации параметры фильтров в WordPress
26.08.2026
Как закрыть страницы авторов в WordPress без потери индексации полезного контента
16.08.2026
Как закрыть страницы поиска WordPress от индексации без поломки внутреннего поиска
19.08.2026
Как закрыть от индексации старые версии страниц WordPress после смены slug
23.08.2026
Как закрыть дубли страниц от пагинации в WordPress через robots, noindex и canonical
13.08.2026