Если в поиске или в отчётах аналитики у вас всплывают одинаковые страницы с разными параметрами URL, пагинацией или версиями одного и того же материала, canonical — это первый тег, который стоит проверить. Он не удаляет дубли физически, но подсказывает поисковым системам, какой URL считать основным.
В WordPress canonical обычно генерируется автоматически. Проблемы начинаются не тогда, когда тега нет, а когда он ведёт не туда: на URL с параметром, на страницу пагинации вместо основной записи или на альтернативную версию, которую вы не хотите видеть в выдаче. Ниже разберём, когда canonical действительно нужен, как его настроить и как убедиться, что он работает так, как вы ожидаете.
Когда canonical нужен, а когда проблема решается иначе
Canonical нужен в ситуациях, когда контент один и тот же, но доступен по нескольким адресам. Типичные примеры для WordPress:
- страница открывается с UTM-метками или другими параметрами в URL;
- одна и та же запись доступна через несколько архивов или фильтров;
- есть пагинация, и поисковик видит страницы вида
/page/2/,/page/3/; - у записи есть альтернативные URL из-за настроек темы, плагина или нестандартных правил;
- доступны версии с
wwwи без него, по HTTP и HTTPS, со слешем и без него — и это не приведено к одному каноническому адресу на уровне сайта.
Но canonical не заменяет базовую техническую чистку. Если сайт отдаёт одновременно несколько вариантов одного и того же адреса, сначала нужно привести к одному формату редиректами и настройками сервера. Canonical — это сигнал для поисковика, а не полноценная замена 301-редиректу.
Если у вас есть явные дубли, которые должны исчезнуть для пользователя тоже, используйте редирект. Если же страница должна открываться в нескольких вариантах по техническим причинам, canonical помогает выбрать основной URL без ломки сценариев.
Как WordPress формирует canonical по умолчанию
В актуальных версиях WordPress тег canonical добавляется автоматически через встроенный механизм в <head>. Для записей, страниц, рубрик и архивов он обычно указывает на основной URL объекта. Это удобно, пока тема и плагины не вмешиваются в разметку.
На практике проблемы возникают в трёх случаях:
- тема вручную выводит собственный canonical и дублирует встроенный тег;
- SEO-плагин переопределяет canonical, но делает это не для всех типов страниц одинаково;
- кастомный шаблон или фильтр формирует неправильный адрес, особенно на страницах с параметрами, пагинацией или нестандартными архивами.
Поэтому при диагностике важно не только посмотреть исходный код страницы, но и понять, кто именно выводит canonical: ядро WordPress, SEO-плагин или тема.
Как проверить canonical на странице
Проверка занимает пару минут и не требует специальных инструментов. Откройте нужную страницу в браузере и посмотрите исходный код. В большинстве браузеров это делается через просмотр кода страницы или поиск по rel="canonical".
В корректном варианте вы увидите один тег вида:
<link rel="canonical" href="https://example.com/primer-stranicy/" />Что важно проверить:
- на странице есть только один canonical;
- в
hrefуказан именно основной URL без лишних параметров; - протокол, домен и слеш в конце совпадают с тем вариантом, который вы считаете основным;
- для пагинации canonical не указывает на несуществующий или нерелевантный адрес.
Если вы используете Яндекс.Вебмастер или Google Search Console, там тоже можно увидеть, какой URL поисковик считает каноническим. Это полезно, когда на странице всё выглядит правильно, а поисковая система всё равно выбирает другой адрес — значит, сигналов на сайте недостаточно или они противоречат друг другу.
Настройка canonical для типовых дублей в WordPress
Параметры URL
Если дубль появляется только из-за параметров вроде ?utm_source=, ?sort= или ?filter=, canonical должен указывать на чистый URL без параметров. В большинстве случаев WordPress и SEO-плагины делают это автоматически, но после фильтров, сортировок и нестандартных шаблонов стоит проверить результат вручную.
Если параметр не меняет содержимое страницы, canonical на чистый адрес — правильный вариант. Если параметр реально меняет контент, например сортировку товаров или фильтрацию каталога, нужно отдельно оценить, должна ли такая страница вообще индексироваться. Canonical здесь не всегда решает задачу, потому что поисковик может проигнорировать его, если контент заметно отличается.
Пагинация
С пагинацией часто путают две разные задачи. Первая — не дать страницам /page/2/ и дальше конкурировать с основной страницей. Вторая — не потерять сами страницы пагинации, если они нужны для обхода каталога или архива.
Для обычных архивов canonical на второй и последующих страницах обычно указывает на саму страницу пагинации, а не на первую. Это нормальное поведение: каждая страница списка имеет свой URL и свой набор записей. Если же вы насильно ставите canonical со всех страниц пагинации на первую, можно ухудшить обход и индексацию глубоких страниц архива.
Исключение — когда пагинация создаёт технический дубль почти той же выдачи, а сама в поиске не нужна. Тогда лучше сначала проверить, не проще ли изменить структуру архива или закрыть от индексации конкретный тип страниц, чем ломать canonical вручную.
Альтернативные версии страниц
Если у вас есть AMP-версия, мобильная подстановка, печатная версия или другой альтернативный шаблон, canonical обычно должен вести на основную HTML-страницу. Иначе поисковик может начать считать альтернативную версию основной, что редко бывает полезно.
Здесь особенно важно не смешивать canonical с редиректами. Альтернативная версия может существовать для пользователя, но не должна претендовать на роль основной страницы в поиске. Если версия не нужна вовсе, безопаснее убрать её или закрыть от индексации, чем надеяться только на canonical.
Как задать canonical вручную, если автоматический тег неверный
В WordPress правильнее всего сначала искать источник ошибки в теме или SEO-плагине. Ручная правка нужна только тогда, когда автоматическая логика не подходит под ваш случай.
Если вы пишете код в теме или дочерней теме, canonical можно вывести через фильтр wpseo_canonical в Yoast SEO или через аналогичный механизм конкретного SEO-плагина. Но такие правки зависят от установленного плагина, поэтому универсального решения для всех сайтов нет. В ядре WordPress отдельного фильтра для canonical, который бы одинаково решал все сценарии, нет.
Практически безопасный путь такой:
- определить, кто выводит неправильный canonical;
- отключить или переопределить только этот источник;
- проверить, что на странице остался один тег;
- убедиться, что новый URL действительно основной для этой группы дублей.
Если вы не уверены, что именно правите, лучше не вставлять код в functions.php на боевом сайте без резервной копии. Ошибка в фильтре может сломать head-разметку или начать подставлять неправильные адреса на весь сайт.
Типичные ошибки, из-за которых canonical не помогает
Самая частая ошибка — ставить canonical на главную страницу сайта для всех похожих страниц. Это выглядит как быстрый способ «склеить» дубли, но на практике поисковик может проигнорировать такой сигнал, если страницы не являются почти идентичными.
Ещё несколько проблем встречаются регулярно:
- на странице одновременно есть canonical от темы и canonical от SEO-плагина;
- canonical указывает на URL с редиректом или 404;
- в canonical попадает URL с параметрами, которые должны быть убраны;
- на страницах пагинации canonical ведёт на первую страницу без необходимости;
- основной URL сайта отличается по протоколу, домену или слешу от того, что указан в canonical.
Если canonical конфликтует с редиректами, robots-метатегами и внутренними ссылками, поисковик ориентируется не на один сигнал, а на набор сигналов. Поэтому важно привести сайт к единой логике: один основной URL, корректные внутренние ссылки, один canonical на странице и отсутствие лишних дублей в навигации.
Как проверить, что настройка сработала
После правки не ограничивайтесь просмотром исходного кода. Проверьте три вещи:
- на странице остался один canonical и он указывает на нужный URL;
- страница открывается без лишних дублей по основным адресам;
- в Search Console или Яндекс.Вебмастере канонический URL постепенно совпадает с вашим выбором.
Если поисковик продолжает выбирать другой адрес, это не всегда ошибка. Иногда он игнорирует canonical, когда видит более сильные сигналы в пользу другого URL: внутренние ссылки, редиректы, sitemap, повторяющийся контент или нестандартную структуру страниц. Тогда нужно смотреть на сайт целиком, а не только на тег в head.
Для сайтов на WordPress хороший практический ориентир простой: canonical должен быть один, вести на чистый основной адрес и не спорить с редиректами, внутренними ссылками и настройками постоянных ссылок. Если это соблюдено, у поисковика гораздо меньше поводов считать ваши страницы дублями.
Если дубли создаёт не сам WordPress, а набор SEO-настроек и технических шаблонов, иногда быстрее навести порядок через плагин, который умеет управлять дублями и метатегами централизованно. Например, в экосистеме WPShop для таких задач подходит Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpstock.ru&utm_medium=article&utm_campaign=kak-nastroit-canonical-v-wordpress-dlya-borby-s-dublyami-stranits. Но даже с плагином принцип остаётся тем же: сначала найти источник дубля, потом проверить canonical, и только после этого считать задачу решённой.