Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелочей: одинаковые записи доступны по разным URL, архивы индексируются вместе с основными страницами, а параметры в адресе создают новые версии контента. В результате поисковик видит несколько страниц с одним и тем же смыслом и сам выбирает, что оставить в индексе. Это почти всегда хуже, чем явно задать правила.
Ниже — рабочий сценарий: сначала находим источник дублей, потом убираем их на уровне настроек, шаблонов и, если нужно, кода. Без «магии» и без ломки сайта.
Как понять, что у вас именно дубли, а не обычная просадка трафика
Проблема с дублями часто маскируется под «страницы выпали из индекса» или «почему-то ранжируется не тот URL». Проверять нужно не только Search Console, но и сам сайт.
Типичные признаки
- одна и та же статья открывается с разными адресами: со слешем и без, с
?utm=, с/page/2/и т. п.; - в индексе есть архивы категорий, тегов, авторов и дат, хотя они не несут самостоятельной ценности;
- в выдаче ранжируется не основная страница, а вложенный URL или версия с параметрами;
- в HTML нет корректного
rel="canonical"или он указывает не туда; - внутренние ссылки ведут на разные версии одного и того же материала.
Что проверить вручную
- Откройте одну и ту же страницу с разными вариантами URL.
- Посмотрите исходный код и найдите тег
link rel="canonical". - Проверьте, не доступны ли архивы тегов и авторов без необходимости.
- Сравните заголовки ответа сервера для дублей и основной страницы.
Если у вас уже стоит SEO-плагин, часть проблем может решаться его настройками. Но сначала важно понять, где именно возникает дубль: в маршрутизации WordPress, в шаблоне темы или в настройках индексации.
Откуда берутся дубли в WordPress
Самые частые источники предсказуемы. Их удобно разбирать по слоям.
| Источник | Как выглядит | Что делать |
|---|---|---|
| Архивы таксономий | /tag/, /category/, /author/ | Закрыть от индексации или оставить только полезные архивы |
| Параметры URL | ?replytocom=, UTM, сортировки, фильтры | Задать canonical и не индексировать параметры |
| Пагинация | /page/2/, /page/3/ | Проверить canonical и мета-robots для архивов |
| Дубли записей | Одна запись доступна по нескольким путям | Свести к одному каноническому адресу и редиректу |
Если проблема в архивных страницах, иногда достаточно отключить индексацию лишних таксономий. Если же дубли создаёт тема или плагин, придётся править код.
Пошаговое решение: что делать в первую очередь
1. Уберите лишние архивы из индекса
Если категории, теги и архивы авторов не дают поисковый трафик и не несут самостоятельной пользы, их лучше закрыть от индексации. Это не удаляет страницы с сайта, а только снижает риск появления дублей в поиске.
Проще всего сделать это через SEO-плагин. Если вы предпочитаете код, можно задать мета-robots в шаблоне или через фильтры плагина, но здесь важно не сломать уже существующую логику.
2. Проверьте canonical на одиночных страницах
Для записей, страниц и архивов canonical должен указывать на основную версию URL. Если тема выводит его некорректно или дублирует через несколько SEO-решений сразу, поисковик может игнорировать подсказку.
Ниже пример, как принудительно поправить canonical для записей, если у вас есть нестандартная логика маршрутизации или плагин отдаёт неверный адрес:
add_filter('get_canonical_url', function ($canonical, $post) {
if (! $post instanceof WP_Post) {
return $canonical;
}
if ($post->post_type === 'post') {
return get_permalink($post);
}
return $canonical;
}, 10, 2);Этот вариант не нужен на каждом сайте. Используйте его только если вы реально видите неправильный canonical в исходном коде.
3. Закройте технические параметры URL
Параметры вроде ?replytocom= или служебных query string могут создавать мусорные версии страниц. Если они не нужны для SEO, стоит либо убрать их генерацию, либо не допускать индексации таких URL.
Для редиректа с параметра replytocom на чистый URL можно использовать правило в functions.php или в небольшом must-use плагине:
add_action('template_redirect', function () {
if (isset($_GET['replytocom']) && is_singular()) {
wp_safe_redirect(remove_query_arg('replytocom'), 301);
exit;
}
});Если у вас есть фильтры каталога, сортировки или поиска по сайту, не редиректите всё подряд. Для таких страниц лучше отдельно решить: оставить их для пользователей, но закрыть от индексации.
4. Нормализуйте внутренние ссылки
Даже если canonical настроен, внутренние ссылки должны вести на одну версию URL. Иначе вы сами постоянно подталкиваете поисковик к выбору между дублями.
- не смешивайте ссылки со слешем и без слеша;
- не используйте в меню и хлебных крошках разные варианты одного адреса;
- не ссылайтесь на URL с параметрами, если можно дать чистую версию;
- проверьте, не генерирует ли тема ссылки на архивы тегов вместо основного материала.
Если дубли создаёт тема или плагин
Иногда проблема не в настройках индексации, а в шаблонах. Например, тема может выводить отдельные страницы для одного и того же контента через кастомные query vars, а плагин — создавать дополнительные архивы или служебные страницы.
В таких случаях полезно сравнить три подхода:
| Подход | Когда уместен | Минус |
|---|---|---|
| Настройки SEO-плагина | Архивы, canonical, noindex | Не лечит ошибочную генерацию URL |
| Код в теме/плагине | Нестандартные URL, параметры, шаблоны | Нужна аккуратность при обновлениях |
| Редиректы на сервере | Жёсткая нормализация адресов | Можно случайно сломать полезные страницы |
Если задача типовая, часто хватает SEO-плагина. Если же у вас кастомная тема или сложная структура контента, лучше исправить источник дубля, а не только скрывать последствия.
Проверка результата после внедрения
После правок не ограничивайтесь открытием пары страниц в браузере. Нужно проверить, что сайт отдаёт именно ту версию, которую вы хотите видеть в индексе.
Чек-лист проверки
- основной URL открывается с кодом ответа
200; - дубли ведут на основной адрес через
301, если редирект нужен; - в исходном коде у страницы один canonical;
- архивы, которые не нужны в поиске, закрыты от индексации;
- внутренние ссылки обновлены и не ведут на старые версии;
- в Search Console нет всплеска новых дублей после переобхода.
Для быстрой проверки удобно использовать DevTools или curl. Например, так можно посмотреть заголовки ответа и убедиться, что редирект работает:
curl -I https://example.com/sample-page/?replytocom=1Если в ответе вы видите 301 и новый Location без параметра, значит нормализация сработала. Если страница отдаёт 200 и параметр остаётся в адресе, редирект не применился.
Частые ошибки и как их исправить
Закрыли от индексации всё подряд
Иногда после чистки дублей в noindex отправляют и полезные страницы: категории, которые реально дают трафик, или архивы авторов с сильной экспертной структурой. Исправление простое: закрывайте только то, что действительно не нужно в поиске, а не весь тип страниц целиком.
Поставили несколько SEO-решений одновременно
Если один плагин задаёт canonical, а другой переписывает robots meta, результат может быть непредсказуемым. Оставьте одно основное решение для SEO-меток и проверьте, что тема не дублирует их в <head>.
Сделали редирект без анализа
Редирект с любого URL с параметром на главную — плохая идея. Поисковик и пользователи должны попадать на релевантную страницу, а не на случайный адрес. Редиректите только те параметры, которые точно не несут самостоятельной ценности.
Не обновили внутренние ссылки
Даже после правильного canonical старые ссылки в меню, блоках и контенте продолжают плодить дубли в обходной логике. После внедрения обязательно пройдитесь по шаблонам и массовым вставкам.
Практические советы по безопасности и производительности
Чистка дублей полезна не только для SEO. Меньше лишних страниц — меньше мусора в обходе, меньше нагрузки на генерацию архивов и меньше шансов, что поисковик потратит краулинговый бюджет не туда.
- не создавайте редиректы в цикле — проверяйте цепочки;
- не правьте
.htaccessбез бэкапа, если не уверены в правилах; - если используете кастомный код, вынесите его в отдельный мини-плагин, а не в тему;
- после изменений проверьте кэш страниц и объектный кэш, чтобы не смотреть на старую версию;
- для массовой чистки дублей сначала тестируйте на staging-копии.
Если вам нужно не только убрать дубли, но и системно почистить сайт от SEO-мусора, архивов и лишних служебных страниц, имеет смысл посмотреть в сторону инструментов класса Clearfy Pro. Но даже с плагином полезно понимать, какие именно URL вы закрываете и почему.
В итоге рабочая схема всегда одна: найти источник дубля, выбрать один канонический URL, убрать лишние версии из индекса и проверить, что сайт не создаёт их снова. Если это сделать аккуратно, поисковик начинает видеть структуру сайта заметно чище, а вы перестаёте ловить странные страницы в выдаче.