Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы авторов, пагинация, параметры в URL, версии с www и без него, HTTP и HTTPS, а иногда — из-за темы или плагина, который генерирует одинаковые блоки на разных адресах. Если это не разрулить, поисковик начинает индексировать лишние URL, а нужные страницы получают меньше веса.
Ниже — рабочая схема: как сначала найти источник дублей, потом выбрать способ исправления и проверить, что проблема действительно ушла.
Как понять, что у вас именно дубли, а не просто много страниц
Симптомы обычно видны в Search Console, логах сканирования или даже в обычной выдаче. Но важно не путать дубли с похожими страницами. Если у вас, например, несколько статей на одну тему — это не дубль. А вот одна и та же статья по разным URL уже проблема.
Что искать в первую очередь
- одинаковый контент по адресам с
?utm_,?replytocom,?ampили другими параметрами; - архивы тегов и рубрик, которые повторяют контент записей;
- страницы автора, если на сайте один автор или они не несут отдельной ценности;
- пагинацию архивов, где заголовки и описания повторяются почти без изменений;
- версии сайта с разным протоколом или с
www/без www.
Быстрая диагностика без лишних инструментов
Начните с поиска в Google по точному фрагменту текста из статьи. Если в выдаче всплывают несколько URL с почти одинаковым содержимым, это уже сигнал. В WordPress дополнительно проверьте:
- настройки постоянных ссылок;
- SEO-плагин и его правила для архивов;
- шаблоны темы, особенно
archive.php,author.php,category.php; - наличие редиректов на уровне сервера или плагина;
- не генерирует ли плагин отдельные страницы для фильтров, сортировок или поиска.
Какие дубли WordPress создает чаще всего
Удобнее всего разделить проблему на типовые сценарии. Тогда проще выбрать решение: где-то нужен редирект, где-то noindex, а где-то достаточно поправить canonical.
| Сценарий | Что делать | Компромисс |
|---|---|---|
| www и без www | Сделать 301 на один вариант | Нужно проверить все внутренние ссылки и sitemap |
| HTTP и HTTPS | Принудительный редирект на HTTPS | Возможны смешанные ресурсы в теме |
| Архивы тегов/авторов | noindex или отключение индексации | Страницы остаются доступны пользователю |
| Параметры URL | Каноникал или 301, если параметр не нужен | Не все параметры можно безопасно редиректить |
| Пагинация архивов | Проверить canonical и мета-robots | Нельзя сломать навигацию по архивам |
Пошаговое решение: от простого к надежному
1. Сначала уберите технические дубли на уровне сайта
Если сайт открывается и по http://, и по https://, или по двум вариантам домена, это надо исправить первым. Иначе все остальные меры будут работать частично.
Для Apache можно использовать такой редирект в .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru$ [NC]
RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]Для Nginx логика обычно настраивается в конфиге сервера. Если доступ к конфигу есть, лучше делать редирект там, а не через PHP-плагин: это быстрее и надежнее.
2. Закройте архивы, которые не должны индексироваться
Если на сайте нет смысла продвигать страницы авторов, тегов или служебные архивы, их лучше закрыть от индексации на уровне SEO-плагина или темы. Но не путайте noindex с удалением страницы: пользователю она может быть полезна, а поисковику — нет.
Если вы правите кодом, можно добавить мета-robots для архивов в functions.php или в мини-плагин:
add_filter('wp_robots', function ($robots) {
if (is_author() || is_tag()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант подходит, если вы понимаете, какие архивы реально нужно закрыть. Не ставьте noindex наугад для всех архивов подряд: иногда категории нужны как посадочные страницы.
3. Проверьте canonical на страницах с параметрами
Если у вас есть фильтры, сортировки, UTM-метки или внутренние параметры, canonical должен указывать на чистую основную версию URL. В большинстве случаев это делает SEO-плагин, но после обновления темы или кастомного шаблона canonical иногда ломается.
Проверка простая: откройте страницу с параметром и посмотрите исходный код. В <head> должен быть один canonical, который ведет на основной адрес без мусорных параметров.
4. Уберите дубли из темы и шаблонов
Частая история — тема выводит один и тот же текст в нескольких местах: в карточке записи, в архиве, в блоке похожих материалов и в хлебных крошках. Сам по себе повтор фрагмента не страшен, но если тема генерирует отдельные URL с одинаковым содержимым, это уже проблема.
Проверьте шаблоны:
archive.php;category.php;tag.php;author.php;search.php.
Если в архиве выводится полный текст записи, а не анонс, поисковик может считать страницы слишком похожими. Для архивов обычно лучше использовать выдержки.
Как проверить, что исправление сработало
После правок не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно ту версию, которую вы считаете основной.
- откройте старый URL и проверьте, что он отдает
301на нужный адрес; - посмотрите исходный код страницы и убедитесь, что canonical указывает на чистый URL;
- проверьте, что закрытые архивы отдают
noindex, а не случайноindex; - сравните заголовки ответа через
curl -Iили DevTools; - в Search Console отправьте на переобход важные страницы и посмотрите, как меняется статус индексации.
Пример быстрой проверки редиректа из консоли:
curl -I https://www.example.ru/old-page/В ответе должен быть код 301 и заголовок Location с правильным адресом. Если вместо этого вы видите 200, редирект не сработал.
Когда лучше использовать плагин, а когда код
Если задача типовая — закрыть архивы, убрать дубли мета-тегов, настроить canonical и почистить служебные страницы — удобнее использовать SEO-плагин или инструмент для технической чистки сайта. Например, Clearfy Pro закрывает часть таких задач без ручного редактирования шаблонов. Но если у вас нестандартная логика, например отдельные правила для кастомных таксономий, код дает больше контроля.
| Подход | Плюсы | Минусы |
|---|---|---|
| Плагин | Быстро, без правки темы | Меньше гибкости, зависит от обновлений |
| Код в теме/мини-плагине | Точный контроль, можно учесть логику проекта | Нужна дисциплина и тестирование |
| Серверный редирект | Быстро и надежно | Нужен доступ к конфигу сервера |
Частые ошибки и как их исправить
Ставят noindex вместо редиректа
Если у страницы есть явный дубль с другим URL, noindex не всегда решает проблему. Поисковик может продолжать тратить краулинговый бюджет на обе версии. Для явных дублей лучше 301-редирект.
Закрывают от индексации все подряд
Иногда после установки SEO-плагина в noindex уезжают и полезные категории. Это происходит из-за шаблонных настроек или неудачной массовой правки. Проверяйте каждую таксономию отдельно.
Оставляют параметры в sitemap
Если в карту сайта попадают URL с параметрами или служебные адреса, поисковик получает противоречивые сигналы. Sitemap должен содержать только канонические страницы.
Меняют canonical, но не чинят внутренние ссылки
Если меню, хлебные крошки и блоки на сайте продолжают вести на неканонические адреса, проблема не исчезает. Внутренние ссылки тоже должны указывать на основную версию URL.
Практика безопасности и производительности
Чем меньше лишних URL генерирует сайт, тем проще его сканировать и тем меньше мусора попадает в индекс. Это не только про SEO, но и про производительность: меньше обходов, меньше бесполезных запросов, меньше нагрузки на сервер.
Несколько полезных правил:
- не ставьте несколько плагинов, которые одновременно управляют canonical и robots;
- не редиректите все параметры подряд — можно сломать фильтры и поиск;
- после правок чистите кеш страницы и, если есть, объектный кеш;
- если используете CDN, проверьте, не кеширует ли он старые редиректы;
- не правьте
.htaccessбез резервной копии.
Если нужен более широкий набор инструментов для технической чистки WordPress, имеет смысл смотреть на решения, которые закрывают дубли, служебные страницы и лишние элементы интерфейса в одном месте: это уменьшает риск конфликтов между плагинами и темой.