Как найти и убрать дубликаты страниц в WordPress из-за нескольких archive URL

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

Чаще всего проблема всплывает не в виде одной очевидной ошибки, а как набор косвенных признаков: в индексе появляются лишние URL, в Search Console растет количество «Просканировано, но не проиндексировано», а в отчетах по страницам можно увидеть одинаковые title и description на разных адресах.

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

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

Типичные симптомы

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

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

  1. Откройте исходный код проблемной страницы и найдите <link rel="canonical">.
  2. Сравните canonical с фактическим URL в адресной строке.
  3. Проверьте, не создают ли плагины SEO, фильтров или мультиязычности дополнительные версии архивов.
  4. Посмотрите, не отдает ли сервер редирект на один URL, а каноникал — на другой.

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

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

Не все дубли одинаковы. Одни можно закрыть от индексации, другие лучше склеить редиректом, а третьи — просто убрать из генерации ссылок и sitemap.

СценарийЧто делатьКомпромисс
Два URL ведут на один и тот же архивСделать 301-редирект на канонический адресНужен контроль, чтобы не сломать старые ссылки
Архив полезен, но не должен индексироватьсяПоставить noindex,follow и убрать из sitemapСтраница останется доступной для пользователей
Архив не нужен вообщеОтключить генерацию или закрыть шаблонМожно потерять часть внутренней навигации

Пошаговое решение: от диагностики к исправлению

Шаг 1. Найдите источник альтернативных URL

Начните с темы и активных плагинов. Часто дубли создают не WordPress как таковой, а дополнительные правила в SEO-плагине, фильтры в теме или кастомные rewrite rules. Если сайт большой, проще искать по цепочке: сначала шаблон архива, потом SEO-настройки, потом sitemap.

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

Шаг 2. Определите, что именно нужно оставить в индексе

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

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

Шаг 3. Настройте canonical и noindex там, где это уместно

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

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

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

Шаг 4. Уберите дубли из sitemap

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

Если вы используете Yoast SEO или Rank Math, это обычно делается в их интерфейсе. Если логика кастомная, можно фильтровать список URL перед генерацией sitemap. Главное — не оставлять в карте сайта адреса, которые вы уже закрыли.

Шаг 5. Сделайте редирект для настоящих дублей

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

<?php
add_action('template_redirect', function () {
    if (is_tax('category') && isset($_GET['cat'])) {
        wp_safe_redirect(get_term_link(get_queried_object()), 301);
        exit;
    }
});

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

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

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

  1. Проверьте код ответа через curl -I https://example.com/url/ или любой HTTP-инспектор.
  2. Убедитесь, что дубль отдает 301, а не 200.
  3. Откройте HTML и посмотрите canonical и robots.
  4. Проверьте, исчез ли дубль из sitemap.
  5. В Search Console отправьте на переобход канонический URL и посмотрите, как меняется статус страницы.

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

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

Закрыли архив в robots.txt вместо noindex

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

Поставили noindex, но оставили URL в sitemap

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

Сделали редирект на неканонический адрес

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

Закрыли все архивы подряд

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

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

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

Для сайтов, где нужно одновременно чистить дубли, управлять мета-тегами и убирать лишние архивы, иногда проще использовать набор настроек в одном инструменте вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже в этом случае важно понимать, какие именно URL вы закрываете и почему.

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

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

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

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

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

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

Если после чистки индекса вы видите, что часть архивов все равно не приносит пользы, не держите их «на всякий случай». В WordPress проще один раз упростить структуру, чем потом постоянно лечить последствия лишних URL.

Как отключить дублирующиеся meta robots в WordPress и убрать лишние noindex
18.08.2026
Как закрыть от индексации страницы автора в WordPress через noindex и robots.txt
22.08.2026
Как отключить открытые XML-feeds в WordPress и оставить только нужные каналы
02.09.2026
Как найти и убрать дубликаты страниц в WordPress из-за нескольких archive URL
06.09.2026
Как убрать 404 на страницах пагинации архива в WordPress
25.08.2026