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

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

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

Где обычно появляются дубли в WordPress

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

Типовые источники дублей

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

Диагностика: как понять, что это именно дубли

Не стоит закрывать всё подряд. Сначала проверьте, какие URL уже есть в индексе и откуда они берутся. Для этого удобно смотреть отчёты Google Search Console, а на самом сайте — HTML-код страницы и sitemap. Если у нескольких URL одинаковый или почти одинаковый title, description и основной текст, это уже кандидат на дубль.

Полезно проверить и техническую сторону: есть ли у страниц canonical, не отдают ли архивы статус 200 без смысла, не попадают ли в sitemap страницы меток, которые не нужны в поиске. На этом этапе часто выясняется, что проблема не в контенте, а в шаблоне темы.

// Быстрая проверка canonical и robots на фронтенде через шаблон темы или временный mu-plugin
add_action('wp_head', function () {
    if (is_tag() || is_date() || is_author()) {
        return;
    }

    // Для диагностики можно временно вывести комментарий в HTML
    echo "<!-- canonical: " . esc_url( wp_get_canonical_url() ) . " -->\n";
});

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

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

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

ПодходКогда подходитКомпромисс
SEO-плагинНужно быстро закрыть архивы и метки без кодаМеньше контроля над логикой темы
Код в теме или mu-pluginНужна точечная настройка под проектТребует проверки после обновлений
Комбинированный вариантЧасть правил в плагине, часть в кодеНужно следить, чтобы правила не конфликтовали

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

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

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

Если у вас уже стоит SEO-плагин, не дублируйте этот тег вручную, иначе можно получить конфликт или два одинаковых meta robots. В таком случае оставьте только один источник правил.

2. Уберите из sitemap страницы, которые не должны индексироваться

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

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

3. Настройте canonical для похожих страниц

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

add_filter('get_canonical_url', function ($canonical, $post) {
    if ($post instanceof WP_Post && has_term('', 'post_tag', $post)) {
        return get_permalink($post);
    }

    return $canonical;
}, 10, 2);

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

4. Отключите страницы вложений, если они не нужны

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent_id = wp_get_post_parent_id(get_the_ID());

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

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

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

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

  • откройте несколько архивов меток, дат и авторов и проверьте meta robots в исходном коде;
  • убедитесь, что закрытые страницы не попали в sitemap;
  • проверьте canonical у записей и архивов;
  • посмотрите в Search Console, исчезают ли лишние URL из отчёта по страницам;
  • проверьте, что редиректы с attachment-страниц отдают код 301, а не 302;
  • сравните количество индексируемых URL до и после изменений, но делайте это не по одному дню, а по динамике.

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

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

Закрыли страницу в robots.txt, но она всё равно в индексе

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

Поставили noindex и одновременно убрали страницу из sitemap

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

Сделали редирект со всех архивов на главную

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

Дубли остались из-за параметров URL

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

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

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

В таком случае сначала отключите подозрительный плагин на тестовой копии сайта и проверьте, исчезает ли дубль. Если проблема в теме, ищите шаблоны archive.php, tag.php, author.php и логику вывода мета-данных. Часто достаточно убрать лишний текст с архивов или перенести его в одну каноническую страницу.

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

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

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

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

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

Как закрыть страницы поиска WordPress от индексации
15.09.2026
Как правильно сделать удалённый раздел админки WordPress для клиентов
02.10.2026
Как отключить индексацию отдельных страниц WordPress без поломки сайта
22.08.2026
Как автоматически удалять старые изображения в медиабиблиотеке WordPress
17.09.2026
Как запретить индексацию страниц архива авторов и дат в WordPress
25.08.2026