Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких вещей: архивы категорий, теги, страницы автора, пагинация, UTM-параметры, сортировки, версии с ?replytocom и технические URL, которые поисковик видит как отдельные страницы. На небольшом сайте это может быть незаметно, но на контентном проекте быстро размывает релевантность и усложняет обход.
Ниже разберём, как понять, что проблема именно в дублях, какие URL стоит проверить в первую очередь и как закрыть лишнее без поломки индексации нужных страниц.
Как понять, что в WordPress появились дубли
Первый признак — в поиске индексируются не только основные страницы, но и их варианты. Второй — в отчётах по страницам видно много одинаковых заголовков или сниппетов. Третий — в логике сайта есть несколько путей к одному и тому же контенту: например, запись доступна через архив категории, архив тега и страницу автора.
Что проверить в первую очередь
- архивы категорий и тегов;
- страницы автора и даты, если они не несут самостоятельной ценности;
- пагинацию архивов;
- URL с параметрами сортировки, фильтров и UTM;
- комментарийные параметры вроде
?replytocom; - страницы поиска по сайту;
- дубли с разным слэшем в конце и разным регистром, если сервер их не нормализует.
Если у сайта есть доступ к Google Search Console, начните с отчёта по страницам и ручной проверки нескольких подозрительных URL через проверку URL. Если GSC нет, используйте обычный поиск по сайту и оператор site:, чтобы увидеть, какие варианты уже попали в индекс.
Какие дубли в WordPress встречаются чаще всего
Не все дубли одинаково опасны. Часть из них можно оставить, если они закрыты от индексации и не мешают обходу. Часть лучше убрать на уровне шаблона или правил генерации URL.
| Источник дубля | Что делать | Компромисс |
|---|---|---|
| Архивы тегов | Оставить только если теги реально помогают навигации | Часто проще закрыть noindex, чем чистить вручную |
| Страницы автора | Оставить для редакционного сайта с несколькими авторами | На блоге одного автора обычно это лишний дубль |
| Параметры URL | Нормализовать canonical и не индексировать лишние варианты | Полностью убрать параметры не всегда возможно |
| Пагинация архивов | Оставить, но следить за canonical и мета-robots | Не закрывать всё подряд, если страницы реально нужны |
Пошаговое решение: от диагностики к исправлению
Шаг 1. Снимите карту проблемных URL
Сначала соберите список страниц, которые могут плодить дубли. Это можно сделать вручную через sitemap, архивы и поиск по сайту. Если sitemap генерируется WordPress или SEO-плагином, проверьте, какие типы контента туда попадают. Иногда в карту сайта попадают архивы, которые вы не планировали индексировать.
Полезно посмотреть, как WordPress формирует canonical на типовых страницах. Если canonical указывает на саму страницу, но в индексе есть её параметры, значит проблема не в canonical, а в том, что поисковик нашёл альтернативный URL и посчитал его отдельным.
Шаг 2. Закройте ненужные архивы на уровне настроек
Если у вас один автор, страницы автора обычно не дают пользы. То же относится к архивам дат на большинстве сайтов. Их можно отключить в SEO-плагине или закрыть от индексации через noindex. Не путайте это с удалением страницы: URL может оставаться доступным для пользователя, но не должен попадать в индекс.
Если используете Clearfy Pro, там есть инструменты для отключения дублей и технических страниц. Это не обязательное решение, но в типовых проектах оно экономит время, если нужно быстро привести сайт к нормальной структуре без ручной правки шаблонов. Ссылка на продукт: Clearfy Pro.
Шаг 3. Нормализуйте параметры URL
Параметры вроде ?utm_source=, ?utm_medium=, ?replytocom= и сортировок часто создают отдельные URL. Для аналитики UTM нужны, но индексировать их не нужно. Для комментариев и сортировок — тем более.
Если параметр не влияет на содержимое страницы, canonical должен вести на чистый URL без параметра. Для некоторых сценариев этого достаточно. Если же параметр создаёт действительно отдельную версию страницы, например фильтр каталога или сортировку, нужно отдельно решать, нужна ли она в индексе.
Шаг 4. Добавьте защиту на уровне кода, если SEO-плагина недостаточно
Иногда проще и надёжнее поправить поведение темы или плагина кодом. Например, можно убрать параметр replytocom из индексации и задать canonical для страниц с параметрами, которые не должны создавать дубль.
<?php
add_filter('wpseo_canonical', function ($canonical) {
if (is_admin()) {
return $canonical;
}
if (!empty($_GET['replytocom'])) {
return remove_query_arg('replytocom');
}
return $canonical;
});
add_action('wp_head', function () {
if (is_admin()) {
return;
}
if (!empty($_GET['replytocom'])) {
echo '<meta name="robots" content="noindex,follow">' . "\n";
}
}, 1);Этот пример рассчитан на сайт, где используется Yoast SEO, потому что фильтр wpseo_canonical относится именно к нему. Если у вас другой SEO-плагин, хук будет отличаться. Суть подхода одна: не плодить отдельные индексируемые URL там, где контент не меняется.
Шаг 5. Уберите дубли в шаблонах архива
Иногда проблема не в мета-тегах, а в том, что архивы генерируются слишком щедро. Например, на странице категории выводится и краткое описание, и список записей, и блоки из тегов, и повторяющиеся ссылки на те же материалы. В результате поисковик получает много похожих страниц с одинаковой структурой.
Проверьте шаблоны category.php, tag.php, author.php и archive.php. Если архив не несёт самостоятельной ценности, сократите его текстовую часть и оставьте только навигацию по записям. Это не решит проблему индексации само по себе, но снизит риск, что архивы начнут конкурировать с основными статьями.
Пример: как закрыть архивы автора и даты без удаления страниц
Если вы не хотите трогать SEO-плагин, можно добавить логику в тему или мини-плагин. Ниже пример, который ставит noindex,follow для архивов автора и даты, но не ломает доступность страниц для пользователя.
<?php
add_action('wp_head', function () {
if (is_author() || is_date()) {
echo '<meta name="robots" content="noindex,follow">' . "\n";
}
}, 1);Это простой вариант, но у него есть ограничение: если SEO-плагин уже выводит свои robots-мета, нужно убедиться, что не получится конфликтующих директив. В идеале оставьте один источник управления мета-тегами.
Как проверить, что исправление сработало
После изменений не стоит сразу ждать переобхода всех страниц. Сначала проверьте техническую сторону.
- Откройте проблемный URL в браузере и посмотрите исходный код страницы.
- Убедитесь, что canonical указывает на чистый URL без лишних параметров.
- Проверьте, что на архивных страницах стоит
noindex,follow, если вы их закрывали. - Сравните заголовок и описание у основной страницы и её дубля — они не должны конкурировать как отдельные посадочные.
- В Google Search Console отправьте на проверку несколько URL с параметрами и без них.
Если у вас есть доступ к серверным логам или аналитике, посмотрите, не остались ли в обходе URL с параметрами. Иногда проблема не в индексации, а в том, что внутренние ссылки продолжают вести на старые варианты.
Частые ошибки и как их исправить
Закрывают всё через robots.txt
Это частая ошибка. Если запретить обход в robots.txt, поисковик может не увидеть canonical и мета-robots на странице. Для дублей, которые уже известны поиску, лучше использовать noindex или canonical, а не только запрет на crawl.
Ставят noindex на нужные страницы
Иногда под раздачу попадают полезные категории или архивы, которые реально приводят трафик. Перед изменениями проверьте, есть ли у страницы поисковый спрос и внутренние ссылки. Если архив работает как навигационный хаб, закрывать его без анализа не стоит.
Оставляют UTM в внутренних ссылках
UTM-параметры нужны для внешней аналитики, но во внутренних ссылках они только создают мусор. Проверьте меню, кнопки, баннеры и письма. Внутренние ссылки должны вести на чистые URL.
Дублируют canonical через несколько плагинов
Если один плагин ставит canonical, а другой переписывает его по-своему, результат может быть непредсказуемым. Оставьте один источник правды: либо SEO-плагин, либо код в теме, либо мини-плагин.
Практические советы по безопасности и производительности
Любые правки лучше делать не в рабочей теме напрямую, а в дочерней теме или через отдельный мини-плагин. Так вы не потеряете изменения после обновления. Перед массовыми правками сохраните резервную копию базы и файлов.
Если сайт большой, не пытайтесь закрыть все дубли вручную через сотню правил. Сначала уберите системные источники: архивы, параметры, лишние шаблоны. Потом проверьте sitemap и внутреннюю перелинковку. Это быстрее и надёжнее, чем точечно чинить каждый URL.
Для проектов, где важна техническая чистота, полезно периодически пересматривать структуру архивов и дублей. Иногда проще отключить лишний тип архива совсем, чем поддерживать его «для галочки».