Если у вас один и тот же товар, статья или каталог открывается по разным URL из-за фильтров, сортировки или UTM-меток, поисковик видит дубли. В такой ситуации canonical нужен не «для красоты», а чтобы явно показать основную версию страницы, которую стоит считать канонической. Для WordPress это особенно актуально на каталогах, архивах, страницах с параметрами сортировки и любых посадочных, куда добавляют рекламные метки.
Короткий ответ такой: canonical должен указывать на чистый, стабильный URL без лишних параметров, если параметры не меняют смысл страницы. Если же фильтр действительно создаёт отдельную полезную страницу с уникальным спросом, каноническая ссылка может оставаться на саму эту страницу, но это уже отдельный сценарий. Ниже разберём, как выбрать правильный вариант и как настроить его в WordPress без лишних рисков.
Когда canonical нужен именно для фильтров и сортировки
Проблема обычно выглядит одинаково: одна и та же страница доступна по нескольким адресам. Например, каталог можно открыть без параметров, с сортировкой по цене, с фильтром по бренду или с UTM-метками после перехода из рекламы. Контент при этом либо не меняется вообще, либо меняется несущественно: список товаров тот же, меняется только порядок, а UTM не влияет на содержимое.
Для поисковой системы это набор почти одинаковых страниц. Если не задать канонический адрес, она может:
- выбрать не тот URL для показа в выдаче;
- размазать сигналы между дублями;
- создать каннибализацию, когда разные версии одной страницы конкурируют между собой;
- тратить краулинговый бюджет на бесполезные параметры.
Canonical не запрещает индексацию сам по себе. Он подсказывает, какую версию считать основной. Поэтому важно не просто «поставить canonical», а выбрать правильную целевую страницу.
Какую страницу указывать в canonical
Здесь есть простое правило: canonical должен вести на ту версию, которую вы хотите видеть в поиске как основную. В большинстве случаев это чистый URL без параметров.
Сортировка
Если параметр сортировки меняет только порядок элементов, а не смысл страницы, canonical обычно должен указывать на URL без сортировки. Например, страница каталога с сортировкой по цене или популярности должна канонизироваться на базовый адрес каталога.
Это логично: поисковику не нужна отдельная индексируемая версия «товары, отсортированные по цене». Для пользователя сортировка полезна, но для поиска это не новый документ.
Фильтры
С фильтрами нужно смотреть на смысл. Если фильтр просто сужает выбор внутри каталога и не создаёт полноценную посадочную страницу с отдельным спросом, canonical обычно тоже ведёт на базовый каталог или на более общую категорию.
Если же фильтр фактически формирует отдельную посадочную страницу, которую вы осознанно продвигаете, canonical может оставаться на саму эту страницу. Но тогда у неё должны быть уникальные title, description, текст и понятная ценность для поиска. Иначе вы получите ещё один дубль, только уже «официальный».
UTM-метки и рекламные параметры
UTM-метки почти всегда не должны менять canonical. Это служебные параметры для аналитики, а не отдельная версия контента. Для URL с UTM canonical обычно указывает на чистую страницу без меток.
То же относится к большинству технических параметров, которые не меняют содержимое: источник трафика, кампания, клик-ID и похожие хвосты. Исключение бывает только тогда, когда параметр реально влияет на контент, а не на аналитику.
Как настроить canonical в WordPress на практике
В WordPress canonical чаще всего формируется автоматически темой, SEO-плагином или самим шаблоном страницы. Поэтому сначала проверьте, кто именно выводит тег rel="canonical". Если у вас установлен SEO-плагин, он обычно уже добавляет canonical на большинство страниц. Проблема возникает, когда:
- плагин не учитывает параметр фильтра или сортировки;
- тема выводит свой canonical поверх плагина;
- на странице с параметрами canonical указывает на саму себя, хотя должен вести на чистый URL;
- несколько плагинов одновременно пытаются управлять мета-тегами.
Дальше есть два рабочих сценария: настроить canonical через SEO-плагин или задать его вручную в теме/дочерней теме для конкретного типа страниц.
Вариант 1. Настроить через SEO-плагин
Если у вас уже есть SEO-плагин, это самый безопасный путь. У большинства таких плагинов canonical настраивается автоматически, а для отдельных страниц можно задать собственный канонический адрес в редакторе записи или страницы. Это удобно, когда речь идёт о посадочной странице, а не о массовых URL с параметрами.
Проверьте в настройках плагина, не включены ли дополнительные правила, которые могут ломать canonical на страницах с параметрами. Если плагин умеет задавать canonical вручную для конкретной записи, используйте это для страниц, которые должны ссылаться на чистый URL или на другую каноническую страницу.
Для каталожных страниц и архивов с параметрами этого часто недостаточно, потому что параметры генерируются динамически. Тогда нужен код на стороне темы или дочерней темы.
Вариант 2. Задать canonical через код для страниц с параметрами
Если нужно принудительно заменить canonical для URL с фильтрами или сортировкой, можно использовать фильтр wpseo_canonical в Yoast SEO или аналогичный механизм вашего SEO-плагина. Ниже пример для Yoast SEO: он убирает параметры sort, orderby, filter и UTM-метки из canonical и оставляет базовый URL.
Перед изменениями сделайте резервную копию и вносите код в дочернюю тему или через небольшой mu-plugin. Не правьте напрямую файлы основной темы, иначе обновление всё затрёт.
<?php
add_filter( 'wpseo_canonical', function( $canonical ) {
if ( is_admin() ) {
return $canonical;
}
$params_to_remove = array(
'sort',
'orderby',
'order',
'filter',
'utm_source',
'utm_medium',
'utm_campaign',
'utm_term',
'utm_content',
);
$base_url = home_url( add_query_arg( array(), $GLOBALS['wp']->request ) );
if ( ! empty( $canonical ) ) {
$parsed = wp_parse_url( $canonical );
if ( ! empty( $parsed['path'] ) ) {
$base_url = home_url( $parsed['path'] );
}
}
$clean_url = remove_query_arg( $params_to_remove, $base_url );
return $clean_url;
} );Этот пример полезен как отправная точка, но его нужно адаптировать под ваш сайт. Не все параметры одинаковы, и не всегда достаточно просто удалить UTM. Если фильтры меняют путь, а не query string, логика будет другой. В таком случае canonical лучше собирать от базового архива или категории, а не пытаться «чистить» текущий адрес.
Если у вас не Yoast SEO, ищите в документации плагина фильтр или настройку, отвечающую за canonical. Названия хуков у разных решений отличаются, и выдумывать универсальный код здесь нельзя: сначала нужно понять, какой плагин реально управляет мета-тегом на сайте.
Когда canonical не решает проблему полностью
Canonical помогает выбрать основную страницу, но не всегда убирает все дубли из индекса. Если на сайте много параметров, одних канонических ссылок может быть мало. Поисковик всё равно может обходить параметрические URL, особенно если на них есть внутренняя перелинковка или они доступны из фильтров.
Поэтому canonical лучше сочетать с нормальной логикой ссылок на сайте:
- не ставить в меню и блоки ссылок на URL с UTM;
- не генерировать внутренние ссылки на сортировки, если они не нужны для SEO;
- по возможности закрывать от индексации служебные параметры на уровне шаблона или сервера, если это оправдано;
- не создавать десятки почти одинаковых посадочных страниц без явной необходимости.
Но здесь важно не перегнуть. Если вы начнёте массово закрывать всё подряд, можно случайно убрать из поиска полезные страницы. Для фильтров и сортировки canonical обычно безопаснее, чем жёсткие запреты.
Как проверить, что canonical работает правильно
После настройки откройте несколько вариантов одной и той же страницы:
- чистый URL;
- URL с сортировкой;
- URL с фильтром;
- URL с UTM-метками.
В исходном коде страницы должен быть один тег link rel="canonical", и его href должен вести на нужный адрес. Проверьте, чтобы canonical:
- не содержал лишних параметров;
- не указывал на сам параметрический URL, если это не задумано специально;
- не конфликтовал с
noindex, если вы используете его отдельно; - не дублировался несколькими плагинами или темой.
Дополнительно полезно посмотреть, как поисковик видит страницу в Search Console. Если canonical выбран корректно, в отчётах обычно видно, что Google предпочёл именно ваш канонический URL, а не параметрическую версию. Но помните: поисковик может игнорировать подсказку, если считает другую страницу более подходящей. Это нормально, если на сайте есть противоречивые сигналы.
Типичные ошибки при настройке canonical
Самая частая ошибка — указывать canonical на страницу с параметрами, потому что «она же открылась первой». Для SEO это почти всегда плохая идея, если параметры не меняют смысл контента. Вторая ошибка — ставить canonical на главную страницу сайта для всех фильтров подряд. Так вы теряете релевантность и смешиваете разные типы страниц.
Ещё одна проблема — конфликт между плагином и темой. Если один компонент выводит canonical на чистый URL, а другой — на текущий адрес с параметрами, поисковик получает противоречивые сигналы. В таком случае сначала найдите источник дублирующего тега, а уже потом меняйте логику.
И наконец, не путайте canonical с редиректом. Canonical — это подсказка для поисковика, а не перенаправление пользователя. Если вам нужно реально убрать параметрический URL из обращения, тогда нужен редирект или другая серверная логика, но это уже отдельная задача и не всегда подходит для фильтров.
Если упростить до практического правила: для сортировки и UTM почти всегда используйте чистый URL; для фильтров — чистый URL, если фильтр не является самостоятельной посадочной страницей; для действительно ценных фильтров — отдельную каноническую страницу с уникальным содержимым и осмысленной SEO-структурой. Именно так canonical помогает убрать дубли и не создавать каннибализацию в выдаче.