Техническое SEO

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

Обложка статьи: canonical URL — что это и как настроить

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

Что такое canonical URL

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

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

Canonical в цифрах

2009

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

Google, Yahoo и Bing совместно анонсировали поддержку rel canonical — первый межотраслевой SEO-стандарт

~60%

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

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

3

Поисковика

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

≠ 301

Не редирект

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

Canonical: перевод и базовое значение

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

Часто canonical путают с 301-редиректом. Принципиальная разница: редирект — директива, canonical — подсказка (hint). Редирект физически перемещает пользователя на другой 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>Ноутбуки — купить в TechShop</title>
  <link rel="canonical" href="https://example.com/catalog/noutbuki/">
</head>
Частая ошибка: некоторые пишут <meta rel="canonical"> или <meta name="canonical"> — такого тега не существует. Правильно только <link rel="canonical" href="..."> внутри <head>. Мета-вариант canonical поисковики игнорируют полностью.

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

NGINX
# nginx.conf — canonical через HTTP-заголовок
# Для PDF и других не-HTML ресурсов:
location ~* \.pdf$ {
    add_header Link '<https://example.com/docs/price-list.pdf>; rel="canonical"';
}

# Для динамических URL с GET-параметрами:
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.
  • Единообразие trailing slash. Если основная версия страницы /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 пагинация чаще всего означает самоканоникализацию каждой страницы. Не указывайте 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 — он воспринимает ваш домен как источник и переносит ссылочный вес.

Ситуация 6Non canonical и агрегаторы

Если ваша страница присутствует на нескольких агрегаторах без вашего участия, добавьте 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 без SEO-плагина
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 главного шаблона. Битрикс canonical обычно настраивают так:

PHP
<?php
// В компоненте или init.php: устанавливаем canonical
$canonicalUrl = 'https://' . SITE_SERVER_NAME . $APPLICATION->GetCurPage(false);
$APPLICATION->SetPageProperty('canonical', $canonicalUrl);

// В header.php шаблона: выводим тег
$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 URL что это означает на практике:

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

Помимо GSC, проверяйте canonical на уровне HTTP-ответа. Самый быстрый способ без инструментов — консоль браузера (Ctrl+U → поиск canonical) или curl:

BASH
# Проверить canonical в HTTP-заголовке:
curl -sI https://example.com/catalog/?sort=price | grep -i link

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

FAQ

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

Итог

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

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

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