Дубли в WordPress редко появляются из-за одной ошибки. Обычно это набор мелких вещей: архивы категорий, теги, страницы автора, пагинация, параметры сортировки, а иногда и одинаковые карточки, доступные по нескольким URL. В результате поисковик видит несколько версий одного и того же контента, а сайт получает размытый вес страниц и лишние обходы краулером.
Ниже разберём именно практический сценарий: как найти такие дубли, что закрывать от индексации, где ставить canonical, а где лучше вообще убрать источник проблемы на уровне шаблона или настроек.
Какие дубли чаще всего встречаются в WordPress
Если смотреть на реальные сайты, чаще всего повторяются не «страницы» в чистом виде, а архивные и служебные URL. Это важно: лечить их нужно по-разному. Одни URL стоит закрыть от индексации, другие — склеить через canonical, третьи — убрать из генерации вообще.
Типовые источники дублей
- архивы категорий и тегов, которые дублируют смысл страниц записей;
- страницы автора на сайтах с одним редактором;
- пагинация архивов, если в ней повторяется почти тот же набор карточек;
- URL с параметрами сортировки, фильтров, UTM и внутренних поисков;
- страницы вложений медиафайлов;
- несколько путей к одной и той же записи из-за настроек постоянных ссылок или плагинов;
- дубли CPT-архивов, если шаблон выводит одинаковые блоки на разных таксономиях.
Диагностика: как понять, что это именно дубли, а не просто просадка трафика
Сначала проверьте не позиции, а индексацию и обход. Если в Search Console растёт число страниц, но полезных переходов не прибавляется, это уже повод смотреть на структуру URL. Полезно открыть отчёт по страницам и сравнить:
- какие URL индексируются;
- какие исключены как дубли или альтернативные страницы;
- какие страницы получают показы, но почти не получают кликов;
- есть ли в индексе URL с параметрами.
На самом сайте можно быстро проверить несколько признаков:
- одинаковый заголовок и H1 на разных URL;
- одинаковый текст в архиве категории и в теге;
- одинаковые карточки в разных архивах;
- страницы пагинации, которые повторяют мета-теги первой страницы;
- URL вида
?sort=,?filter=,?replytocom=или похожие служебные параметры.
Если у вас есть доступ к краулеру, проверьте, сколько страниц отдают одинаковый title, description и canonical. Это быстрее всего показывает, где WordPress генерирует лишние версии.
Что лучше: закрыть, склеить или удалить источник дубля
Не все дубли нужно решать одинаково. Иногда достаточно noindex, иногда нужен корректный canonical, а иногда правильнее убрать саму страницу из генерации. Ниже — рабочее сравнение.
| Подход | Когда применять | Плюс | Минус |
|---|---|---|---|
| noindex, follow | для тегов, авторов, служебных архивов | страница остаётся доступной пользователю | не убирает дубль из обхода сразу |
| canonical | для похожих страниц и пагинации | склеивает сигналы | не всегда игнорируется, если контент слишком разный |
| удаление генерации | для ненужных архивов и вложений | чистит сайт на уровне структуры | нужно аккуратно проверить ссылки и шаблоны |
Пошаговое решение: убираем дубли на уровне WordPress
1. Закройте ненужные архивы от индексации
Если у сайта один автор или теги не несут самостоятельной ценности, их лучше не индексировать. Это можно сделать через SEO-плагин, но если нужен кодовый вариант, используйте фильтр wp_robots или настройку конкретного шаблона. Пример ниже добавляет noindex, follow для архивов тегов и автора.
add_filter('wp_robots', function ($robots) {
if (is_tag() || is_author()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант не ломает доступ к странице, но подсказывает поисковику не держать её в индексе. Если у вас уже есть SEO-плагин, проверьте, не конфликтует ли он с этим фильтром. Дублирующие правила лучше не наслаивать.
2. Уберите страницы вложений из индекса
Медиа-страницы часто создаются автоматически и почти всегда бесполезны для поиска. Если они уже индексируются, лучше редиректить их на сам файл или на родительскую запись. Для этого можно использовать штатный фильтр WordPress:
add_filter('attachment_link', function ($link, $post_id) {
$parent_id = wp_get_post_parent_id($post_id);
if ($parent_id) {
return get_permalink($parent_id);
}
return wp_get_attachment_url($post_id);
}, 10, 2);Это не универсальное решение для всех тем, но в реальных проектах оно помогает убрать часть мусорных URL, особенно если вложения не используются как отдельные страницы.
3. Нормализуйте параметры URL
Если дубли появляются из-за сортировки, фильтров или UTM, важно не плодить отдельные индексируемые версии. Для таких страниц обычно нужен canonical на чистый URL. Пример для фронтенда:
add_action('wp_head', function () {
if (is_admin()) {
return;
}
if (!empty($_GET)) {
$canonical = home_url(add_query_arg(array(), $GLOBALS['wp']->request));
echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
}
}, 1);Здесь есть важная оговорка: не ставьте такой код вслепую на все сайты. Если параметры реально меняют содержимое страницы и должны индексироваться, canonical нужно настраивать точечно, а не обнулять всё подряд.
4. Проверьте пагинацию архивов
Пагинация сама по себе не является проблемой, но часто именно она создаёт повторяющиеся title и description. На страницах /page/2/, /page/3/ и дальше должны быть уникальные мета-теги или хотя бы корректный canonical на саму страницу пагинации, а не на первую страницу архива.
Если шаблон темы копирует мета-теги первой страницы на все страницы архива, исправьте это в шаблоне или через SEO-плагин. Иначе поисковик может считать вторую и третью страницы дублями первой.
5. Уберите ненужные архивы автора и даты
На небольших проектах архивы автора и даты часто дублируют ленту записей. Если они не нужны пользователям, их лучше отключить в SEO-плагине или скрыть из генерации меню и sitemap. Для сайтов с одним редактором архив автора обычно не даёт дополнительной ценности.
Если же архив нужен, сделайте его содержательно отличным: добавьте описание автора, список рубрик, фильтр по теме, а не просто повтор ленты записей.
Как проверить, что решение сработало
Проверка должна быть не только визуальной. После изменений откройте несколько URL и проверьте три вещи: код ответа, canonical и robots.
- страница архива тега должна отдавать
noindex, если вы её закрывали; - страница вложения не должна оставаться отдельной индексируемой сущностью;
- URL с параметрами должен указывать canonical на чистую версию;
- пагинация должна иметь собственный canonical, если она нужна;
- в sitemap не должно быть служебных URL, которые вы решили убрать.
Если используете Search Console, не ждите мгновенного эффекта. Сначала проверьте, что новые правила реально попали в HTML. Затем отправьте на переобход важные страницы и посмотрите, как меняется отчёт по исключённым URL.
Частые ошибки и как их исправить
Ставят noindex на всё подряд
Так часто делают, когда хотят быстро убрать дубли. В итоге из индекса исчезают и полезные архивы, которые приводили трафик. Сначала разделите архивы на полезные и служебные, потом закрывайте только лишнее.
Каноникал указывает на главную страницу
Это грубая ошибка. Canonical должен вести на наиболее близкую по смыслу версию, а не на случайную «главную». Иначе поисковик может проигнорировать подсказку.
Оставляют в sitemap URL с параметрами
Если карта сайта содержит мусорные адреса, поисковик продолжит тратить обход на ненужные страницы. Проверьте генератор sitemap в SEO-плагине и исключите служебные шаблоны.
Удаляют архивы без проверки внутренних ссылок
Если вы отключили архив автора или тегов, убедитесь, что на них не ведут хлебные крошки, блоки «похожие записи» и старые ссылки в контенте. Иначе получите 404 или цепочки редиректов.
Чек-лист перед публикацией изменений
- проверить, какие URL реально дублируют контент;
- определить, что закрывать, а что склеивать canonical;
- убрать из индекса теги, авторов и вложения, если они не нужны;
- проверить пагинацию архивов;
- исключить служебные параметры из sitemap;
- сравнить title, canonical и robots на нескольких страницах;
- после правок запросить переобход в Search Console.
Когда лучше не писать код, а использовать SEO-плагин
Если задача сводится к управлению индексированием архивов, тегов, авторов и sitemap, удобнее сделать это через SEO-плагин. Код нужен там, где тема или набор плагинов ведут себя нестандартно, либо когда нужно точечно исправить конкретный шаблон. Если нужен более широкий набор инструментов для чистки дублей и технической оптимизации, можно посмотреть в сторону Clearfy Pro: https://wpshop.ru/plugins/clearfy.
Но и в этом случае не стоит включать всё подряд. Сначала найдите источник дубля, потом уже выбирайте способ: закрыть, склеить или убрать из генерации.