Canonical URL: что это и как настроить

Что такое rel canonical, зачем он нужен поисковикам и как прописать тег canonical в HTML, HTTP-заголовках и популярных CMS.

Что такое canonical URL

Canonical URL (или rel canonical) — это HTML-тег, который сообщает поисковику: из всех версий этой страницы основная — вот эта. Он решает одну из самых частых проблем SEO — дублирование контента, когда один и тот же материал доступен по нескольким адресам.

Без canonical поисковик сам выбирает, какую версию считать основной, и нередко берёт не ту, которую вы хотели бы видеть в индексе. Тег даёт контроль: вы явно указываете предпочтительный URL, а Google и Яндекс в большинстве случаев следуют этой подсказке.

Canonical объединяет сигналы страниц-дублей на одной основной версии — той, которую поисковик показывает в выдаче.

Canonical в цифрах

2009

Год появления

Google, Yahoo и Bing совместно объявили о поддержке rel canonical — первого межотраслевого SEO-стандарта

~60%

Сайтов с дублями

По данным Ahrefs, около 60% сайтов имеют страницы с дублированным контентом, которым нужен canonical

3

Поисковых систем

Google, Яндекс и Bing поддерживают rel canonical. Это подсказка, а не директива: поисковик следует ей в большинстве, но не во всех случаях

≠ 301

Не редирект

Canonical — подсказка для поисковика, а не перенаправление пользователя. Страница-дубль остаётся доступной по своему URL

Canonical: смысл и базовое понятие

Слово «canonical» пришло в веб из математики и логики: canonical form — «каноническая форма», самое простое и стандартное представление объекта. В контексте URL canonical-адрес — это «официальная» ссылка, которую поисковик использует для ранжирования и индексации, а все остальные версии считает дублями.

Canonical часто путают с 301-редиректом. Главное различие: редирект — директива, canonical — подсказка. Редирект физически переводит пользователя на новый URL. Canonical оставляет пользователя на исходной странице, но сообщает поисковику, какой URL считать основным для индексации.

Критерийrel="canonical"301 редирект
Тип сигналаПодсказка (hint)Директива
Пользователь видитURL страницы-дубляURL назначения (основной)
Поисковик индексируетТолько canonical URLТолько URL назначения
Передача ссылочного весаЧастичная (не 100%)Полная (~99%)
Оба URL доступныДаНет — дубль отдаёт 301
ПрименениеДубли, фильтры, пагинацияПостоянное перемещение страницы

Как добавить тег canonical

Тег canonical размещают в секции <head> страницы-дубля. Синтаксис не менялся с 2009 года: это один пустой элемент <link>. Атрибут href должен содержать полный абсолютный URL:

html
<head>
  <meta charset="UTF-8">
  <title>Laptops — buy at TechShop</title>
  <link rel="canonical" href="https://example.com/catalog/laptops/">
</head>
Частая ошибка: некоторые пишут <meta rel="canonical"> или <meta name="canonical">. Такого тега не существует. Правильный вариант только один: <link rel="canonical" href="..."> внутри <head>. Поисковики meta-вариант полностью игнорируют.

Если страница — PDF, изображение или другой файл без HTML-<head>, canonical можно передать HTTP-заголовком Link. Пример конфигурации nginx ниже работает и для обычных страниц, если вы управляете сервером напрямую:

nginx
# nginx.conf — canonical via HTTP header
# For PDF and other non-HTML resources:
location ~* \.pdf$ {
    add_header Link '<https://example.com/docs/price-list.pdf>; rel="canonical"';
}

# For dynamic URLs with GET parameters:
location /catalog/ {
    add_header Link '<https://example.com/catalog/>; rel="canonical"';
}

Пять правил canonical, которые нарушают чаще всего:

  • Только абсолютные URL. Всегда пишите полный адрес: https://example.com/page/, а не /page/. Относительные canonical технически поддерживаются, но плохо работают при смене домена или протокола.
  • rel canonical на https. Canonical должен указывать на https-версию страницы. Если сайт на HTTPS, а canonical ведёт на http://, получается дубль, который поисковик не может корректно разрешить.
  • Один canonical на страницу. Если несколько тегов <link rel="canonical"> с разными href, поисковик игнорирует их все или выбирает произвольно.
  • Canonical должен открываться. Тег, который ведёт на URL с 404 или 301, бесполезен. Основная страница должна отдавать 200 OK.
  • Единый завершающий слеш. Если основная версия — /catalog/ (со слешем), canonical тоже должен содержать слеш. Смешение вариантов создаёт новые дубли.
Самоканоникализация — нормальная и даже рекомендуемая практика. Canonical страницы может указывать на саму страницу: это явный сигнал поисковику, что именно этот URL основной. Добавляйте self-canonical на все страницы сайта, включая основные.

Когда использовать canonical

Canonical решает шесть классических ситуаций дублирования контента. Разберём каждую на примерах реальных URL.

Ситуация 1GET-параметры и UTM-метки

URL вида /catalog/?sort=price и /catalog/?utm_source=email содержат тот же контент, что и /catalog/. Canonical на всех этих страницах должен вести на /catalog/. Это самый массовый источник дублей в интернет-магазинах.

Ситуация 2Canonical для пагинации

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

Ситуация 3Фильтры и сортировки

Страница категории с фильтрами может породить сотни URL: /shoes/?color=red&size=42. Если у страницы фильтра уникальный контент и есть поисковый спрос, её стоит индексировать. Если это дубль родительской категории, canonical ведёт на /shoes/.

Ситуация 4www, http/https, регистр

Четыре варианта главной: http://example.com, https://example.com, http://www.example.com, https://www.example.com. Выберите одну основную (лучше https://example.com без www) и настройте canonical и 301 со всех остальных.

Ситуация 5Кросс-доменный canonical

Если статью перепечатали на партнёрском сайте (синдикация, зеркало), попросите партнёра поставить canonical на ваш оригинал. Google поддерживает кросс-доменный canonical: он считает ваш домен источником и передаёт ссылочный вес.

Ситуация 6Агрегаторы и неканонические копии

Если ваша страница появляется на нескольких агрегаторах без вашего участия, добавьте self-canonical на оригинал. При выборе основной версии среди дублей Google отдаёт приоритет URL с явным self-canonical.

Non canonical — это не ошибка, а статус. В Google Search Console статус «Вариант страницы с тегом canonical» означает, что Google принял ваш canonical и не индексирует дубль. Это ожидаемый результат для страниц с намеренной деканоникализацией.

Canonical в CMS: WordPress, Битрикс и Tilda

Большинство популярных CMS формирует canonical автоматически или даёт встроенный инструмент. Ручная настройка нужна в нестандартных сценариях или когда CMS обрабатывает их некорректно.

WordPress

Плагины Yoast SEO и Rank Math автоматически добавляют самоканоникализирующий <link rel="canonical"> для каждой страницы и записи. Если плагины не используются, добавьте в functions.php вашей темы:

php
<?php
// functions.php — canonical without an SEO plugin
add_action('wp_head', function() {
    if (is_singular()) {
        echo '<link rel="canonical" href="' . esc_url(get_permalink()) . '">' . "\n";
    } elseif (is_home() || is_front_page()) {
        echo '<link rel="canonical" href="' . esc_url(home_url('/')) . '">' . "\n";
    }
}, 1);

Битрикс

В 1С-Битрикс canonical задают через свойства страницы. Стандартный подход: присвоить значение в компоненте и вывести его в header.php основного шаблона:

php
<?php
// In a component or init.php: set the canonical
$canonicalUrl = 'https://' . SITE_SERVER_NAME . $APPLICATION->GetCurPage(false);
$APPLICATION->SetPageProperty('canonical', $canonicalUrl);

// In the template's header.php: output the tag
$canonical = $APPLICATION->GetPageProperty('canonical');
if ($canonical):
?><link rel="canonical" href="<?= htmlspecialchars($canonical, ENT_QUOTES, 'UTF-8') ?>">
<?php endif; ?>

Tilda

Tilda: для каждой страницы откройте «Настройки страницы» → вкладку «SEO» → поле «Canonical URL». Tilda вставит тег в <head> автоматически. Для кросс-доменного canonical или нестандартных случаев используйте Zero Block с HTML-вставкой в <head>.

Ошибки и проверка через Google Search Console

Google Search Console — основной инструмент контроля canonical. В отчёте «Индексирование → Страницы» вы увидите несколько статусов, связанных с canonical:

Статус GSCЧто означаетЧто делать
Вариант страницы с тегом canonicalGoogle принял ваш canonical. Дубль не индексируется, ссылочный вес передаётся основной страницеВсё верно — это ожидаемое поведение
Вариант страницы, выбранный Google, отличается от выбранного пользователемGoogle проигнорировал ваш canonical и выбрал другой URL как основнойПроверьте: абсолютный URL? Нет ли 301? Контент страниц идентичен?
Дубль без указания основного документаПоисковик нашёл похожие страницы без canonicalДобавьте тег canonical на все страницы-дубли
ПроиндексированоСтраница принята в индекс как основная (self-canonical или выбрана явно)Норма для основных страниц

Помимо GSC, проверяйте canonical на уровне HTTP-ответа. Быстрее всего это сделать без инструментов: открыть исходный код страницы в браузере (Ctrl+U, поиск canonical) или выполнить curl:

bash
# Check canonical in HTTP header:
curl -sI https://example.com/catalog/?sort=price | grep -i link

# Check canonical in HTML (first 2000 bytes of response):
curl -s https://example.com/page/ | head -c 2000 | grep -i canonical
Типичные ошибки настройки canonical:
  • Цепочки canonical. Страница A → canonical B → canonical C. Поисковики предпочитают прямые указания. Убедитесь, что canonical сразу ведёт на итоговую основную страницу, без промежуточных переходов.
  • Canonical на редирект. Canonical, который ведёт на URL с 301, — двусмысленный сигнал: поисковику приходится идти по цепочке. Лучше сразу указать финальный URL.
  • Noindex + canonical — противоречие. Страница с noindex и canonical одновременно посылает конфликтующие сигналы. Используйте что-то одно: либо noindex для страницы, либо canonical на основную страницу.
  • Canonical через JavaScript. Google умеет обрабатывать canonical, добавленный скриптом, но это медленнее и надёжно не всегда. Лучше использовать статический <link> в HTML-<head>.
Быстрая проверка без инструментов: откройте страницу, нажмите Ctrl+U (исходный код) и найдите canonical. Если тега нет внутри <head> — проблема в шаблоне. Если canonical ведёт на 404 или на чужой домен без причины — критическая ошибка конфигурации.

FAQ

Ответы на самые частые вопросы о canonical, которые возникают в ходе SEO-аудитов.

Итог

Когда и как применять rel=canonical на практике.

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

Начните с проверки текущего состояния: GSC → отчёт «Страницы» → фильтр по статусам «Дубли» и «Не проиндексировано». Так быстро видно, где canonical отсутствует или его переопределяет поисковик.

В чём разница между canonical и 301 редиректом?
301 — директива: пользователь и поисковик физически переходят на новый URL, а старый перестаёт существовать. Canonical — подсказка: пользователь остаётся на текущем URL, а поисковик при индексации учитывает только canonical. Используйте 301, когда страница окончательно переехала. Canonical — когда один и тот же контент нужно сохранить сразу по нескольким URL.
Можно ли указать canonical на страницу другого домена?
Да. Кросс-доменный canonical поддерживают Google и Яндекс. Например, если вашу статью перепечатали на партнёрском сайте, попросите партнёра добавить <link rel="canonical" href="https://your-site.com/article/">. Google перенесёт ссылочный вес и авторство контента на ваш домен.
Почему Google игнорирует мой canonical?
Поисковик игнорирует canonical по нескольким причинам: (1) canonical-URL отличается от дубля по содержимому; (2) canonical ведёт на редирект или недоступный URL; (3) большинство входящих ссылок указывает на дубль, а не на canonical; (4) страницы открываются и с www, и без www без 301 на основную версию.
Как проверить canonical без краулера?
Тремя способами: (1) исходный код страницы — Ctrl+U, поиск canonical; (2) DevTools Chrome — вкладка Elements, поиск <link rel; (3) Google Search Console — отчёт «Страницы», клик по URL, и в боковой панели появятся поля «Canonical, выбранный Google» и «Canonical, указанный пользователем».
Как исправить статус «вариант страницы с тегом canonical» в GSC?
Этот статус исправлять не нужно: canonical работает правильно. Google признал страницу дублем и не индексирует её. Если страница должна индексироваться отдельно, уберите canonical или замените его на self-canonical (ссылку страницы на саму себя).

Check it with SpiderHead

Free and local: run the audit on your own machine.

Try it