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

Если в Search Console появляются десятки похожих URL с ?sort=, ?filter=, ?utm_ или другими параметрами, проблема обычно не в «плохой индексации», а в том, что сайт сам генерирует слишком много вариантов одной и той же страницы. Для WordPress это типичный сценарий: архивы, поиск, фильтры, пагинация, сортировка и служебные параметры начинают спорить между собой за канонический адрес.

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

Как понять, что у вас именно дубли, а не полезные страницы

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

Диагностика в админке и через инструменты поиска

Посмотрите на такие признаки:

  • в индексе есть URL с параметрами, которые не нужны для поиска;
  • в отчётах видны страницы с одинаковым title и description, но разными адресами;
  • одна и та же статья или архив открывается с ?amp, ?replytocom, ?sort= или похожими хвостами;
  • поисковик выбирает не тот canonical, который вы ожидали;
  • внутренние ссылки ведут на разные версии одной страницы.

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

Какие варианты решения работают в WordPress

Для дублей обычно используют три подхода: canonical, meta robots и запрет в robots.txt. У каждого свой сценарий.

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

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

Пошаговое решение: закрываем параметры и фильтры без лишнего риска

Шаг 1. Определите список параметров

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

Шаг 2. Задайте canonical на основную версию

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

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

    if ( empty( $_SERVER['REQUEST_URI'] ) ) {
        return $canonical;
    }

    $url = home_url( wp_parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ) );

    return esc_url_raw( $url );
} );

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

Шаг 3. Добавьте noindex для технических комбинаций

Для страниц поиска, сортировки и некоторых фильтров лучше поставить noindex,follow. Это можно сделать через SEO-плагин или кодом на уровне шаблона. Пример для wp_head:

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

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

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

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

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

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

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

Если дубли создаёт тема или плагин

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

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

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

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

  • Откройте проблемный URL с параметром и проверьте исходный код: должен быть canonical на основную страницу или meta robots noindex,follow.
  • Проверьте ответ сервера и заголовки, если используете серверные правила или кэш.
  • В Search Console отправьте проверку URL и посмотрите, как робот видит canonical и индексируемость.

Если страница всё ещё попадает в индекс, проверьте, не остались ли на неё внутренние ссылки без параметров и не создаёт ли кэш старую версию HTML. Иногда после правки нужно очистить кэш страницы, кэш объекта и CDN.

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

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

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

Ставят canonical на главную страницу для всех дублей

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

Закрывают параметры, которые нужны для аналитики и функциональности

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

Не учитывают кэш и CDN

После изменения canonical или meta robots старый HTML может ещё отдаваться из кэша. Если проверка показывает старые теги, сначала очистите кэш плагина, сервера и CDN, а потом повторите тест.

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

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

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

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

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

Вам также может быть интересно:

Решение проблем с очисткой кешей в WordPress без плагинов
10.12.2025
Автоматическое управление ролями пользователей в WordPress с примерами кода
16.03.2026
Как отключить архивы дат в WordPress без потери индексации
25.09.2026
Автоматическое отключение ненужных виджетов в WordPress: практическое руководство
05.02.2026
Автоматическое управление файлом robots.txt в WordPress: настройка и примеры кода
04.03.2026
×

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

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

пишет статьи

готовит SEO

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

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