Как убрать дубли страниц в WordPress и настроить canonical без потери индексации

В WordPress дубли страниц появляются не только из-за ошибок в теме. Чаще всего их создают архивы, пагинация, теги, страницы автора, параметры в URL, а иногда и сам SEO-плагин, если в настройках оставлены лишние типы архивов. В результате поисковик видит несколько адресов с одинаковым или почти одинаковым содержимым и выбирает канонический URL не всегда так, как ожидает владелец сайта.

Если задача не в том, чтобы «закрыть всё от индексации», а в том, чтобы оставить в поиске нужные страницы и убрать технический шум, лучше идти по шагам: сначала найти источник дублей, потом решить, что именно должно индексироваться, и только после этого править canonical, robots и шаблоны архивов.

Диагностика: откуда в WordPress берутся дубли

Перед правками стоит понять, какой именно тип дубля у вас есть. Это важно, потому что одинаковая проблема может решаться по-разному: где-то достаточно настроить canonical, а где-то лучше вообще отключить архивы или пагинацию для части контента.

Что проверить в первую очередь

  • страницы с параметрами в URL: ?utm_, ?replytocom, фильтры, сортировки;
  • архивы рубрик, тегов, автора, дат;
  • страницы пагинации: /page/2/, /page/3/;
  • дубли главной: с www и без, с http и https;
  • страницы вложений медиафайлов, если они открыты в индексацию;
  • дубли из-за нескольких шаблонов одного и того же контента в теме или плагине.

Самый быстрый способ увидеть картину — открыть исходный код проблемной страницы и найти тег <link rel="canonical" ...>. Если canonical указывает не туда, куда должен, или отсутствует, это уже конкретная точка для исправления. Дополнительно полезно посмотреть отчёты в Google Search Console: там часто видны «дубликат, выбранная пользователем canonical отличается» и похожие сигналы.

Когда проблема не в canonical, а в структуре сайта

Если у вас десятки пустых тегов, архивы автора на однопользовательском сайте и страницы вложений в индексе, canonical сам по себе не спасёт. Поисковик может продолжать тратить краулинговый бюджет на мусорные URL. В таких случаях нужно не только проставить канонический адрес, но и убрать источник дублей из генерации сайта.

ПодходКогда подходитКомпромисс
Только canonicalЕсть несколько URL одной страницы, но индексировать нужно одинНе убирает лишние URL из обхода полностью
Noindex для архивовАрхивы не несут ценности для поискаНужно аккуратно не закрыть полезные страницы
Отключение архивов в теме/плагинеАрхивы не нужны вообщеПотребуется правка шаблонов и меню

Пошаговое решение: canonical, архивы и параметры URL

Ниже схема, которая обычно работает без лишней магии. Сначала приводим к одному виду домен и протокол, затем настраиваем SEO-плагин, после этого правим проблемные шаблоны, если canonical генерируется неверно.

1. Зафиксируйте основной вариант домена

Проверьте, что сайт открывается только в одном варианте: https, с www или без него — как выбрано в настройках. На уровне сервера и WordPress не должно быть двух равноправных адресов одной и той же страницы. Если редиректов нет, поисковик может индексировать обе версии.

В wp-config.php должны быть корректно указаны адреса сайта, если они задаются вручную:

define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

Если адреса задаются в админке, не дублируйте их в конфиге без необходимости. Иначе потом сложно понять, откуда берётся расхождение.

2. Настройте canonical для архивов и записей

Если вы используете SEO-плагин, проверьте, как он формирует canonical на записях, страницах и архивах. Для большинства стандартных случаев лучше оставить автоматическую генерацию, а не писать свой код поверх неё. Ручное вмешательство имеет смысл только если тема или плагин подменяют canonical на неправильный URL.

Если нужно принудительно задать canonical для конкретного типа страниц, можно использовать фильтр wpseo_canonical в Yoast SEO или аналогичный механизм вашего SEO-плагина. Пример ниже показывает идею для отдельной записи, но применять его стоит только там, где действительно есть ошибка:

add_filter('wpseo_canonical', function ($canonical) {
    if (is_singular('post') && is_page_template('templates/landing.php')) {
        return home_url('/blog/');
    }

    return $canonical;
});

Этот код не нужен на каждом сайте. Он полезен только тогда, когда одна и та же сущность доступна по нескольким адресам и вы хотите жёстко указать основной.

3. Закройте от индексации бесполезные архивы

Если у вас однопользовательский сайт, архив автора обычно не нужен. То же касается пустых тегов и дат, если они не дают трафик и не несут навигационной пользы. Их лучше перевести в noindex, follow или отключить в SEO-настройках.

Если делаете это кодом, не закрывайте всё подряд. Например, можно убрать архивы автора только на сайте с одним автором:

add_filter('author_rewrite_rules', function ($rules) {
    if (count_users()['total_users'] === 1) {
        return array();
    }

    return $rules;
});

Но на практике чаще удобнее сделать это через SEO-плагин или настройки темы, чтобы не ломать маршрутизацию вручную. Код выше — не универсальное решение, а пример того, как можно убрать ненужный тип архива на уровне логики сайта.

4. Уберите страницы вложений из индекса

Страницы медиафайлов часто создают тонкие дубли: на них почти нет контента, а ценности для поиска обычно мало. Если такие страницы уже в индексе, настройте редирект вложений на файл или на родительскую запись. Это можно сделать плагином или кодом, если тема не мешает.

Для проверки страницы вложения откройте URL изображения как отдельной страницы. Если там пустой шаблон или почти пустая страница, её лучше не оставлять в поиске.

Когда нужен код, а когда достаточно настроек плагина

Не все дубли стоит лечить кодом. Если проблема типовая, быстрее и безопаснее использовать настройки SEO-плагина. Код нужен там, где плагин не видит ваш сценарий: нестандартный тип записи, особая логика канонического адреса, конфликт темы с архивами.

СценарийЧто делатьРиск
Пустые теги и рубрикиОтключить индексирование или удалить таксономииПотеря навигации, если рубрики используются в меню
Дубли с параметрами URLНастроить canonical и не плодить внутренние ссылки с параметрамиПараметры могут продолжать обходиться ботом
Неверный canonical на шаблонеИсправить фильтром в теме или мини-плагинеСломать SEO, если условие написано слишком широко
Архивы автора на сайте с одним авторомЗакрыть или отключитьПотеря смысла архива, если авторов станет несколько

Проверка результата после внедрения

После правок не ограничивайтесь тем, что страница открывается без ошибок. Нужно проверить именно SEO-часть: canonical, статус индексации и отсутствие лишних дублей в выдаче поисковика.

Что проверить вручную

  • в исходном коде страницы canonical указывает на нужный URL;
  • редирект с http на https работает;
  • варианты с www и без него не открываются как отдельные страницы;
  • архивы, которые вы закрывали, отдают ожидаемый noindex или редирект;
  • страницы вложений не создают отдельные индексируемые URL;
  • внутренние ссылки не ведут на адреса с параметрами, если это не нужно.

Для быстрой технической проверки можно посмотреть заголовки ответа и canonical через curl:

curl -I https://example.com/sample-post/
curl -s https://example.com/sample-post/ | grep -i canonical

Если canonical в HTML есть, но в Search Console всё равно долго показываются дубли, это не всегда ошибка. Поисковику нужно время, чтобы переоценить сигналы. Важно, чтобы на сайте не осталось противоречий: один URL в sitemap, другой в canonical, третий в внутренних ссылках.

Частые ошибки и как их исправить

Canonical указывает на главную вместо записи

Такое часто бывает из-за кривого шаблона темы или слишком агрессивного фильтра в SEO-плагине. Проверьте, не подменяется ли canonical глобально для всех страниц. Исправление обычно сводится к тому, чтобы сузить условие до конкретного типа записи или убрать конфликтующий код.

Закрыли от индексации всё подряд

Иногда после борьбы с дублями сайт теряет полезные архивы, а вместе с ними — внутреннюю перелинковку. Если рубрики реально помогают пользователю, не закрывайте их без анализа. Лучше убрать только пустые и мусорные архивы, а полезные оставить доступными.

Оставили в меню URL с параметрами

Если в навигации есть ссылки с ?utm_ или другими параметрами, вы сами создаёте лишние варианты адресов. Внутренние ссылки должны вести на чистый канонический URL, а параметры — только для внешней аналитики, если они действительно нужны.

Редиректы сделаны через несколько плагинов сразу

Когда один плагин редиректит www, другой — вложения, а третий — архивы, легко получить цепочки и петли. Лучше оставить один источник логики для редиректов и задокументировать, что именно он делает. Это особенно важно на сайтах, где уже есть кеш и CDN.

Практические советы по безопасности и производительности

Чем меньше лишних архивов и параметров, тем проще обход сайта для поисковых роботов и тем меньше мусора в кеше. Это не означает, что нужно отключить всё техническое. Но если страница не несёт ценности, лучше не тратить на неё ресурсы генерации и индексации.

  • не создавайте отдельные страницы под каждую комбинацию фильтров, если они не нужны для SEO;
  • не дублируйте одну и ту же запись через разные шаблоны темы;
  • не подменяйте canonical через несколько плагинов одновременно;
  • проверяйте sitemap после отключения архивов и таксономий;
  • если используете кеш, очищайте его после изменения canonical и редиректов.

Если нужен более системный подход к чистке дублей и техническим настройкам, можно посмотреть на Clearfy Pro. Но даже с плагином полезно понимать, какие URL вы оставляете в индексе и почему.

В итоге рабочая схема простая: найти источник дублей, оставить один канонический адрес для каждой полезной страницы, убрать из индекса мусорные архивы и проверить результат не только в браузере, но и в HTML, заголовках ответа и Search Console. Тогда canonical перестаёт быть формальной меткой и начинает реально помогать структуре сайта.

Как убрать дубли страниц в WordPress и настроить canonical без потери индексации
15.09.2026