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

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

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

Когда проблема уже есть и как её увидеть

Сначала стоит понять, что именно попало в индекс. Не надо гадать по логам плагина SEO или по ощущениям: проверьте конкретные URL.

Что искать в первую очередь

  • URL с ?s= — страницы внутреннего поиска.
  • URL с ?orderby=, ?sort=, ?filter_ — сортировка и фильтры.
  • URL с UTM и другими маркетинговыми метками: ?utm_source=, ?utm_medium=.
  • Параметры плагинов кэширования, аналитики, языковых переключателей, если они не должны индексироваться.

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

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

Что лучше: robots.txt, noindex или canonical

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

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

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

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

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

Шаг 1. Закрываем внутренний поиск

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

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

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

Шаг 2. Добавляем noindex для URL с параметрами

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

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

    $query = $_GET;
    if (empty($query)) {
        return;
    }

    $noindex_params = array('s', 'orderby', 'sort', 'filter', 'replytocom');
    $has_bad_param = false;

    foreach ($noindex_params as $param) {
        if (isset($query[$param])) {
            $has_bad_param = true;
            break;
        }
    }

    if ($has_bad_param) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
});

Этот пример намеренно простой. В реальном проекте список параметров лучше подстроить под ваш сайт: у интернет-журнала это могут быть одни параметры, у каталога статей — другие. Не копируйте список без проверки.

Шаг 3. Нормализуем canonical

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

<?php
add_filter('get_canonical_url', function ($canonical) {
    if (is_admin() || empty($_GET)) {
        return $canonical;
    }

    $allowed = array('page');
    $current = array_intersect_key($_GET, array_flip($allowed));

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

    return remove_query_arg(array_keys($_GET), $canonical);
});

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

Шаг 4. Ограничиваем обход в robots.txt только для мусорных шаблонов

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

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

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

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

Когда на сайте уже стоит SEO-плагин, часть задачи можно закрыть через интерфейс. Это удобно, если проект поддерживает не разработчик, а редактор или контент-менеджер. Но важно понимать, что плагин должен уметь именно управлять индексированием параметров, а не просто генерировать общие мета-теги.

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

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

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

  • Откройте URL с параметром и проверьте, что в HTML есть noindex,follow.
  • Убедитесь, что canonical ведёт на чистую версию страницы.
  • Проверьте, не появились ли дубли мета-тегов от SEO-плагина и вашего кода одновременно.
  • Посмотрите, не закрыли ли вы случайно страницы пагинации или полезные фильтры.
  • Через несколько дней проверьте отчёты индексации и выборочно повторите поиск по site:.

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

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

Закрыли в robots.txt, но не поставили noindex

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

Сломали сортировку и фильтры

Так бывает, когда в коде без разбора закрывают все URL с вопросительным знаком. В результате пользователь видит фильтр, но поисковик перестаёт понимать структуру сайта, а иногда ломаются и внутренние ссылки. Решение — список разрешённых и запрещённых параметров, а не универсальный запрет.

Canonical указывает на неправильную страницу

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

Дублируются правила SEO-плагина и темы

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

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

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

Ещё несколько рабочих правил:

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

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

Что должно измениться после внедрения

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

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

Как закрыть страницы с параметрами от индексации в WordPress без поломки фильтров и поиска
20.08.2026
Как закрыть дубли страниц от индексации в WordPress без потери нужного трафика
17.08.2026

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас