Если на сайте есть несколько адресов с одинаковым или почти одинаковым содержимым, поисковику нужно явно показать, какой URL считать основным. Для этого и используют canonical: он помогает не распылять сигналы между дублями и снижает риск, что в выдаче окажется не та версия страницы.
В WordPress canonical чаще всего нужен не для главной страницы, а для архивов, пагинации, страниц с параметрами фильтров, UTM-метками, сортировкой и похожих URL, которые ведут на один и тот же контент или на очень близкие его версии. Ниже разберём, как выбрать правильный канонический адрес и как настроить его без лишних костылей.
Что именно должен делать canonical
Canonical — это подсказка для поисковых систем, а не жёсткая команда. В HTML он задаётся через тег <link rel="canonical" href="..."> в <head>. Если у страницы есть несколько доступных URL, canonical сообщает, какой из них считать основным.
На практике это полезно в таких случаях:
- архив доступен с пагинацией, сортировкой или параметрами;
- фильтр создаёт отдельные URL, но контент почти не меняется;
- одна и та же страница открывается с
wwwи без него, по HTTP и HTTPS, со слэшем и без; - внутренние ссылки или рекламные метки добавляют параметры к URL;
- есть страницы-подборки, которые отличаются только набором несущественных параметров.
Важно не путать canonical с редиректом. Редирект отправляет пользователя и робота на другой адрес. Canonical оставляет страницу доступной, но подсказывает, какой URL предпочтителен для индексации. Если дубль не нужен вообще, часто правильнее делать именно редирект, а не надеяться на canonical.
Как выбрать канонический URL для дублей
Главное правило простое: канонический адрес должен быть тем URL, который вы хотите видеть в поиске и который лучше всего отражает основную версию страницы. Не ставьте canonical на случайный адрес только потому, что он короче или «красивее».
Архивы и пагинация
Если у вас архив категории или рубрики разбит на страницы, обычно каждая страница пагинации должна ссылаться сама на себя как на canonical. То есть страница 2 архива не должна канонизироваться на первую страницу, если на ней есть уникальный набор записей. Иначе поисковик может проигнорировать вторую страницу как дубль, хотя она содержит другой контент.
Для архивов логика такая:
- страница архива категории — canonical на саму себя;
- страница 2, 3 и дальше — тоже canonical на саму себя;
- если архив полностью дублируется из-за параметров сортировки, canonical обычно указывает на чистый URL без параметров.
Фильтры и параметры
Если фильтр меняет только способ просмотра, но не создаёт действительно самостоятельную страницу, canonical обычно ставят на базовый URL без параметров. Например, /catalog/ вместо /catalog/?color=red. Это типичный случай для сортировки, UTM-меток и технических параметров.
Но если фильтр формирует отдельную полезную посадочную страницу с уникальным контентом, заголовком и спросом, канонический адрес может быть именно у этой страницы. Здесь нельзя действовать по шаблону: сначала смотрят, есть ли у URL самостоятельная ценность для пользователя и поиска.
Похожие страницы и вариации одного материала
Если на сайте есть несколько очень похожих страниц, canonical выбирают в пользу той версии, которую вы хотите продвигать. Например, если одна и та же статья доступна по двум адресам из-за особенностей шаблона или плагина, каноническим должен быть один основной URL, а второй — дублирующим.
Если различия между страницами минимальны и не несут отдельной ценности, лучше не плодить их. В такой ситуации canonical помогает, но не заменяет нормальную структуру URL и контроль за генерацией дублей.
Как проверить, есть ли canonical в WordPress уже сейчас
Во многих темах и SEO-плагинах canonical уже выводится автоматически. Перед тем как что-то менять, проверьте текущую разметку страницы в браузере.
Откройте нужный URL, затем посмотрите исходный код страницы и найдите строку с rel="canonical". В большинстве случаев она должна быть одна. Если canonical отсутствует, дублируется или указывает не туда, тогда уже нужно вмешиваться в тему, плагин или шаблон.
Ещё один практичный способ — проверить страницу через инструменты для вебмастеров и посмотреть, какой URL поисковик считает каноническим. Это особенно полезно, если у вас уже есть дубли и вы хотите понять, как поисковая система интерпретирует разметку.
Как задать canonical в WordPress без конфликта с темой и плагинами
В WordPress canonical обычно задаётся одним из трёх способов: через SEO-плагин, через тему или вручную в шаблоне. Самый безопасный вариант — использовать один источник, а не несколько сразу. Если canonical выводит SEO-плагин, не дублируйте его в теме.
Через SEO-плагин
Если на сайте установлен SEO-плагин, у него обычно есть встроенная поддержка canonical для записей, страниц, архивов и таксономий. Это самый удобный путь, потому что плагин сам подставляет основной URL и часто учитывает тип страницы.
Но даже здесь нужно проверить настройки:
- не отключён ли вывод canonical;
- не создаёт ли плагин отдельные canonical для страниц с параметрами;
- не конфликтует ли он с другим SEO-плагином или кастомным кодом;
- не переопределяет ли тема мета-теги в
<head>.
Если canonical уже есть и он правильный, ничего дополнительно делать не нужно.
Вручную через wp_head
Если нужен точечный контроль над canonical для конкретного типа страниц, можно вывести его через хук wp_head. Такой способ подходит, когда стандартной настройки недостаточно, но использовать его стоит аккуратно: легко получить дублирующий тег, если тема или плагин уже выводят canonical автоматически.
Пример ниже показывает общий принцип. Перед добавлением такого кода убедитесь, что другой canonical на этих страницах не выводится.
add_action( 'wp_head', function () {
if ( is_page( 123 ) ) {
echo '<link rel="canonical" href="' . esc_url( home_url( '/page/' ) ) . '" />' . "\n";
}
}, 1 );Здесь 123 — ID страницы, а /page/ — адрес, который вы хотите сделать каноническим. Код лучше добавлять в дочернюю тему или в небольшой функциональный плагин, а не править напрямую файлы основной темы.
Если canonical нужен для архивов или фильтров, логика будет сложнее: адрес нужно собирать с учётом условий страницы и при необходимости убирать параметры запроса. В таких случаях безопаснее сначала проверить, нельзя ли решить задачу настройкой SEO-плагина или шаблона, а не писать универсальный код наугад.
Что делать с архивами, фильтрами и параметрами на практике
Для типичных дублей в WordPress удобнее опираться на понятные правила, а не разбирать каждый URL вручную.
- UTM-метки и рекламные параметры — canonical на чистый URL без параметров.
- Сортировка — обычно canonical на базовую страницу каталога или архива без сортировки, если сортировка не создаёт отдельную ценность.
- Фильтры с одинаковым контентом — canonical на основную страницу раздела.
- Пагинация архива — canonical на саму страницу пагинации, если она содержит уникальный набор записей.
- Дубли из-за разных версий домена — сначала приводят сайт к одному варианту через редирект, а canonical используют как дополнительную подсказку.
Если фильтр создаёт много URL, но вы не хотите, чтобы они попадали в поиск, одного canonical может быть недостаточно. В таком случае обычно дополнительно пересматривают внутреннюю перелинковку, структуру фильтрации и правила генерации страниц. Но это уже следующий уровень задачи: canonical сам по себе не исправляет плохую архитектуру URL.
Как понять, что настройка сработала
После изменения canonical проверьте три вещи. Во-первых, на странице должен быть только один тег rel="canonical". Во-вторых, он должен вести на правильный абсолютный URL с нужным протоколом и доменом. В-третьих, этот URL должен открываться без редиректов и без ошибок.
Если canonical указывает на адрес, который сам перенаправляет на другой URL, это плохой сигнал. Лучше сразу привести канонический адрес к финальной версии страницы, чтобы не создавать лишнюю цепочку.
Если вы меняли canonical для архивов или фильтров, проверьте несколько реальных сценариев: чистый URL, URL с параметрами, страницу пагинации, мобильную версию, если она отличается по шаблону. На практике именно здесь чаще всего всплывают конфликты между темой, плагином и ручным кодом.
Когда canonical не решает проблему
Canonical полезен, но не универсален. Если у вас есть полноценные дубли страниц, которые не должны существовать, лучше убрать причину дубля, а не просто пометить его как вторичный URL. Это касается, например, одинаковых страниц, доступных по нескольким маршрутам, или дублей, которые создаёт неправильная настройка сайта.
Также canonical не поможет, если:
- на странице одновременно выводятся несколько разных canonical;
- канонический URL закрыт от индексации или недоступен;
- страницы отличаются только формально, но поисковик видит их как отдельные и полезные;
- дубли создаются из-за ошибок в шаблоне или плагине, а canonical лишь маскирует симптом.
В WordPress лучше держать canonical под контролем на уровне шаблона и SEO-настроек, а не лепить его в нескольких местах сразу. Тогда и архивы, и фильтры, и похожие страницы будут вести себя предсказуемо, а поисковик получит понятный основной URL для каждой группы дублей.