В WordPress дубли чаще всего появляются не из-за одной ошибки, а из-за набора мелочей: архивы тегов, страницы вложений, пагинация, параметры сортировки, одинаковые записи в нескольких архивах. В итоге поисковик видит несколько адресов с почти одинаковым содержимым и начинает выбирать не тот URL, который вы хотите продвигать.
Если задача не в том, чтобы «закрыть всё подряд», а в том, чтобы оставить в индексе полезные страницы и убрать технический шум, нужен поэтапный подход: сначала найти источник дубля, потом выбрать способ обработки, затем проверить, что robots.txt, meta robots и canonical не конфликтуют между собой.
Какие дубли в WordPress встречаются чаще всего
На практике проблема обычно выглядит так: одна и та же запись доступна по основному URL, через архив рубрики, через архив тега, через страницу автора и иногда через параметры в адресе. Для пользователя это нормально, для поисковой системы — повод считать страницы похожими.
Типовые источники дублей
- архивы тегов, если теги создаются автоматически и почти повторяют рубрики;
- страницы вложений медиафайлов, которые дублируют саму запись;
- пагинация архивов и пагинация комментариев;
- URL с параметрами
?replytocom=,?utm_,?ampи другими служебными хвостами; - страницы поиска по сайту и служебные архивы автора;
- дубли из-за разных вариантов слеша в конце или http/https, если редиректы настроены криво.
Если сайт уже в индексе, не стоит закрывать всё сразу. Сначала нужно понять, какие страницы реально приносят трафик, а какие только создают шум.
Диагностика: где искать проблему
Начните с простого списка адресов, которые поисковик уже видит. Для этого удобно проверить:
- отчёт по индексированию в Google Search Console или Яндекс Вебмастере;
- поиск по сайту через
site:example.comи сравнение URL; - исходный код страниц на наличие
rel="canonical"иmeta name="robots"; - архивы тегов, рубрик, автора и медиа-страниц;
- логи редиректов и ответы сервера для URL с параметрами.
Если вы видите, что в индекс попадают страницы вложений или архивы тегов с пустым или почти одинаковым содержимым, это уже не косметика, а техническая проблема. Такие страницы лучше либо закрыть от индексации, либо сделать так, чтобы они не создавали отдельную ценность и не конкурировали с основным контентом.
Что именно закрывать, а что оставлять
Здесь важно не перепутать «дубль» и «полезную страницу». Рубрики часто нужны для навигации и могут оставаться в индексе. Теги — не всегда. Страницы вложений почти всегда лучше перенаправлять на родительскую запись или медиафайл, если он реально нужен.
| Вариант | Что делает | Когда подходит | Компромисс |
|---|---|---|---|
| meta robots noindex | Страница может быть доступна, но не должна индексироваться | Архивы тегов, автора, поиска, пагинация служебных страниц | URL остаётся доступным, но не участвует в поиске |
| 301 redirect | Переносит пользователя и робота на другой адрес | Страницы вложений, старые служебные URL, дубли с параметрами | Нужно аккуратно выбрать целевой адрес |
| canonical | Подсказывает основной URL среди похожих страниц | Пагинация, фильтры, похожие архивы | Не всегда поисковик следует подсказке |
Пошаговое решение без лишних рисков
Самый безопасный вариант — не править всё вручную в шаблонах, если можно использовать штатные механизмы WordPress и один небольшой слой кода. Ниже схема, которая подходит для большинства обычных сайтов.
Шаг 1. Закройте от индексации служебные архивы
Если у вас нет задачи продвигать страницы автора или теги, их можно закрыть через noindex. Для этого не обязательно ломать шаблон: достаточно подключить фильтр, который задаст robots-мета для нужных типов архивов.
<?php
add_filter('wp_robots', function( array $robots ) {
if ( is_tag() || is_author() || is_search() ) {
$robots['noindex'] = true;
$robots['nofollow'] = false;
}
return $robots;
});Этот вариант работает только если тема и плагины не переопределяют robots на уровне шаблона. После внедрения проверьте исходный код страницы: там должен появиться noindex для нужных архивов.
Шаг 2. Уберите страницы вложений из индекса
Страницы attachment часто создают пустой дубль медиафайла или записи. Если отдельная страница вложения не нужна, лучше перенаправлять её на родительскую запись.
<?php
add_action('template_redirect', function () {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_redirect( get_permalink( $parent ), 301 );
exit;
}
wp_redirect( home_url('/'), 301 );
exit;
}
});Если на сайте есть смысловые страницы вложений, например отдельные страницы изображений с описанием, этот редирект нужно не включать вслепую. Сначала проверьте, используются ли такие URL в навигации и в поиске.
Шаг 3. Нормализуйте параметры URL
Параметры вроде ?replytocom= или UTM-меток не должны создавать отдельные индексируемые страницы. Для UTM обычно достаточно canonical на чистый URL, а для совсем служебных параметров — редирект или запрет индексации на уровне сервера/плагина.
Если вы используете SEO-плагин, проверьте, не генерирует ли он canonical на URL с параметрами. В идеале canonical должен указывать на чистую версию страницы без маркетинговых хвостов.
Когда лучше использовать плагин, а когда код
Если сайт ведётся редактором без доступа к теме, удобнее закрывать дубли через SEO-плагин. Если у вас кастомная тема или много нестандартных архивов, код даёт больше контроля. Но код нужно держать в child theme или в мини-плагине, а не править напрямую в родительской теме.
Ниже короткое сравнение подходов:
- Плагин — быстрее внедрить, проще поддерживать, но меньше гибкости.
- Код — точнее управляет логикой, но требует тестирования после обновлений.
- Серверный редирект — полезен для явных дублей, но опасен при ошибке в правилах.
Если нужен более широкий набор технических правок для SEO и чистки сайта, иногда проще собрать их в одном инструменте, чем держать несколько разрозненных решений. Например, Clearfy Pro уместен именно там, где нужно убрать лишние архивы, дубли и технический шум без ручной правки каждого шаблона. Ссылка: https://wpshop.ru/plugins/clearfy.
Проверка результата после внедрения
После настройки не ограничивайтесь визуальной проверкой страницы в браузере. Нужно убедиться, что поисковик видит именно то, что вы задумали.
- Откройте страницу архива или вложения и проверьте исходный код.
- Убедитесь, что на нужных URL стоит
noindexили редирект 301. - Проверьте canonical: он должен вести на основную версию страницы.
- Прогоните URL через Search Console или аналогичный инструмент проверки URL.
- Посмотрите, не остались ли в индексе старые адреса через
site:и отчёты по страницам.
Если после изменений страница всё ещё индексируется, причина обычно одна из трёх: robots-мета не выводится, canonical указывает не туда, либо старые URL ещё не переобходились роботом. В последнем случае помогает время, а не повторное «закрытие» той же страницы.
Частые ошибки и как их исправить
Закрыли важные страницы вместе с дублями
Так бывает, когда под noindex попадают все архивы подряд, включая рубрики, которые реально нужны для навигации и трафика. Исправление простое: пересмотрите список условий и оставьте в индексе только те архивы, которые несут самостоятельную ценность.
Поставили noindex, но оставили внутренние ссылки
Это не критично, но если служебная страница активно связана с меню и хлебными крошками, робот будет продолжать её обходить. Для совсем ненужных страниц лучше убрать ссылки из навигации или заменить их на более полезные.
Сделали редирект на главную для всех дублей
Это частая ошибка со страницами вложений и параметрами. Массовый редирект на главную выглядит просто, но часто приводит к нерелевантным переходам и ухудшает поведение пользователей. Лучше направлять на ближайшую смысловую страницу: родительскую запись, чистый URL или соответствующий архив.
Canonical и noindex конфликтуют
Если страница закрыта от индексации, но canonical указывает на неё саму или на другой сомнительный URL, поисковик получает противоречивые сигналы. Сначала определите цель страницы: индексируемая, неиндексируемая или перенаправляемая. Потом уже настраивайте canonical.
Практические советы по безопасности и производительности
Чем меньше лишних архивов и служебных страниц, тем проще обход сайта для робота и тем меньше мусора в индексе. Но не стоит превращать это в бесконечную чистку.
- не удаляйте теги массово, если они уже участвуют во внутренней перелинковке;
- не закрывайте через robots.txt страницы, которые уже должны выпасть из индекса: для них лучше
noindexили редирект; - не ставьте плагины, которые дублируют друг друга по SEO-функциям;
- после обновления темы повторно проверьте canonical и robots, особенно если шаблоны архивов кастомные;
- для больших сайтов тестируйте изменения сначала на staging-копии.
Если нужен не только контроль дублей, но и общая уборка технических хвостов, полезно держать под рукой список страниц, которые должны быть индексируемыми по смыслу, а не по умолчанию. Это экономит время при аудите и снижает риск случайно закрыть то, что приносит трафик.