Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы автора, пагинация, параметры в URL, версии с и без слеша, а иногда и фильтры плагинов. В итоге поисковик видит несколько адресов с одинаковым или почти одинаковым контентом и выбирает не тот URL, который вы хотели бы продвигать.
Ниже — рабочий сценарий: как найти источник дублей, что закрывать через noindex, где ставить canonical, а где лучше вообще убрать генерацию лишних страниц.
Как понять, что дубли уже мешают индексации
Проблема не всегда видна глазами. На сайте может быть всё «нормально», но в поиске всплывают лишние адреса: страницы с ?replytocom=, архивы по датам, пагинация тегов, версии с параметрами сортировки, дубли главной через разные URL.
Сначала проверьте:
- какие URL попадают в индекс по запросу
site:example.com; - есть ли в Search Console страницы с пометкой «дубликат, выбран другой канонический URL»;
- открываются ли одинаковые страницы по разным адресам: со слешем и без, с
wwwи без него, с параметрами и без них; - не создаёт ли тема или плагин отдельные архивы, которые не несут ценности для поиска.
Типовые источники дублей в WordPress
Чаще всего дубли появляются в таких местах:
- архивы рубрик, меток и автора;
- страницы пагинации архивов;
- страницы вложений медиафайлов;
- параметры в URL: сортировка, UTM, фильтры, поиск по сайту;
- дубли главной страницы из-за неправильного редиректа или настроек домена;
- страницы комментариев с
?replytocom=.
Что закрывать, а что оставлять для индексации
Не все дубли нужно «рубить» одинаково. Если страница полезна пользователю и может собирать трафик, её лучше оставить, но указать канонический адрес. Если страница не несёт самостоятельной ценности, её разумнее убрать из индекса или вообще не генерировать.
| Подход | Когда использовать | Минус |
|---|---|---|
canonical | Для страниц с параметрами, пагинации, альтернативных URL одного и того же контента | Не убирает страницу из обхода полностью |
noindex,follow | Для архивов, которые нужны пользователю, но не должны ранжироваться | Нужно следить, чтобы страница не блокировалась в robots.txt |
| Редирект 301 | Для дублей домена, слеша, HTTP/HTTPS, старых URL | Нужно аккуратно проверить цепочки редиректов |
Пошаговое решение: убираем дубли без поломки сайта
1. Приведите домен и формат URL к одному варианту
Если сайт открывается и с www, и без него, или одновременно на HTTP и HTTPS, поисковик может считать это разными адресами. В WordPress базовые адреса настраиваются в Настройки → Общие, но этого недостаточно, если сервер не делает редирект.
Проверьте, что в siteurl и home указан один и тот же основной адрес, а сервер отдаёт 301 на канонический вариант. Если доступ к конфигу есть, редирект лучше делать на уровне веб-сервера.
# Apache .htaccess: редирект на HTTPS и без www
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]Если у вас Nginx, правило будет другим, но логика та же: один основной хост и один протокол.
2. Уберите страницы вложений и тонкие архивы
Страницы вложений часто создают пустые или почти пустые URL. Если они не нужны как отдельные посадочные страницы, лучше редиректить их на сам файл или на родительскую запись.
Для архивов автора и дат решение зависит от проекта. На новостном сайте архив автора может быть полезен, а на корпоративном блоге — нет. Если архив не нужен для поиска, ставьте noindex,follow и не добавляйте его в sitemap.
add_filter('wpseo_robots', function ($robots) {
if (is_author() || is_date() || is_attachment()) {
return 'noindex,follow';
}
return $robots;
});Этот пример рассчитан на Yoast SEO, потому что он реально отдаёт фильтр wpseo_robots. Если у вас другой SEO-плагин, проверьте его документацию: у каждого свой фильтр.
3. Закройте параметры, которые создают копии страниц
Параметры вроде ?sort=price, ?orderby=, ?replytocom= или UTM-меток часто порождают десятки URL с одинаковым контентом. Для аналитики UTM нужны, но индексировать их не нужно.
Здесь лучше опираться на canonical: он должен вести на чистый URL без параметров. Если тема или плагин не делают это корректно, можно добавить фильтр в тему или мини-плагин.
add_filter('get_canonical_url', function ($canonical, $post) {
if (!empty($_GET) && is_singular()) {
return get_permalink($post);
}
return $canonical;
}, 10, 2);Это не универсальная «магия» для всех случаев, но для одиночных записей с параметрами работает предсказуемо: канонический URL указывает на чистую запись.
4. Настройте архивы рубрик и меток
Рубрики обычно полезнее меток. Если метки создаются автоматически и дублируют рубрики, они почти всегда раздувают индекс без пользы. В таких проектах метки лучше закрыть от индексации или вообще перестать использовать.
Практический подход такой:
- рубрики — оставляем, если у них есть уникальные описания и нормальная структура;
- метки — закрываем, если они дублируют рубрики или создаются хаотично;
- архивы автора — по ситуации;
- архивы дат — чаще всего
noindex.
Если используете Clearfy Pro, часть задач по дублям и технической чистке можно закрыть через настройки плагина, но перед включением проверьте, не ломает ли это нужные архивы и хлебные крошки. Для этого продукта есть отдельная страница: Clearfy Pro.
Диагностика: где именно WordPress отдаёт лишние URL
Если вы не уверены, откуда берётся дубль, проверьте сайт по шагам:
- Откройте одну и ту же страницу с параметром и без него.
- Посмотрите исходный код и найдите тег
link rel="canonical". - Проверьте заголовки ответа через DevTools или
curl -I. - Сравните, не создаёт ли плагин SEO, кеша или фильтрации отдельную версию страницы.
curl -I https://example.com/sample-post/?utm_source=test
curl -I https://example.com/sample-post/Если в ответе разные коды, разные редиректы или canonical указывает не туда, проблема уже найдена. Дальше нужно не «лечить SEO», а исправить конкретный источник дубля.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно ту версию страницы, которую вы считаете основной.
- Откройте страницу в браузере и проверьте исходный код: canonical должен вести на чистый URL.
- Проверьте, что лишние архивы отдают
noindex,follow, а не случайныйindex,follow. - Убедитесь, что старые URL с параметрами не создают цепочки редиректов.
- В Search Console отправьте на переобход важные страницы и дождитесь обновления статуса.
Если после правок в индексе всё ещё остаются старые адреса, это не всегда ошибка. Поисковику нужно время, чтобы переоценить канонический URL и пересобрать выдачу.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt, но забыли про canonical
Это частая ошибка. Если страница уже заблокирована в robots.txt, поисковик может не увидеть canonical и не понять, куда вести вес. Для страниц, которые нужно убрать из индекса, чаще безопаснее использовать noindex, а не блокировку обхода.
Поставили noindex на всё подряд
Иногда после установки SEO-плагина под noindex уезжают и рубрики, и записи, и главная. Это уже не борьба с дублями, а потеря индексации. После любых массовых изменений проверьте шаблоны страниц по отдельности.
Оставили параметры сортировки в индексе
Если фильтры каталога или блога создают отдельные URL, а canonical не очищает параметры, поисковик может выбрать не ту версию. Для таких страниц canonical должен указывать на базовый адрес без сортировки и UTM.
Сделали редирект, но получили цепочку
Например, http → www → https → без www. Это лишняя нагрузка и риск ошибок. Нужен один прямой 301-редирект на финальный адрес.
Практические советы по безопасности и производительности
Любая правка дублей — это не только SEO, но и техническая гигиена. Чем меньше лишних страниц и параметров, тем меньше обходных запросов, меньше мусора в индексе и ниже шанс, что кеш или CDN начнут хранить неправильную версию.
- не правьте canonical через случайные сниппеты из интернета без проверки темы и SEO-плагина;
- если меняете
.htaccessили конфиг Nginx, делайте резервную копию; - после массовых правок очистите кеш плагина, сервера и CDN;
- не закрывайте важные страницы в
robots.txt, если вам нужно, чтобы поисковик увидел canonical; - проверяйте изменения на staging, если сайт уже получает трафик.
Если проблема дублей повторяется после каждого обновления темы или плагина, значит, источник не устранён. В таком случае сначала ищите, кто именно генерирует лишние URL, а уже потом настраивайте SEO-слой поверх.