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

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

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

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

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

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

Быстрая диагностика

Проверьте несколько вещей вручную и через инструменты. В браузере откройте разные архивы и сравните HTML-код заголовка, canonical и robots meta. В Search Console посмотрите разделы с проиндексированными страницами и исключёнными URL. Если сайт большой, полезно выгрузить список URL из краулера и сгруппировать их по шаблону.

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

Что именно нужно исправить в WordPress

Универсального решения нет: часть архивов лучше закрыть от индексации, часть — склеить canonical, а часть — удалить через 301 редирект. Логика простая: если страница не несёт самостоятельной ценности, не держите её в индексе.

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

Пошаговое решение без лишних плагинов

1. Закрываем слабые архивы от индексации

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

add_action('wp_head', function () {
    if (is_tag() || is_author()) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
});

Этот вариант годится, если тема или SEO-плагин не дают удобной настройки. Но если у вас уже есть Yoast SEO, Rank Math или аналог, лучше использовать штатные настройки, а не дублировать логику в коде.

2. Склеиваем страницы вложений

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = get_post_field('post_parent', get_queried_object_id());

        if ($parent) {
            wp_redirect(get_permalink($parent), 301);
            exit;
        }

        wp_redirect(home_url('/'), 301);
        exit;
    }
});

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

3. Убираем дубли от параметров в URL

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

add_filter('wp_get_canonical_url', function ($canonical, $post) {
    if (is_admin() || ! $canonical) {
        return $canonical;
    }

    $canonical = remove_query_arg(array('utm_source', 'utm_medium', 'utm_campaign', 'sort', 'filter'), $canonical);

    return $canonical;
}, 10, 2);

Здесь важно не переборщить: не все query-параметры можно бездумно вырезать. Если параметр влияет на содержимое страницы, canonical должен указывать на наиболее логичную основную версию, а не просто на главную.

4. Приводим архивы категорий к нормальной структуре

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

Если вы работаете с кастомной темой, проверьте шаблоны archive.php, tag.php, author.php и attachment.php. Иногда проблема не в SEO-настройках, а в том, что шаблон выводит одинаковый контент для разных типов архивов.

Когда нужен редирект, а когда достаточно noindex

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

Если сомневаетесь, задайте себе два вопроса: есть ли у страницы самостоятельная ценность и есть ли внешние ссылки на неё. Если ценности нет, а ссылки есть, чаще нужен 301. Если ценность есть, но индексировать её не нужно, используйте noindex.

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

После правок не ограничивайтесь визуальной проверкой. Откройте несколько проблемных URL и проверьте:

  • какой canonical отдается в HTML;
  • есть ли meta robots с noindex;
  • не возвращает ли URL 200 там, где должен быть 301;
  • не остались ли страницы в sitemap.xml;
  • не появляются ли новые дубли после очистки кеша.

Удобно проверить заголовки через curl:

curl -I https://example.com/attachment-page/
curl -s https://example.com/some-archive/ | grep -i canonical

Если у вас включён кеш, обязательно очистите его после изменений. Иначе можно увидеть старый canonical или старый robots meta и решить, что код не сработал.

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

Закрыли архив в robots.txt и забыли про canonical

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

Поставили noindex на всё подряд

Иногда закрывают и полезные категории, и страницы пагинации, и авторские архивы, не проверив трафик. В результате сайт теряет видимость там, где архивы реально приводили переходы. Сначала смотрите данные аналитики и Search Console, потом меняйте правила.

Редиректят attachment на главную

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

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

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

Что сделать для безопасности и производительности

Если вы решаете проблему кодом, держите изменения в дочерней теме или в небольшом mu-plugin, а не в файлах основной темы. Так обновление не сотрёт правки. Перед выкладкой на боевой сайт проверьте код на staging-окружении и убедитесь, что нет циклических редиректов.

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

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

Как удалить неиспользуемые варианты продуктов WooCommerce без потери данных
25.06.2026
Как удалить редирект цикл в WordPress: пошаговое руководство
19.04.2026
Как автоматически удалять неактивные продукты в WooCommerce
03.05.2026
Как автоматически удалять неактивных пользователей в WordPress
16.03.2026
Оптимизация базы данных WordPress под реальные нагрузки на сайте
17.11.2025