В WordPress дубли чаще всего появляются не из-за «плохого SEO», а из-за штатной логики: архивы категорий, теги, авторы, страницы пагинации, параметры сортировки, UTM-метки, а иногда и одинаковые записи, доступные по нескольким URL. Если это не контролировать, поисковик начинает индексировать лишние адреса, а основной URL получает меньше веса.
Ниже — рабочая схема: сначала находим источник дублей, потом решаем, что закрывать от индексации, что оставлять с canonical, и как проверить, что всё действительно сработало.
Диагностика: откуда в WordPress берутся дубли
Перед правками нужно понять, какой именно тип дубля у вас есть. Это важно: у дублей разных типов разное решение. Например, пагинацию нельзя лечить так же, как страницы с параметрами фильтра.
Типичные источники дублей
- архивы рубрик и меток, которые повторяют контент записей;
- страницы автора на сайтах с одним автором;
- страницы вложений медиафайлов;
- пагинация архивов и комментариев;
- URL с параметрами
?utm_*,?replytocom,?ampи другими служебными хвостами; - один и тот же материал в нескольких таксономиях;
- страницы поиска по сайту, если они попадают в индекс.
Проверка начинается с простого: откройте несколько подозрительных URL и сравните их HTML-код. Если у разных адресов в <title>, <h1> и основном тексте всё одинаково, это уже кандидат на дубль. Дальше смотрим canonical и robots.
Что смотреть в исходном коде
<link rel="canonical" ...>— указывает ли он на основной URL;<meta name="robots" content="noindex,follow">— не индексируется ли лишняя страница;- одинаковы ли URL в sitemap и в реальном обходе сайта;
- не создаёт ли плагин SEO отдельные правила для архивов.
Если canonical отсутствует или указывает на саму страницу там, где должен вести на основной адрес, поисковик может считать страницы самостоятельными. Если canonical есть, но на сайте много параметров и дублей, этого может быть недостаточно — нужно ещё убрать источник генерации лишних URL.
Пошаговое решение: что закрывать, а что оставлять
Универсального «закрыть всё лишнее» здесь нет. Логика такая: полезные страницы оставляем доступными, но задаём им правильный canonical; бесполезные или технические страницы закрываем от индексации и, если нужно, исключаем из sitemap.
1. Закрываем страницы вложений
Страницы attachment часто бесполезны для поиска: они повторяют изображение без контекста. Если тема или плагин не перенаправляют их на файл или родительскую запись, лучше сделать редирект.
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_queried_object_id());
if ($parent) {
wp_safe_redirect(get_permalink($parent), 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});Такой вариант не ломает медиа, но убирает из индекса отдельные страницы вложений. Если у вас на attachment-страницах есть полезный контент, редирект нужно оценивать отдельно.
2. Убираем из индекса служебные архивы
Если на сайте один автор, архив автора обычно дублирует ленту записей. Аналогично с метками: если теги не дают отдельной ценности, их лучше закрыть от индексации или вообще не генерировать.
add_filter('wp_robots', function (array $robots) {
if (is_author() || is_tag() || is_search()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот код не запрещает обход ссылок, но просит поисковик не индексировать сами страницы. Для тегов и авторов это часто безопаснее, чем удалять их полностью: внутренняя навигация остаётся, а индекс не засоряется.
3. Настраиваем canonical для пагинации и архивов
Пагинация — частый источник путаницы. Страница /category/news/page/2/ не должна каноникалиться на первую страницу, если на второй есть уникальный набор записей. Для пагинации canonical должен указывать на саму страницу пагинации.
Если SEO-плагин уже делает это корректно, код не нужен. Но если canonical сломан темой или кастомной разметкой, можно проверить фильтры плагина или шаблон header.php. Вручную править canonical стоит только если вы точно понимаете, что именно переопределяете.
4. Убираем параметры, которые плодят дубли
UTM-метки и похожие параметры не должны создавать отдельные индексируемые страницы. Обычно поисковик сам склеивает такие URL, но на практике лучше не полагаться только на это. Для внутренних ссылок не добавляйте UTM вообще. Для внешних рекламных ссылок — нормально, но не используйте их в навигации сайта.
Если у вас есть фильтры или сортировка, которые меняют URL через query string, проверьте, не создают ли они тысячи комбинаций. Для таких страниц часто лучше:
- оставить
noindex,follow; - запретить попадание в sitemap;
- ограничить генерацию ссылок на уровне шаблона;
- для неважных параметров использовать canonical на чистый URL.
Когда достаточно плагина, а когда нужен код
Если задача типовая — архивы, метки, canonical, sitemap — удобнее решить её через SEO-плагин. Если же дубли создаёт тема, кастомный фильтр или нестандартная логика URL, без кода не обойтись.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Стандартные архивы, canonical, robots, sitemap | Не всегда видит кастомные URL и шаблоны |
| Код в теме/плагине | Нестандартные архивы, параметры, редиректы | Нужно тестировать после обновлений |
| Комбинированный | Когда часть дублей штатная, часть — от кастома | Важно не задвоить правила |
Если вы используете Clearfy Pro, там есть полезные инструменты для чистки сайта и удаления дублей, но даже с плагином всё равно нужно проверить, какие именно URL он закрывает и не задевает ли полезные страницы. Ссылка на продукт: Clearfy Pro.
Проверка результата после внедрения
После правок не ограничивайтесь просмотром страницы в браузере. Нужно проверить именно то, что видит поисковый робот.
Чек-лист проверки
- у страниц вложений есть 301-редирект на родительскую запись или главную;
- у архивов автора, меток и поиска стоит
noindex,follow, если они не нужны в индексе; - canonical указывает на правильный URL;
- страницы пагинации не каноникалятся на первую страницу без причины;
- служебные параметры не попадают в sitemap;
- внутренние ссылки ведут на чистые URL без лишних query string.
Проверяйте HTML через «Просмотр кода страницы» или curl. Например:
curl -I https://example.com/category/news/page/2/
curl -s https://example.com/category/news/page/2/ | grep -i canonicalЕсли у вас есть доступ к Google Search Console, посмотрите отчёт по страницам и индексации. После исправлений обычно видно, что количество дублей и альтернативных URL уменьшается, а в индексе остаются только нужные страницы. Но изменения не всегда отражаются мгновенно: поисковику нужно время на повторный обход.
Частые ошибки и как их исправить
Canonical ведёт на главную, хотя страница уникальна
Такое часто случается из-за шаблона темы или слишком агрессивной настройки SEO-плагина. Исправление простое: canonical должен указывать на саму страницу, если она несёт отдельную ценность. На главную можно каноникалить только явно дублирующийся или технический URL.
Все архивы закрыли noindex, а трафик на категории просел
Значит, вы закрыли не только мусор, но и полезные посадочные страницы. Категории с трафиком и уникальным описанием лучше оставлять индексируемыми. Закрывать стоит те архивы, которые не дают самостоятельной ценности.
Редиректы на вложения ломают изображения в старых материалах
Это бывает, если кто-то использует attachment URL как прямую ссылку на картинку. В таком случае редирект на родительскую запись обычно безопаснее, чем на главную. Если родителя нет, лучше отдавать файл напрямую или пересмотреть структуру медиа.
Параметры URL продолжают индексироваться
Одна только настройка canonical не всегда спасает, если сайт активно генерирует ссылки с параметрами. Нужно убрать источник параметров в шаблонах, меню и фильтрах. Иначе поисковик снова и снова будет находить новые комбинации.
Практические советы по безопасности и производительности
Чем меньше лишних URL генерирует сайт, тем проще ему жить: меньше обхода роботами, меньше мусора в логах, меньше нагрузки на шаблоны и SEO-логику. Это особенно заметно на больших сайтах с архивами и фильтрами.
- не плодите теги ради тегов — если таксономия не помогает навигации, она обычно не нужна;
- не используйте UTM во внутренних ссылках;
- не закрывайте всё подряд через robots.txt, если страница должна передавать вес через ссылки;
- не редактируйте SEO-логику прямо в теме, если есть возможность вынести её в мини-плагин;
- после обновления темы или SEO-плагина повторно проверяйте canonical и robots.
Если дубли создаёт не только SEO-слой, но и сама структура сайта, иногда проще сначала почистить таксономии и шаблоны, а уже потом настраивать мета-теги. Иначе вы будете лечить симптомы, а не причину.
Для сайтов, где проблема дублей сочетается с лишними архивами, дублями заголовков и мусорными страницами, полезно смотреть в сторону инструментов, которые помогают централизованно управлять SEO-правилами и чисткой сайта. Но даже в этом случае проверка руками остаётся обязательной: автоматические настройки не заменяют контроль конкретных URL.