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

|

Служебные URL с параметрами вроде ?sort=price, ?filter=red, ?replytocom=1 и UTM-меток часто создают лишние страницы в индексе. В результате поисковик видит дубли, а в отчётах по сканированию растёт мусор. На обычном сайте это проявляется не сразу: трафик проседает постепенно, а в Search Console появляются URL, которые вы вообще не считали отдельными страницами.

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

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

Первый сигнал — в индексе появляются адреса с параметрами, которые не несут уникального контента. Это могут быть:

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

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

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

Какие подходы работают на практике

Есть три рабочих варианта, и выбор зависит от того, что именно делает параметр.

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

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

Пошаговое решение через код

Если параметр известен заранее, проще всего отдать для таких страниц мета-тег noindex, follow. Это не ломает доступ пользователю, но даёт поисковику понятный сигнал.

<?php
add_action( 'wp_head', function () {
    $blocked_params = array( 'sort', 'filter', 'replytocom', 'utm_source', 'utm_medium', 'utm_campaign' );

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

Этот вариант подходит, если вы не хотите вмешиваться в шаблоны плагинов и вам достаточно закрыть URL на уровне HTML. Но одного noindex иногда мало: если параметр создаёт дубли, лучше ещё указать канонический адрес.

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

    $remove = array( 'sort', 'filter', 'replytocom', 'utm_source', 'utm_medium', 'utm_campaign' );
    $clean  = remove_query_arg( $remove );

    return $clean ? $clean : $canonical;
} );

Если у вас не Yoast SEO, а другой SEO-плагин, логика та же: нужно вернуть канонический URL без служебных параметров. Важно не подменять canonical на странице поиска, пагинации или фильтра, если там уже есть своя логика.

Когда лучше убрать параметр совсем

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

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

Диагностика: как понять, что решение сработает до переобхода

После внедрения не стоит ждать, пока поисковик сам всё переосмыслит. Проверка делается сразу на уровне HTML и ответа сервера.

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

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

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

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

Такое часто случается, когда условие написано слишком широко. Например, проверяют только наличие $_GET, не ограничивая список параметров. В итоге под noindex попадают страницы поиска, фильтры, пагинация и даже полезные посадочные URL.

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

Canonical указывает на URL с параметром

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

Проверьте, что в canonical нет ? и служебных параметров, если они не нужны для индексации.

Закрывают URL в robots.txt вместо noindex

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

Удаляют параметры, не проверив аналитику

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

Чек-лист перед публикацией правок

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

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

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

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

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

Через несколько дней после правки снова откройте проблемные URL и проверьте:

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

Как успешно отладить проблемы с обновлением в WooCommerce
19.04.2026
Как создать комплексный фильтр для записей WordPress с несколькими условиями
27.02.2026
Как удалить пустые мета поля в WordPress через код и плагины
24.02.2026
Как массово изменить или удалить атрибуты alt и title у изображений в WordPress
19.03.2026
WooCommerce: как автоматически обрабатывать возвраты и отмены заказов
20.07.2026
×
Прокачай свой WordPress!

Скидка -20% на премиум темы и плагины

Воспользоваться сейчас ⋙