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

Проблема с URL-параметрами в WordPress обычно выглядит одинаково: в индексе появляются десятки и сотни почти одинаковых страниц с ?utm_, ?sort=, ?replytocom=, ?filter= и другими хвостами. Для поисковика это разные адреса, а для сайта — один и тот же контент. В итоге расползается краулинговый бюджет, в отчётах растут дубли, а в Search Console появляются странные URL, которые вы не планировали продвигать.

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

Когда проблема действительно в параметрах

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

Что смотреть в первую очередь

  • отчёт Страницы в Google Search Console: есть ли URL с параметрами в статусе «Просканировано, но не проиндексировано» или «Дубли, Google выбрал другой канонический URL»;
  • лог сервера или отчёт краулинга: какие параметры чаще всего обходят боты;
  • исходный код проблемной страницы: есть ли rel="canonical" и не указывает ли он на сам URL с параметром;
  • ответ сервера: не отдает ли страница с параметром полноценный индексируемый HTML без ограничений.

Если у вас уже есть много страниц с параметрами в индексе, не стоит начинать с массового удаления URL из Search Console. Сначала нужно исправить источник дублей, иначе они вернутся.

Какие параметры можно закрывать без риска

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

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

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

Пошаговое решение: закрываем параметры от индексации

Шаг 1. Составьте список параметров

Не пытайтесь закрыть всё подряд. Выпишите только те параметры, которые:

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

Чаще всего это utm_source, utm_medium, utm_campaign, gclid, fbclid, replytocom, а также технические параметры сортировки и фильтрации, если они не должны индексироваться.

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

Если у вас есть собственная логика в теме или плагине, можно отдать noindex,follow только для URL с нужными параметрами. Ниже пример для wp_head. Он не трогает все страницы подряд и срабатывает только при наличии заданных параметров.

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

    $blocked_params = array( 'utm_source', 'utm_medium', 'utm_campaign', 'gclid', 'fbclid', 'replytocom', 'sort', 'filter' );

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

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

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

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

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

    $ignored = array( 'utm_source', 'utm_medium', 'utm_campaign', 'gclid', 'fbclid', 'replytocom' );
    $has_ignored = false;

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

    if ( $has_ignored ) {
        return get_permalink( $post );
    }

    return $canonical;
}, 10, 2 );

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

Шаг 4. Проверьте, не создаются ли ссылки с параметрами внутри сайта

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

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

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

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

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

Если у вас есть доступ к командной строке, полезно проверить ответ сервера напрямую:

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

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

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

Закрывают параметры в robots.txt и ждут полного эффекта

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

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

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

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

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

Меняют canonical, но не проверяют шаблон темы

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

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

Если параметров много, не пытайтесь решать всё только на уровне HTML. Лишние URL с параметрами увеличивают число запросов ботов, а это уже нагрузка на сервер и базу. На высоконагруженных сайтах полезно:

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

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

Когда лучше не закрывать параметр, а делать редирект

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

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

Рабочая схема обычно такая: ненужные параметры — в редирект, служебные и рекламные — в noindex,follow плюс canonical на чистый URL, а параметры, которые реально меняют контент, — отдельно анализируются и не закрываются автоматически.

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

⭐⭐⭐⭐⭐
Как добавить поддержку WebP в WordPress без плагинов
03.10.2026
Как отключить архивы дат в WordPress и убрать лишние страницы из индекса
21.09.2026
Как настроить robots.txt в WordPress для закрытия служебных разделов
11.09.2026
Как создать автоматическое отключение подписок в WordPress по условиям
28.09.2026
WooCommerce: автоматическое изменение стоимости товаров при акциях без плагинов
30.09.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »