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

Что такое rel canonical, зачем он нужен поисковикам и как прописать тег canonical в HTML, HTTP-заголовке и популярных CMS.
Что такое canonical URL
Canonical URL (или rel canonical) — это HTML-тег, который сообщает поисковику: из всех версий этой страницы именно эта — основная. Он решает одну из самых распространённых проблем SEO: дублирование контента, когда один и тот же материал доступен по нескольким адресам.
Без canonical поисковик сам решает, какую версию считать основной — и нередко выбирает не ту, которую вы хотели бы видеть в индексе. Тег даёт контроль: вы явно указываете preferred URL, и Google с Яндексом следуют этой подсказке в большинстве случаев.
Canonical в цифрах
Год появления
Google, Yahoo и Bing совместно анонсировали поддержку rel canonical — первый межотраслевой SEO-стандарт
Сайтов с дублями
По данным Ahrefs, около 60% сайтов имеют страницы с дублированным контентом, требующие canonical
Поисковика
Google, Яндекс и Bing поддерживают rel canonical. Hint, а не директива: поисковик следует ему в большинстве, но не во всех случаях
Не редирект
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:
<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.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
Canonical решает шесть классических ситуаций с дублированием контента. Разберём каждую с примерами реальных URL.
URL /catalog/?sort=price и /catalog/?utm_source=email содержат тот же контент, что и /catalog/. Canonical на всех этих страницах должен указывать на /catalog/. Это самый массовый источник дублей в интернет-магазинах.
Страницы /blog/page/2/, /blog/page/3/ содержат уникальный контент, поэтому canonical пагинация чаще всего означает самоканоникализацию каждой страницы. Не указывайте canonical всех страниц на первую — это скроет уникальный контент от индексации.
Страница категории с фильтрами генерирует сотни URL: /shoes/?color=red&size=42. Если контент страницы фильтра уникален и имеет поисковый спрос — индексируйте её. Если это дубль основной категории — canonical на /shoes/.
Четыре версии главной: http://example.com, https://example.com, http://www.example.com, https://www.example.com. Выберите одну основную (предпочтительно https://example.com без www) и установите canonical + 301 со всех остальных.
Если статья размещена на стороннем сайте (синдикация, зеркало), попросите партнёра добавить canonical на ваш оригинал. Google поддерживает кросс-доменный canonical — он воспринимает ваш домен как источник и переносит ссылочный вес.
Если ваша страница присутствует на нескольких агрегаторах без вашего участия, добавьте self-canonical на оригинале. Google приоритизирует URL с явным self-canonical при выборе основной версии среди дублей.
Canonical в CMS: WordPress, Битрикс и Tilda
Большинство популярных CMS генерирует canonical автоматически или предоставляет встроенный инструмент. Ручная настройка нужна при нестандартных сценариях или когда CMS не справляется корректно.
WordPress
Плагины Yoast SEO и Rank Math добавляют самоканоникализирующий <link rel="canonical"> автоматически для каждой страницы и поста. Если плагины не используются, добавьте в functions.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
// В компоненте или 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
<head> автоматически. Для кросс-доменного canonical или нестандартных случаев используйте Zero Block с HTML-вставкой в <head>.Ошибки и проверка через Google Search Console
Google Search Console — главный инструмент мониторинга canonical. В разделе «Индексирование → Страницы» вы увидите несколько статусов, связанных с canonical URL что это означает на практике:
| Статус GSC | Что означает | Что делать |
|---|---|---|
| Вариант страницы с тегом canonical | Google принял ваш canonical. Дубль не индексируется, ссылочный вес передаётся на основную страницу | Всё корректно — это ожидаемое поведение |
| Вариант страницы, выбранный Google, отличается от выбранного пользователем | Google проигнорировал ваш canonical и выбрал другой URL как основной | Проверьте: абсолютный URL? Нет 301? Контент страниц идентичен? |
| Дубль без указания основного документа | Поисковик нашёл похожие страницы без canonical | Добавьте тег canonical на все страницы-дубли |
| Проиндексировано | Страница принята в индекс как основная (self-canonical или явно выбрана) | Норма для основных страниц |
Помимо GSC, проверяйте canonical на уровне HTTP-ответа. Самый быстрый способ без инструментов — консоль браузера (Ctrl+U → поиск canonical) или curl:
# Проверить 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.
canonical. Если тег не в <head> — проблема с шаблоном. Если canonical ведёт на 404 или на чужой домен без причины — критическая ошибка конфигурации.FAQ
Ответы на самые частые вопросы о canonical, которые возникают в ходе SEO-аудитов.
Итог
Тег canonical — один из фундаментальных инструментов технического SEO. Он не сложен в реализации, но регулярно приводит к серьёзным проблемам с индексацией, когда настроен некорректно или отсутствует на сайтах с динамической генерацией URL. Три ключевых правила: абсолютный URL, rel canonical https, без цепочек — закрывают 80% возможных ошибок.
Начните с проверки текущего состояния: GSC → раздел «Страницы» → отфильтруйте по статусам «Дубли» и «Не проиндексировано». Это быстро покажет, где canonical отсутствует или игнорируется поисковиком.