Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы пагинации, версии с параметрами, одинаковые записи в рубриках, а иногда и из-за темы или SEO-плагина, который генерирует лишние URL. Если это не привести в порядок, поисковик начинает индексировать несколько адресов с одинаковым или почти одинаковым контентом, а дальше уже страдает обход, релевантность и поведение сниппета.
Ниже — рабочая схема: как найти источник дублей, что закрывать от индексации, где ставить канонический URL и как проверить, что после правок поисковик видит только нужную версию.
Какие дубли в WordPress встречаются чаще всего
Сначала полезно разделить проблему на типы. Это экономит время: если вы видите одинаковые страницы в индексе, не всегда нужно трогать код. Иногда достаточно настроек SEO-плагина или правил для архивов.
Архивы и таксономии
Одна и та же запись может открываться через рубрику, тег, автора и дату. Сам контент один, но URL разные. Для небольшого сайта это не критично, а для контентного проекта такие архивы быстро разрастаются и начинают конкурировать с основными страницами.
Пагинация и параметры
Страницы вида /page/2/, ?replytocom=, ?utm_source= или сортировки в фильтрах часто создают дополнительные адреса. Если они не нужны в поиске, их лучше либо закрыть, либо привести к канонической версии.
Версии с www, без www, http и https
Это уже не дубль контента внутри WordPress, но частая причина расхождения URL. Если сайт доступен по нескольким вариантам домена, поисковик может видеть их как разные страницы, пока вы не настроите единый редирект и canonical.
Диагностика: где именно рождается дубль
Перед исправлением проверьте, какие URL реально существуют и как они отдаются сервером. Не стоит закрывать всё подряд в robots.txt: иногда проблема не в индексации, а в неправильном canonical или в лишних архивных страницах.
- Откройте несколько вариантов одной записи: основной URL, URL с параметрами, страницу рубрики, архив автора.
- Посмотрите исходный код и найдите тег
<link rel="canonical" ...>. - Проверьте заголовки ответа через
curl -Iили DevTools: есть ли редирект на одну версию домена. - В Search Console посмотрите, какие URL попали в раздел дублированных или выбранных неканонических страниц.
Если canonical указывает на неправильный адрес, поисковик может продолжать индексировать не ту версию даже при корректном редиректе. Если canonical отсутствует, это уже зона ответственности темы или SEO-плагина.
Пошаговое решение: что закрывать, а что оставлять
Универсального рецепта нет, но для большинства сайтов работает такой порядок: сначала приводим к одному домену, потом убираем лишние архивы, затем настраиваем canonical для параметров и пагинации.
1. Приведите сайт к одной версии домена
Если сайт должен открываться только по https://example.ru, настройте 301-редирект с http, www и других вариантов. Это делается на уровне сервера или через конфигурацию хостинга. В WordPress это не лечится одной галочкой.
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru$ [NC]
RewriteRule ^(.*)$ https://example.ru/$1 [L,R=301]После этого проверьте, что все внутренние ссылки тоже ведут на канонический домен. Иначе часть дублей будет создаваться самим сайтом.
2. Отключите лишние архивы в SEO-плагине
Если у вас есть архивы авторов, дат или тегов, которые не несут отдельной ценности, их лучше закрыть от индексации или отключить. В Yoast SEO и Rank Math это делается в настройках таксономий и архивов. Логика простая: если страница не отвечает на отдельный поисковый запрос, не нужно заставлять её конкурировать с основным контентом.
Для небольшого блога часто достаточно оставить рубрики, а теги либо сильно сократить, либо закрыть. Но если теги используются как полноценные посадочные страницы, их нельзя отключать без анализа.
3. Уберите параметры, которые не должны индексироваться
Параметры сортировки, фильтров и трекинга не должны создавать отдельные версии страниц. Для них обычно достаточно canonical на чистый URL. Если параметр нужен только для интерфейса, а не для контента, его не стоит отдавать в индекс.
add_filter('wpseo_canonical', function ($canonical) {
if (isset($_GET['utm_source']) || isset($_GET['replytocom'])) {
return remove_query_arg(array('utm_source', 'utm_medium', 'utm_campaign', 'replytocom'));
}
return $canonical;
});Этот пример не универсален для всех SEO-плагинов, но идея понятна: canonical должен указывать на чистую версию страницы. Если вы не используете Yoast SEO, проверьте аналогичный фильтр в своём плагине или настройте canonical через тему.
4. Для пагинации не ломайте навигацию
Страницы /page/2/ и дальше не всегда нужно закрывать от индексации. Если это архив с уникальными материалами, поисковик может их использовать. Но если пагинация создаёт почти пустые страницы, лучше пересмотреть структуру архива или количество записей на странице.
Важно не путать noindex и canonical. Если вы ставите noindex на пагинацию, проверьте, не ломает ли это обход важных материалов, которые находятся только на следующих страницах архива.
Когда лучше править кодом, а когда настройками
Если проблема в стандартных архивах WordPress, сначала идите через настройки SEO-плагина. Код нужен, когда тема или плагин создают лишние URL, а в интерфейсе нет нужной опции. Ниже — короткое сравнение.
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройки SEO-плагина | Архивы, теги, canonical, sitemap | Зависит от конкретного плагина |
| Код в теме или mu-plugin | Нужна точечная логика для сайта | Требует тестирования после обновлений |
| Редиректы на сервере | Домен, www, http/https, лишние URL | Можно случайно сломать маршрутизацию |
Проверка результата после внедрения
После правок не ограничивайтесь открытием страницы в браузере. Нужна проверка по нескольким уровням: редирект, canonical, индексация и внутренние ссылки.
- Откройте старый URL и убедитесь, что он отдаёт 301 на нужную версию.
- Посмотрите исходный код: canonical должен вести на чистый адрес без лишних параметров.
- Проверьте, что в sitemap остались только нужные типы страниц.
- Сравните несколько страниц в Search Console: исчезли ли дублированные варианты.
- Прогоните сайт краулером, если он есть, и найдите одинаковые title, description и canonical на разных URL.
Если вы используете командную строку, быстрый тест можно сделать так:
curl -I https://example.ru/page/2/
curl -I https://www.example.ru/
curl -I 'https://example.ru/post/?utm_source=test'По ответам должно быть понятно, где редирект, а где отдается конечная страница. Если вместо 301 вы видите 200 на нескольких вариантах одного и того же адреса, дубль ещё жив.
Частые ошибки и как их исправить
Закрыли всё в robots.txt
Это частая ошибка. Robots.txt не убирает уже проиндексированные URL, а только ограничивает обход. Если дубль уже в индексе, нужен canonical, редирект или noindex в зависимости от сценария.
Поставили noindex, но оставили внутренние ссылки
Если на неканоническую страницу ведут меню, хлебные крошки и блоки похожих материалов, поисковик продолжит считать её важной. Сначала уберите причину появления дубля, потом ограничивайте индексацию.
Canonical указывает на страницу с параметрами
Так бывает, когда тема собирает canonical из текущего URL без очистки query string. Проверяйте исходный код и не доверяйте шаблону вслепую.
Отключили архивы, но забыли про sitemap
Если страница не должна индексироваться, она не должна попадать и в карту сайта. Иначе вы сами отправляете поисковику противоречивые сигналы.
Безопасность и производительность: что не стоит делать
Не ставьте плагины только ради одной опции, если задача решается настройкой существующего SEO-инструмента. Лишние плагины — это дополнительная нагрузка, конфликты фильтров и ещё один источник дублей в разметке.
Если вы вносите правки в код, лучше делать это в дочерней теме или через mu-plugin, а не в родительской теме. Иначе обновление затрёт исправление, а дубль вернётся без предупреждения.
Для сайтов, где дубли появляются из-за контентной структуры, иногда полезно пересмотреть саму модель публикаций: не плодить одинаковые теги, не создавать архивы без смысла и не дублировать одни и те же материалы в нескольких таксономиях. Если нужен инструмент для чистки дублей, SEO-настроек и технической оптимизации, в экосистеме WPShop есть Clearfy Pro, но его стоит рассматривать как средство для конкретной задачи, а не как замену нормальной архитектуре сайта.
Если после всех правок дубли остаются, проверьте не только WordPress, но и серверный слой: CDN, кэш-плагин, правила редиректов, а также то, как формируются канонические ссылки в теме. В таких случаях проблема часто не одна, а сразу в двух местах.