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

Страницы с параметрами в URL — типичная причина мусорной индексации в WordPress. Фильтры, сортировки, UTM-метки, поисковые запросы внутри сайта, страницы пагинации с параметрами — всё это может создавать десятки почти одинаковых URL. В итоге в индексе оказываются дубли, а поисковик тратит краулинговый бюджет не туда, куда нужно.

Задача здесь не в том, чтобы «запретить всё подряд», а в том, чтобы оставить в индексе только те URL, которые реально несут отдельную ценность. Для остального — корректный noindex, canonical и, где уместно, запрет обхода через robots.txt.

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

Обычно её видно не по одной метрике, а по набору симптомов:

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

Если у вас интернет-магазин на WooCommerce, каталог с фильтрами или сайт с внутренним поиском, проблема почти гарантированно появится. Но даже на обычном контентном сайте UTM-параметры и технические query string могут раздувать индекс.

Что именно считать проблемой

Не каждый параметр нужно закрывать. Например, ?replytocom= часто создаёт дубли комментариев, а ?utm_source= обычно не должен попадать в индекс. Но если параметр меняет содержимое страницы осмысленно и даёт отдельную посадочную, его нельзя закрывать автоматически.

Перед изменениями выпишите список параметров и разделите их на три группы:

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

Какой способ выбрать: плагин, код или robots.txt

Для WordPress есть три рабочих подхода. Они не взаимоисключающие, но решают разные задачи.

ПодходКогда использоватьОграничения
Плагин SEO/чисткиНужно быстро закрыть типовые параметры и не писать кодНе всегда удобно для точечных правил
Код в теме или мини-плагинеНужна точная логика по конкретным параметрамТребует проверки и поддержки
robots.txtНужно снизить обход мусорных URLНе убирает URL из индекса сам по себе

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

Пошаговое решение для WordPress

1. Закройте служебные параметры от индексации

Если параметр не должен ранжироваться, на таких страницах должен быть noindex, follow. Для этого можно добавить логику в functions.php дочерней темы или в небольшой mu-plugin.

<?php
add_action('wp_head', function () {
    if (!is_admin() && !empty($_GET)) {
        $blocked_params = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'replytocom'];

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

Это простой вариант для служебных меток. Он не решает всё, но уже убирает из индекса типовые URL с UTM и комментариями.

2. Добавьте canonical на чистый URL

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

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_singular() && !empty($_GET)) {
        $blocked_params = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'replytocom'];
        foreach ($blocked_params as $param) {
            if (isset($_GET[$param])) {
                return get_permalink($post);
            }
        }
    }

    return $canonical;
}, 10, 2);

Смысл здесь простой: если пользователь пришёл по размеченной ссылке, поисковик должен видеть основную страницу, а не её параметрическую копию.

3. Ограничьте обход мусорных параметров в robots.txt

Robots.txt не убирает URL из индекса, но помогает сократить обход заведомо лишних адресов. Это особенно полезно для параметров поиска и фильтров.

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

Важно: не копируйте такие правила вслепую. Если у вас часть страниц реально живёт на параметрах, их нельзя закрывать через robots.txt без анализа.

4. Для внутренних поисков и фильтров используйте отдельную логику

Страницы поиска по сайту с параметром ?s= почти всегда не должны индексироваться. То же касается фильтров каталога, если они создают бесконечное число комбинаций. В этом случае лучше либо ставить noindex на все результаты поиска, либо переводить важные фильтры в отдельные ЧПУ-страницы.

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

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

Проверка нужна не только в браузере, но и в исходном коде, и в Search Console. Иначе легко получить ситуацию, когда правило написано, но не срабатывает на нужных шаблонах.

  • Откройте URL с параметром, например ?utm_source=test.
  • Проверьте исходный код страницы: должен появиться <meta name="robots" content="noindex,follow" />.
  • Убедитесь, что canonical указывает на чистый URL без параметров.
  • Проверьте ответ сервера и отсутствие редиректов, если они не нужны.
  • В Search Console отправьте проверку URL и дождитесь переобхода.

Если используете командную строку, удобно быстро посмотреть заголовки и canonical через curl:

curl -I "https://example.com/page/?utm_source=test"

А сам HTML можно проверить так:

curl -s "https://example.com/page/?utm_source=test" | grep -i "robots\|canonical"

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

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

Ставят noindex, но оставляют мусорный canonical

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

Закрывают всё через robots.txt

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

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

Иногда под раздачу попадают страницы фильтров, которые реально дают трафик. Перед закрытием проверьте, есть ли у URL поисковые показы и клики. Если фильтр приносит стабильный спрос, лучше сделать для него отдельную посадочную, а не запрещать индексацию.

Конфликтуют правила плагина и кода

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

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

Не вешайте тяжёлую логику на каждый запрос в wp_head. Для типовых параметров достаточно простых проверок isset($_GET[...]). Не делайте запросы в базу и не вызывайте сложные функции без необходимости.

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

И ещё один практический момент: если у вас много параметрических URL, проверьте логи обхода и Search Console после внедрения. Иногда часть мусорных страниц остаётся в индексе просто потому, что их ещё не переобошли. Это нормально, если сигнал уже исправлен.

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

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

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

Как отключить архив меток в WordPress без потери индексации
10.09.2026
Как запретить индексацию страниц с параметрами в WordPress без потери полезного трафика
19.09.2026
Как отключить архив дат в WordPress без ломки индексации
15.09.2026
Как отключить кеширование страниц в WordPress для входов и админки
22.09.2026
Как отключить архив авторов в WordPress без потери SEO
07.09.2026
×

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

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

пишет статьи

готовит SEO

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

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