Как настроить canonical в WordPress для борьбы с дублями страниц

Если в поиске появляются похожие страницы, canonical помогает подсказать поисковику, какую версию считать основной. Это не запрет на обход и не жёсткое закрытие дублей, а сигнал: «вот главный URL, а остальные — его варианты». Для WordPress это особенно полезно на категориях, страницах с пагинацией и URL с параметрами фильтрации или сортировки.

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

Когда canonical действительно нужен

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

Canonical нужен, когда страницы похожи по содержанию, но вы хотите оставить их доступными для пользователей и при этом указать поисковику основную версию. Типичные случаи:

  • категория доступна по нескольким URL из-за фильтров или сортировки;
  • страница списка разбита на пагинацию, и нужно показать, что это части одного раздела;
  • одна и та же запись открывается с UTM-метками или другими параметрами;
  • есть архивы, которые почти повторяют друг друга по составу материалов.

Если же страница реально не нужна в поиске и не имеет самостоятельной ценности, canonical обычно не заменяет полноценное решение. В таких случаях чаще смотрят в сторону noindex, редиректа или изменения структуры сайта. Но это уже другая задача.

Как должен работать canonical в WordPress

Canonical — это тег в секции <head> вида <link rel="canonical" href="https://example.com/page/" />. Он указывает предпочтительный адрес страницы. Для WordPress важно, чтобы на каждой версии URL canonical был логичным и не конфликтовал с реальным содержимым.

На практике есть три рабочих сценария:

  • у страницы один канонический URL без параметров;
  • у пагинированных страниц canonical указывает на саму текущую страницу или на основную страницу раздела — в зависимости от логики шаблона и SEO-настройки;
  • у URL с параметрами canonical указывает на чистую версию без параметров.

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

Проверка базовой настройки в WordPress

Во многих темах и SEO-плагинах canonical уже выводится автоматически. Поэтому сначала нужно понять, не дублирует ли его тема или плагин, и не подменяется ли он вручную.

Проверьте исходный код страницы: откройте нужный URL в браузере, затем посмотрите HTML в <head>. Ищите строку с rel="canonical". На странице должен быть один canonical, а его адрес — абсолютный, с правильным протоколом, доменом и завершающим слешем, если он используется на сайте.

Если canonical отсутствует, это уже повод проверить тему и SEO-плагин. Если он есть, но ведёт не туда, сначала ищите источник конфликта: часто это настройки SEO-плагина, кастомный код в теме или фильтр, который переопределяет тег.

Как задать canonical для конкретной страницы или записи

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

Если на сайте используется Yoast SEO, Rank Math или похожий плагин, в настройках конкретной записи обычно можно указать канонический URL вручную. Это удобно, когда у материала есть несколько доступных адресов, но нужен один основной. Например, запись открывается и через архив рубрики, и через прямую ссылку, а canonical должен вести только на прямой URL записи.

Если плагин не даёт ручного поля, можно использовать фильтр WordPress. Для записей и страниц в WordPress есть фильтр wpseo_canonical у Yoast SEO, а у Rank Math — свои фильтры. Но применять их стоит только если вы точно понимаете, какой плагин стоит на сайте и как он формирует head. Универсального кода, который одинаково хорошо подойдёт всем SEO-плагинам, здесь нет.

Canonical для категорий, пагинации и параметров

Именно здесь чаще всего и возникает практическая задача. У категории может быть чистый URL, а ещё варианты с сортировкой, фильтрами и страницами вида /page/2/. Поисковику нужно объяснить, что это не случайные дубли, а связанные версии одного раздела.

Категории

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

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

Пагинация

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

Для архивов и категорий с пагинацией canonical на первую страницу имеет смысл только тогда, когда страницы 2, 3 и далее не несут самостоятельной ценности для поиска. Но в большинстве контентных сайтов это спорное решение. Если на второй странице есть новые записи, лучше не склеивать её с первой без необходимости.

Параметры URL

Параметры сортировки, фильтрации и отслеживания почти всегда создают дубли. Например, ?sort=price, ?filter=red или UTM-метки. Для таких URL canonical обычно должен вести на чистую версию страницы без параметров.

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

Как настроить canonical вручную в теме, если плагина недостаточно

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

В WordPress canonical можно вывести в head через хук wp_head. Но перед изменениями сделайте резервную копию и работайте в дочерней теме или через отдельный плагин для сайта. Если вставить код прямо в родительскую тему, он исчезнет после обновления.

Пример простого вывода canonical для конкретного шаблона:

add_action('wp_head', function () {
    if (is_category()) {
        echo '<link rel="canonical" href="' . esc_url(get_category_link(get_queried_object_id())) . '" />' . "\n";
    }
});

Этот пример показывает идею: для категории canonical берётся из стандартной функции WordPress get_category_link(). Но если на сайте уже есть SEO-плагин, такой код может создать дублирующий тег. Поэтому сначала проверьте, не выводит ли canonical плагин автоматически.

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

Как проверить, что canonical настроен правильно

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

Проверка обычно занимает несколько минут:

  1. откройте целевую страницу и её дубль;
  2. посмотрите исходный код и найдите rel="canonical";
  3. сравните URL canonical с адресом основной страницы;
  4. проверьте, не меняется ли canonical на страницах пагинации и с параметрами;
  5. если используется SEO-плагин, убедитесь, что он не выводит второй canonical через тему или кастомный код.

Полезно также проверить страницу через инструменты для вебмастеров поисковой системы. Там видно, какой canonical выбран самим поисковиком и совпадает ли он с вашим. Если поисковик выбрал другой адрес, это не всегда ошибка, но повод пересмотреть структуру дублей и внутренние ссылки.

Что чаще всего ломает canonical

На практике проблемы почти всегда связаны не с самим тегом, а с конфликтом нескольких источников. Вот что встречается чаще всего:

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

Если нужно быстро убрать технические дубли на сайте, иногда помогает и специализированный SEO-плагин. Например, Clearfy Pro от WPShop закрывает часть типовых задач по чистке дублей и SEO-настройкам, но canonical всё равно нужно проверять вручную, особенно на категориях и архивных страницах: https://wpshop.ru/plugins/clearfy?utm_source=wpstandart.ru&utm_medium=article&utm_campaign=canonical-v-wordpress-dlya-borby-s-dubljami-stranic.

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

Как создать собственный тип записи в WordPress с примером кода
01.10.2026
Как удалить из индекса страницы WordPress, которые уже не нужны
24.10.2026
Как убрать из индекса страницы с параметрами в URL WordPress
15.10.2026
Как настроить canonical в WordPress для борьбы с дублями страниц
20.10.2026
Как установить ограничения на регистрацию пользователей в WordPress
30.09.2026