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

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

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

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

Сначала важно отличить настоящий дубль от нормальной структуры сайта. Например, страницы пагинации рубрик /category/news/page/2/ сами по себе не ошибка. Ошибка начинается, когда в индекс попадают варианты одного и того же контента: ?replytocom=, ?utm_, сортировки, фильтры, версии с и без слеша, а также архивы, которые дублируют основной контент без добавочной ценности.

Быстрая диагностика в Search Console и вручную

Проверьте такие признаки:

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

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

Какие дубли в WordPress встречаются чаще всего

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

Источник дубляЧто происходитЧто делать
Параметры URLОдна и та же страница доступна с ?utm_, ?replytocom, сортировкой и фильтрамиКаноникал, редиректы, запрет индексации для мусорных параметров
Архивы таксономийТеги и рубрики повторяют друг друга или дублируют контент записейОставить только полезные архивы, остальные закрыть или удалить
ПагинацияСтраницы /page/2/ и далее индексируются как отдельные посадочныеПроверить canonical и мета-robots, не закрывать всё подряд
Технические версииHTTP/HTTPS, www/non-www, слеш/без слеша, index.phpСвести всё к одному варианту через редиректы

Пошаговое решение: от чистки URL до каноникализации

Шаг 1. Приведите сайт к одному базовому варианту адресов

Если у сайта есть несколько доступных версий главной и внутренних страниц, сначала настройте единый формат. Это не задача для robots.txt. Здесь нужны 301-редиректы на уровне сервера или через WordPress, если другого варианта нет.

Проверьте:

  • один протокол — только HTTPS;
  • один хост — либо www, либо без него;
  • один формат слеша в конце URL;
  • нет дублей через index.php в адресе.

Если редиректы уже есть, убедитесь, что они не создают цепочки. Например, http://www.site.ru/page должен вести сразу на финальный адрес, а не через два-три промежуточных шага.

Шаг 2. Уберите мусорные параметры из индекса

Параметры вроде ?utm_source= полезны для аналитики, но не должны создавать отдельные страницы в поиске. То же касается ?replytocom в комментариях и некоторых параметров сортировки, если они не несут самостоятельной ценности.

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

Для точечной очистки можно использовать фильтр wpseo_canonical, если у вас установлен Yoast SEO, либо аналогичный механизм в другом SEO-плагине. Ниже пример для WordPress без привязки к конкретному SEO-плагину: убираем UTM и replytocom из canonical на уровне темы или мини-плагина.

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

    $parts = wp_parse_url($canonical);
    if (empty($parts['query'])) {
        return $canonical;
    }

    parse_str($parts['query'], $query);

    foreach (array_keys($query) as $key) {
        if (str_starts_with($key, 'utm_') || $key === 'replytocom') {
            unset($query[$key]);
        }
    }

    $new_query = http_build_query($query);
    $canonical = $parts['scheme'] . '://' . $parts['host'] . ($parts['path'] ?? '');

    if (!empty($new_query)) {
        $canonical .= '?' . $new_query;
    }

    return $canonical;
}, 10, 2);

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

Шаг 3. Оставьте в индексе только полезные архивы

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

  • Рубрики — обычно оставляют, если у них есть нормальные описания, перелинковка и уникальная ценность.
  • Теги — часто закрывают от индексации или удаляют, если они создаются хаотично.
  • Архивы автора — на сайте с одним автором обычно не нужны в индексе.
  • Архивы по датам — редко полезны для SEO, если это не новостной проект с сильной датировкой.

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

Шаг 4. Настройте robots.txt и мета-robots без фанатизма

robots.txt не убирает уже проиндексированные URL из поиска. Он только ограничивает обход. Поэтому закрывать им всё подряд — плохая идея. Для дублей лучше использовать canonical, 301-редиректы и мета-robots noindex,follow там, где страница должна быть доступна пользователю, но не нужна в выдаче.

Пример: если у вас есть страницы тегов, которые должны открываться для посетителей, но не индексироваться, логичнее поставить noindex,follow, а не закрывать их в robots.txt. Тогда поисковик сможет пройти по ссылкам внутри страницы.

<?php
add_filter('wp_robots', function (array $robots) {
    if (is_tag() || is_author() || is_date()) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
});

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

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

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

  • откройте проблемный URL и проверьте, что он ведёт на канонический адрес или отдаёт нужный meta robots;
  • посмотрите исходный код страницы: canonical должен указывать на чистую версию;
  • проверьте HTTP-статус через curl -I или любой аналогичный инструмент;
  • в Search Console отправьте на повторную проверку ключевые страницы;
  • через несколько дней сравните число URL с параметрами в отчёте по индексированию.

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

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

В ответе должен быть либо 301 на чистый URL, либо финальная страница с корректным canonical. Если видите 200 на параметрическом URL без canonical, проблема ещё не решена.

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

Закрыли всё в robots.txt и ждёте исчезновения дублей

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

Поставили noindex на нужные страницы

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

Сделали canonical на главную вместо чистой версии страницы

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

Удалили теги, но не настроили редиректы

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

Использовали плагины для дублей поверх уже настроенного SEO-плагина

Когда два плагина одновременно управляют canonical, meta robots или редиректами, результат непредсказуем. Оставьте один источник истины: либо SEO-плагин, либо собственный код, либо отдельный инструмент для редиректов.

Безопасность и производительность: что важно не испортить

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

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

Для сайтов с большим количеством архивов и технических страниц полезно периодически пересматривать, какие типы контента вообще должны существовать. Иногда правильное решение — не «закрыть от индексации», а убрать лишний источник дублей на уровне структуры сайта.

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

После внедрения не спешите ждать мгновенного эффекта. Сначала убедитесь, что новые правила реально применяются, потом отслеживайте переобход и изменение статуса URL в Search Console. Для дублей важна не скорость, а последовательность: один канонический адрес, один понятный сигнал для поисковика и минимум технического шума.

Как закрыть от индексации страницы автора в WordPress без поломки SEO
01.09.2026
Как устранить дубли страниц в WordPress из-за фильтров, пагинации и параметров URL
05.09.2026