Если в поиске появляются похожие страницы, 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 и он ведёт на нужный адрес.
Проверка обычно занимает несколько минут:
- откройте целевую страницу и её дубль;
- посмотрите исходный код и найдите
rel="canonical"; - сравните URL canonical с адресом основной страницы;
- проверьте, не меняется ли canonical на страницах пагинации и с параметрами;
- если используется 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. Для категорий, пагинации и параметров это обычно самый аккуратный способ навести порядок без агрессивных ограничений.