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

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

Как понять, что проблема именно в параметрах URL

Сначала не трогайте robots.txt и не ставьте массовый noindex наугад. Проверьте, какие именно URL уже попали в индекс и откуда они берутся. Обычно это видно в Google Search Console, в логах сервера и в результатах поиска по сайту.

Признаки, которые можно проверить руками

  • в индексе есть URL с одинаковым путем, но разными параметрами;
  • внутренние ссылки генерируют параметры сортировки, фильтрации или отслеживания;
  • страницы поиска WordPress открываются как обычные URL и индексируются;
  • в отчетах Search Console растет число «Просканировано, но не проиндексировано» или «Дубликат, Google выбрал другой канонический URL»;
  • в логах много запросов к URL, которые не должны быть посадочными страницами.

Быстрая диагностика через поиск и консоль

Проверьте несколько типовых запросов в поиске:

site:example.com inurl:?
site:example.com inurl:sort=
site:example.com inurl:filter=
site:example.com inurl:replytocom=

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

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

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

Подход Когда использовать Плюсы Минусы
Удалить параметр из генерации ссылок UTM, лишние tracking-параметры, внутренние ссылки плагинов Убирает причину дубля Нужно найти источник генерации
Canonical на чистый URL Сортировка, фильтры, страницы с альтернативным представлением Склеивает сигналы Не всегда мешает обходу дублей
noindex,follow Служебные страницы, поиск, некоторые фильтры Прямо говорит поисковику не индексировать Нужно не закрыть полезные страницы по ошибке

Пошаговое решение без лишнего риска

Ниже — рабочая схема, которую удобно применять по очереди. Сначала убираем источник дубля, потом ставим каноникал, и только если этого недостаточно — добавляем noindex.

Шаг 1. Уберите параметры из внутренних ссылок

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

<?php
// Пример: убираем tracking-параметры из внутренней ссылки перед выводом.
function wpmobile_clean_internal_url( $url ) {
    $parts = wp_parse_url( $url );

    if ( empty( $parts['scheme'] ) || empty( $parts['host'] ) ) {
        return $url;
    }

    $allowed = array( 'page', 'paged', 's' );
    $query   = array();

    if ( ! empty( $parts['query'] ) ) {
        wp_parse_str( $parts['query'], $query );
        $query = array_intersect_key( $query, array_flip( $allowed ) );
    }

    $clean = $parts['scheme'] . '://' . $parts['host'];
    if ( ! empty( $parts['path'] ) ) {
        $clean .= $parts['path'];
    }
    if ( ! empty( $query ) ) {
        $clean .= '?' . http_build_query( $query );
    }

    return $clean;
}

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

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

Если параметр меняет только представление, а не смысл страницы, canonical должен указывать на чистую версию. Для WordPress это можно сделать через wp_head, не ломая основную логику темы.

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

    $uri = isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : '';
    if ( false === strpos( $uri, '?' ) ) {
        return;
    }

    $current = home_url( add_query_arg( array(), $uri ) );
    $clean   = remove_query_arg( array_keys( $_GET ), $current );

    if ( $clean && $clean !== $current ) {
        echo '<link rel="canonical" href="' . esc_url( $clean ) . '" />' . "\n";
    }
}, 1 );

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

Шаг 3. Закройте служебные URL через robots meta

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

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

    if ( isset( $_GET['sort'] ) || isset( $_GET['filter'] ) || isset( $_GET['replytocom'] ) ) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
}, 5 );

Если у вас уже стоит SEO-плагин, сначала проверьте, не делает ли он это сам. Дублировать мета-теги не нужно: поисковик увидит конфликтующие сигналы, а вы получите лишнюю путаницу в отладке.

Что делать с UTM и другими tracking-параметрами

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

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

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

После правок не ждите мгновенного эффекта. Сначала проверьте HTML, потом обход, потом индексацию.

  • откройте проблемный URL с параметром и убедитесь, что в <head> есть нужный canonical или noindex;
  • проверьте, что чистая версия страницы не получила случайный noindex;
  • в Search Console отправьте на проверку несколько URL с параметрами и без них;
  • посмотрите, уменьшилось ли число дублей в отчете по страницам;
  • проверьте исходный код и HTTP-ответ через curl -I, если нужно убедиться в заголовках.
curl -I "https://example.com/page/?sort=price"
curl -I "https://example.com/page/"

Если вы используете заголовок X-Robots-Tag на уровне сервера или плагина, проверьте именно ответ сервера, а не только HTML. Иногда мета-тег в шаблоне есть, а заголовок на уровне кеша или CDN его перекрывает.

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

Закрыли в robots.txt то, что нужно было склеить

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

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

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

Оставили дубли в sitemap

Если в карту сайта попадают URL с параметрами, поисковик получает противоречивый сигнал: вы одновременно просите индексировать и закрываете страницу. Проверьте генератор sitemap в SEO-плагине и исключите служебные адреса.

Сломали пагинацию

Иногда разработчики удаляют все query-параметры без разбора и ломают страницы ?paged=2 или фильтрацию архивов. Для пагинации и сортировки нужен отдельный разбор, а не массовое удаление всего, что стоит после ?.

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

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

  • не добавляйте tracking-параметры во внутренние ссылки;
  • не используйте один и тот же URL с разными параметрами как постоянный адрес в шаблонах;
  • проверяйте, не создает ли плагин отдельные URL для сортировки и фильтрации без необходимости;
  • если используете кеш, убедитесь, что он не кеширует бесконечное число вариантов одной страницы из-за query string;
  • для массовой чистки дублей и технических мета-тегов удобно использовать плагины уровня Clearfy Pro, но только после проверки, какие правила уже есть в теме и SEO-плагине: https://wpshop.ru/plugins/clearfy?utm_source=wpmobile.ru&utm_medium=article&utm_campaign=kak-nastroit-noindex-dlya-stranic-s-parametrami-v-wordpress

Когда лучше не писать код вручную

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

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

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

⭐⭐⭐⭐⭐
Как отключить архивы дат в WordPress без потери индексации важных страниц
11.09.2026
Как создать адаптивное меню в WordPress для мобильных устройств: практическое руководство
16.09.2026
Как закрыть от индексации страницы автора в WordPress без поломки SEO
04.09.2026
Как использовать хуки для удаления кеша и оптимизации на мобильных устройствах WordPress
02.10.2026
Как ускорить загрузку мобильного WordPress сайта с помощью Service Worker
16.09.2026
×
Прокачай свой сайт WordPress!

WordPress

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

Создай сайт своей мечты ⋙