Дубли в WordPress часто появляются не на страницах постов, а в архивах: категории, теги, авторы, даты, пагинация, страницы вложений. На сайте это выглядит как нормальная структура, а для поисковика — как несколько почти одинаковых URL с одинаковыми title, description и контентом. В итоге индекс раздувается, а нужные страницы получают меньше веса.
Какие архивы чаще всего дублируются
Проблема обычно не в одном URL, а в наборе похожих адресов. Например, одна и та же запись может быть доступна через архив категории, архив тега, архив автора и через страницу вложения изображения. Если тема ещё и выводит одинаковые заголовки на всех архивах, дубли становятся заметнее.
- архивы тегов, которые повторяют категории;
- страницы авторов на сайтах с одним автором;
- архивы дат, если они не несут отдельной ценности;
- страницы вложений изображений;
- пагинация архивов с одинаковыми мета-тегами;
- служебные URL с параметрами сортировки и фильтрации.
Диагностика: где именно появляется дубль
Сначала нужно понять, это проблема индексации, шаблона или настроек SEO-плагина. Проверка занимает немного времени, если идти по списку.
Что смотреть в первую очередь
- откройте несколько архивов и сравните
<title>иmeta description; - проверьте, не совпадает ли H1 у разных архивов;
- посмотрите, не индексируются ли страницы вложений;
- сравните URL первой страницы архива и страниц пагинации;
- проверьте, не создаёт ли тема отдельные архивы для таксономий, которые дублируют друг друга по смыслу.
Если у вас стоит SEO-плагин, сначала проверьте его настройки. Часто дубли создаёт не WordPress, а шаблон мета-данных: одинаковый title для всех тегов, одинаковый description для страниц 1 и 2 архива, отсутствие canonical на вложениях.
Быстрая проверка через код
Для диагностики удобно временно вывести текущий тип архива и canonical в HTML-комментарий или в лог. Ниже пример, который можно добавить в functions.php на тестовом сайте или в мини-плагин.
add_action('wp_head', function () {
if (is_archive()) {
global $wp_query;
$canonical = wp_get_canonical_url();
echo "\n<!-- archive_type: " . esc_html(get_post_type()) . " -->\n";
echo "<!-- canonical: " . esc_url($canonical) . " -->\n";
echo "<!-- paged: " . intval(get_query_var('paged')) . " -->\n";
}
}, 1);Этот код не решает проблему сам по себе, но помогает быстро увидеть, что реально отдаёт шаблон на разных архивах и страницах пагинации.
Пошаговое решение без потери нужной индексации
Не все архивы нужно закрывать от индексации. Иногда достаточно убрать дублирующие типы архивов и оставить только те, которые реально приводят трафик и помогают навигации.
1. Оставьте в индексе только полезные архивы
Если сайт небольшой и автор один, архив автора часто не нужен. Если теги дублируют категории, часть тегов лучше закрыть от индексации или удалить совсем. Архивы дат на большинстве контентных сайтов тоже редко дают ценность.
В SEO-плагине обычно достаточно:
- закрыть архивы авторов, если автор один;
- закрыть архивы дат, если они не используются как навигация;
- убрать из индекса страницы вложений;
- проверить, что пагинация архивов имеет корректный canonical.
2. Отключите страницы вложений и перенаправьте их на файл или запись
Страницы вложений — частый источник дублей. Пользователь открывает картинку, а WordPress отдаёт отдельную страницу с почти пустым шаблоном. Для SEO это обычно бесполезно.
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_queried_object_id());
if ($parent) {
wp_safe_redirect(get_permalink($parent), 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});Если у вложения есть родительская запись, редирект на неё обычно логичен. Если родителя нет, безопаснее отправить на главную или на релевантный архив, чем оставлять пустую страницу в индексе.
3. Приведите canonical к одному варианту
На архивных страницах canonical должен указывать на саму страницу архива, а не на первую страницу пагинации, если речь идёт о /page/2/ и дальше. Иначе поисковик может склеить разные страницы архива в одну.
Если тема или плагин ломают canonical, проверьте фильтр wpseo_canonical в Yoast SEO или аналогичный механизм в вашем SEO-плагине. Если SEO-плагина нет, WordPress сам отдаёт canonical не во всех сценариях, и тогда лучше подключить его явно через wp_head.
4. Уберите дубли мета-тегов у архивов
Одинаковые title и description на архиве категории, тега и автора — типичная ошибка. Для каждого архива нужен свой шаблон мета-данных или хотя бы разные переменные в шаблоне.
add_filter('document_title_parts', function ($parts) {
if (is_category()) {
$parts['title'] = single_cat_title('', false) . ' — статьи и материалы';
} elseif (is_tag()) {
$parts['title'] = single_tag_title('', false) . ' — публикации по теме';
} elseif (is_author()) {
$parts['title'] = 'Материалы автора ' . get_the_author_meta('display_name', get_queried_object_id());
}
return $parts;
});Это не заменяет SEO-плагин, но помогает, если тема генерирует слишком однообразные заголовки архивов.
Сравнение подходов: плагин, код или шаблон темы
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы и настроить мета-теги | Меньше кода, проще поддержка | Не всегда решает проблему шаблона темы |
| Код в теме/мини-плагине | Нужен точечный контроль над canonical, редиректами и title | Гибко и прозрачно | Требует аккуратного тестирования |
| Правка шаблона архива | Дубли создаёт сама тема | Убирает причину, а не симптом | Нужно понимать иерархию шаблонов WordPress |
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что WordPress реально отдаёт нужные заголовки, canonical и статус индексации.
- откройте архивы в браузере и проверьте исходный код;
- сравните title и description у категорий, тегов и авторов;
- проверьте, что страницы вложений возвращают 301, а не 200;
- посмотрите, нет ли в Search Console лишних URL с параметрами и дублями;
- пройдитесь по пагинации и убедитесь, что каждая страница архива уникальна по URL и не склеивается с первой.
Если используете инструменты краулинга, полезно сравнить список URL до и после изменений. Ищите одинаковые title, одинаковые canonical и страницы с тонким контентом.
Частые ошибки и как их исправить
Закрыли от индексации всё подряд
Иногда после борьбы с дублями закрывают и полезные архивы. В результате сайт теряет навигационные страницы, а внутренние ссылки становятся слабее. Исправление простое: оставьте в индексе только те архивы, которые реально помогают пользователю и имеют уникальный контент.
Сделали редирект со всех вложений на главную
Это рабочий, но грубый вариант. Если у изображения есть родительская запись, лучше вести туда. Массовый редирект на главную ухудшает поведение пользователя и может выглядеть как ошибка структуры сайта.
Не учли пагинацию
Часто правят только первую страницу архива, а /page/2/ и дальше остаются с теми же мета-тегами. В результате дубли продолжают копиться. Проверьте шаблон для всех страниц пагинации отдельно.
Сломали canonical в теме
Если тема выводит собственный canonical, а SEO-плагин — свой, в коде может оказаться два тега. Это нужно исправлять в одном месте: либо отключать вывод темы, либо настраивать плагин так, чтобы он был единственным источником canonical.
Практические советы по безопасности и производительности
Когда правите архивы кодом, не вносите изменения прямо в родительскую тему. Используйте дочернюю тему или мини-плагин, иначе обновление всё затрёт. Для редиректов и фильтров лучше держать отдельный файл с понятным назначением, а не распихивать код по шаблонам.
Если на сайте много архивов и таксономий, не создавайте лишние запросы в wp_head. Проверки должны быть лёгкими: без тяжёлых запросов к базе и без обращения к внешним API. Для массовой чистки дублей сначала сделайте бэкап и проверьте изменения на staging-копии.
Если нужен инструмент для чистки дублей, служебных архивов и лишних SEO-страниц, можно посмотреть в сторону Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpdirect.ru&utm_medium=article&utm_campaign=kak-najti-i-ubrat-dubli-archive-stranic-v-wordpress. Но даже с плагином полезно понимать, какие именно архивы вы закрываете и почему.
Самый надёжный сценарий обычно такой: сначала диагностировать, какие архивы реально дублируются, затем закрыть или перенаправить только лишнее, после чего проверить canonical, title и статус индексации на нескольких типах страниц. В WordPress это как раз тот случай, где точечная правка лучше массового «закрыть всё».