Перейти к содержимому
Попробовать

rel=canonical простыми словами: когда нужен и как настроить

rel="canonical" — это подсказка поисковику: «вот эта страница главная, если ты найдёшь её копии — считай их дублями и склеивай сигналы в мою пользу». Одна строчка в <head>, а решает крупную проблему: рассеянный вес между одинаковыми URL, каннибализацию и мусор в индексе. В этом гайде разберём, что такое канонический URL, где он обязателен, какие ошибки убивают его эффект и как настроить canonical на популярных CMS без плагинов-комбайнов.

Что такое канонический URL простыми словами

Канонический URL — адрес, который вы объявляете «оригиналом» страницы. Всё остальное — её варианты. Пример: интернет-магазин продаёт кроссовки, и страница товара доступна по трём адресам:

  • https://site.ru/krossovki/nike-air
  • https://site.ru/krossovki/nike-air?utm_source=vk
  • https://site.ru/krossovki/nike-air?color=black&size=42

Для пользователя это одна и та же карточка. Для поисковика — три разные страницы с идентичным контентом. Робот не знает, какую показывать в выдаче, и делит между ними ссылочный вес и поведенческие сигналы. Итог: ни одна не выходит в топ.

Canonical решает проблему одним тегом. На всех трёх URL вы прописываете <link rel="canonical" href="https://site.ru/krossovki/nike-air">, и Яндекс с Google понимают: главная — первая, дубли клеим к ней. Про сами дубли и другие способы борьбы с ними — в статье как найти и убрать дубли страниц.

Зачем canonical нужен: как поисковик выбирает главную из дублей

Без canonical поисковик всё равно попытается выбрать главную страницу сам. Это называется «каноникализация» — процесс, при котором из группы похожих URL алгоритм выделяет одну для индекса. Проблема в том, что выбор бывает неочевидным: робот может оставить в выдаче страницу с UTM-меткой вместо чистого URL, версию с параметром сортировки или www-версию, когда вы работаете с non-www.

Три конкретных последствия, если пустить процесс на самотёк:

Рассеянный вес. Внешняя ссылка на site.ru/page?utm_source=email не передаёт вес чистому site.ru/page — робот воспринимает их как разные страницы. Canonical склеивает сигналы: даже если ссылка ведёт на версию с параметром, вес прилетает канонической.

Каннибализация в выдаче. Две одинаковые страницы конкурируют между собой по одному запросу. Ни одна не набирает достаточно сигналов, чтобы уверенно ранжироваться, обе плавают в топ-20–30.

Раздутый краулинговый бюджет. Робот тратит время на обход дублей вместо новых и обновлённых страниц. Для крупных каталогов с фильтрами это критично — сайт в 1 000 товаров генерирует десятки тысяч URL из-за комбинаций параметров.

Синтаксис: два способа указать canonical

Поисковики принимают canonical в двух форматах — HTML-тегом и HTTP-заголовком. Оба работают одинаково.

Тег в HTML

Основной способ. Ставится в <head> документа:

<head>
  <title>Кроссовки Nike Air — купить в Москве</title>
  <link rel="canonical" href="https://site.ru/krossovki/nike-air">
</head>

Требования:

  • Внутри секции <head>, не в <body>
  • href — абсолютный URL с протоколом (не /krossovki/nike-air, а полный https://site.ru/krossovki/nike-air)
  • Один тег на страницу — если их два, робот проигнорирует оба или выберет первый

HTTP-заголовок Link

Используется, когда HTML-тег добавить некуда — например, для PDF, DOCX, картинок, которые тоже могут попасть в индекс. Настраивается на уровне сервера:

Link: <https://site.ru/reports/annual-2026.pdf>; rel="canonical"

Для Nginx конфиг выглядит так:

location ~ \.pdf$ {
  add_header Link '<https://site.ru$request_uri>; rel="canonical"';
}

Если canonical указан и в HTML, и в HTTP-заголовке — они должны совпадать. Иначе поисковик выберет один сам, и не факт, что нужный вам.

Когда canonical обязателен

Семь ситуаций, где без канонического URL страницы плодят дубли и рассеивают вес.

UTM-метки и трекинговые параметры. Ссылки из рассылок, соцсетей, рекламных кампаний добавляют к URL параметры utm_source, utm_medium, gclid, yclid. Каждая уникальная комбинация — отдельная страница для поисковика. Canonical на «чистую» версию убирает проблему.

Фильтры и сортировки в каталоге. catalog/?sort=price и catalog/?sort=popular показывают одни и те же товары в разном порядке. Обычно все фильтрованные версии должны ссылаться каноникой на базовый URL каталога — если только фильтр не выделен под отдельную посадочную страницу (например, catalog/krasnye/ под запрос «красные кроссовки»).

Пагинация. Тут единого мнения нет. Раньше Google рекомендовал ставить canonical со всех страниц пагинации (?page=2, ?page=3) на первую. Сейчас официальная позиция: каждая страница пагинации самостоятельна, canonical должен указывать сам на себя. Яндекс тот же подход поддерживает. Ставить canonical со второй страницы на первую можно, только если контент дублируется полностью — но это редкий случай.

HTTPS/HTTP и www/non-www. Сайт должен быть доступен по одному протоколу и одному домену. Основной способ — 301 редирект (об этом отдельно ниже). Canonical здесь — страховка на случай, если редирект где-то сломается или робот придёт по устаревшей ссылке.

Mobile и desktop версии. Если у сайта отдельная мобильная версия на поддомене m.site.ru, с мобильной страницы canonical идёт на десктопную. Дополнительно на десктопной нужен тег <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.site.ru/...">.

Синдикация контента. Если ваша статья публикуется на партнёрских площадках (VC.ru, Habr, отраслевые СМИ), попросите редакцию поставить canonical на оригинал у вас. Так вес и позиции достанутся первоисточнику, а не копии.

Одна карточка товара в разных категориях. Один товар доступен по адресам /muzhskoe/krossovki/nike-air и /sport/krossovki/nike-air. Выберите основную категорию и с остальных поставьте canonical на неё.

Правила, без которых canonical не работает

Пять требований, которые робот проверяет молча. Нарушите — тег проигнорируется, и вы даже не узнаете, пока не полезете в отчёты.

  • Абсолютный URL с протоколом. href="/page" или href="//site.ru/page" — робот может обработать, а может и нет. Пишите полный https://site.ru/page.
  • Один canonical на страницу. Два тега — верный способ обесценить оба. Проверьте, что тема или SEO-плагин CMS не вставляет свой поверх вашего.
  • Указывает на существующую страницу с кодом 200. Canonical на 404 или на страницу с 301 редиректом — робот воспримет как ошибку и выберет каноническую сам.
  • Self-referential canonical на основной странице. Даже если страница уникальна, лучше поставить canonical, ссылающийся сам на себя. Это защищает от параметров, которые могут появиться от рекламных кампаний.
  • Не указывает на страницу с noindex. Конфликт сигналов: canonical говорит «вот главная», а noindex — «эту не индексируй». Робот запутается.

Отличие canonical от 301, noindex и hreflang

Инструменты часто путают, хотя задачи у них разные.

Canonical vs 301 редирект. 301 — жёсткое перенаправление: пользователь и робот попадают на новый URL, старый исчезает из индекса. Canonical — мягкая подсказка: обе страницы остаются доступны, робот сам решает, какую показать в выдаче (обычно каноническую, но не всегда). Правило: если старая страница вам не нужна и вы точно уверены, что все её посетители должны попасть на новую — ставьте 301. Если оба URL нужны (пример: страница товара доступна из разных категорий) — canonical. Подробнее про виды редиректов — в материале 301 или 302 редирект.

Canonical vs noindex. Noindex запрещает индексацию страницы полностью — она не появится в выдаче ни в каком виде. Canonical сохраняет страницу в поиске, просто указывает главную из группы. Никогда не ставьте оба одновременно на одной странице.

Canonical vs hreflang. Hreflang — это подсказка про язык и регион («эта страница для России, а вот версия для Казахстана»). Canonical — про дубли внутри одного языка/региона. Между русской и казахской версиями страницы должен быть hreflang, а не canonical. Ставить canonical с казахской версии на русскую — распространённая ошибка, она выкидывает казахскую из локальной выдачи.

Топ-7 ошибок, которые убивают canonical

Разбор реальных кейсов — каждая ошибка встречается в 2–3 аудитах из десяти.

1. Canonical на 404-страницу. Обычно случается после реорганизации структуры сайта: URL канонической страницы поменялся, а тег остался старым. Робот видит битую ссылку и игнорирует canonical.

2. Canonical на страницу с редиректом. Каноническая ссылается на URL, который отдаёт 301. Робот пойдёт по редиректу, но склейку не выполнит — canonical потеряется.

3. Цепочки canonical. A ссылается на B, B на C, C на D. Google обещает разбирать цепочки до 5 звеньев, Яндекс — не факт. Все канонические должны указывать напрямую на финальную страницу.

4. Разные canonical в HTML и HTTP-заголовке. Разработчик добавил заголовок Link на сервере, SEO-специалист прописал тег в шаблоне — оба на разные URL. Робот выберет один сам.

5. Canonical на страницу с noindex. Каноническая закрыта от индексации — а куда тогда клеить сигналы? Робот скорее оставит в индексе неканоническую или обе.

6. Canonical на другой домен без причины. Иногда встречается после переезда: старый домен продолжает работать и ссылается каноникой на новый. Это допустимо только если это ваш собственный второй домен. Если canonical смотрит на чужой сайт — робот может решить, что вы копируете контент, и понизить позиции.

7. Динамический canonical, который меняется с параметрами. Скрипт формирует canonical на основе текущего URL, включая параметры. В итоге page?utm=vk каноникой указывает саму на себя вместо чистой page. Дубли остаются в индексе.

Все эти ошибки легко ловятся регулярным аудитом. Про мета-теги для SEO, включая canonical — в отдельном материале.

Как проверить canonical на сайте

Пять способов, от быстрого разового до системного.

Просмотр исходного кода. Откройте страницу в браузере, нажмите Ctrl+U, найдите поиском (Ctrl+F) canonical. Увидите тег и адрес, на который он ссылается. Годится для проверки одной страницы.

DevTools → вкладка Network. F12, обновите страницу, кликните на первый запрос (сам HTML), вкладка Headers → Response Headers. Ищите строку Link: <...>; rel="canonical" — это HTTP-заголовок. Если его нет, canonical берётся только из HTML.

curl из командной строки. Быстро и без браузера:

curl -sI https://site.ru/page | grep -i link
curl -s https://site.ru/page | grep -i canonical

Первая команда покажет заголовок Link, вторая — тег в HTML.

Google Search Console → URL Inspection. Вставьте URL в поисковую строку сверху, дождитесь отчёта. В разделе «Индексирование» видно поле «Канонический URL, указанный пользователем» (то, что вы прописали) и «Канонический URL, выбранный Google» (что робот решил на самом деле). Если они не совпадают — разбираемся, почему.

Яндекс.Вебмастер → Индексирование → Страницы в поиске. Вкладка «Исключённые страницы» покажет URL, которые робот исключил из индекса. В колонке «Статус» будет пометка вроде «Неканоническая» — значит, склейка работает. Если каноническая страница сама попала в исключённые с той же пометкой — что-то не так.

SEO Crawler. Введите домен, за 2 минуты получите список всех страниц сайта с указанием текущего canonical, ошибками (canonical на 404, на редирект, цепочки, self-referential или нет) и подсветкой потенциальных дублей.

Как настроить canonical на популярных CMS

Порядок действий для четырёх систем, на которых работает большинство коммерческих сайтов в рунете.

WordPress

Через плагин — самый быстрый способ.

  • Yoast SEO. Устанавливаете плагин, canonical генерируется автоматически (self-referential для каждой страницы). Переопределить вручную: редактор страницы → блок Yoast снизу → вкладка «Дополнительно» → поле «Каноническая ссылка». Впишите нужный URL.
  • Rank Math. Аналогично: редактор → блок Rank Math → вкладка «Advanced» → «Canonical URL».

Без плагина: добавьте в functions.php темы код, который выводит <link rel="canonical"> в шапке. Но это редко имеет смысл — Yoast бесплатен и делает больше, чем один тег.

1С-Битрикс

Стандартный компонент bitrix:main.include для метатегов canonical не выводит. Два пути:

  • Модуль SEO-функциональности (bitrix.seo) — платный, но покрывает и canonical, и sitemap, и правила метатегов. Настройка через админку без правки кода.
  • Вручную в шаблоне. В файле bitrix/templates/имя_шаблона/header.php добавьте:
<?$APPLICATION->ShowHead();?>
<link rel="canonical" href="https://<?=SITE_SERVER_NAME?><?=$APPLICATION->GetCurPage(false)?>">

GetCurPage(false) возвращает URL без параметров — как раз то, что нужно для self-referential canonical.

Tilda

В админке проекта → «Настройки сайта» → «Ещё» → «Редактирование HTML-кода head-раздела». Впишите:

<link rel="canonical" href="https://site.ru/">

Проблема: этот код будет одинаковым для всех страниц. Для каждой отдельной страницы canonical настраивается в её «Настройках страницы» → «Дополнительно» → «Ещё» → блок «HTML для тега head».

Tilda не генерирует canonical автоматически — если ничего не прописать, тега не будет вообще.

OpenCart

В админке → «Каталог» → «Товары» / «Категории» → редактируете карточку → вкладка «Данные» → поле «SEO URL». Само поле формирует ЧПУ, но не canonical.

Для полноценных canonical нужен модуль вроде SEO Pack Pro или ручная правка catalog/view/theme/имя_темы/template/common/header.tpl — добавьте в <head>:

<link rel="canonical" href="<?php echo $canonical_url; ?>">

И в контроллере catalog/controller/product/product.php пропишите переменную $data['canonical_url'] с очищенным URL товара.

Что запомнить

Canonical — простая техническая вещь с большой отдачей. Один тег в <head> избавляет сайт от рассеянного веса, каннибализации и мусора в индексе. Главное — соблюдать три правила: абсолютный URL, один тег на страницу, каноническая должна отдавать 200 и быть открыта для индексации. Ошибка в canonical чаще всего проявляется не резким падением позиций, а плавным «застреванием» страниц в топ-20 — их сигналы разбросаны по дублям, и робот не может выбрать одну для продвижения.

Проверяйте canonical регулярно: после релизов, изменений в структуре URL, подключения новых плагинов. Одна неправильная строчка в шаблоне может уронить в индексе тысячи страниц одновременно, а починка возвращает их в выдачу за пару недель.

Проверьте, есть ли на сайте дубли и правильные canonical
SEO Crawler за 2 минуты найдёт страницы с одинаковым контентом, ошибки в rel=canonical и потенциальные дубли из-за UTM или пагинации. Бесплатно, до 50 страниц, без регистрации.
Проверить сайт

Часто задаваемые вопросы

Обязательно ли ставить canonical на каждую страницу?

Да, лучше ставить self-referential canonical на все страницы сайта — даже те, у которых нет очевидных дублей. Это страхует от рекламных UTM-меток, партнёрских параметров и случайных копий. Google и Яндекс рекомендуют такой подход как «здоровое состояние по умолчанию». Отсутствие canonical не ошибка, но добавить его — минимум усилий и максимум защиты от неожиданных дублей в индексе.

Что важнее для поисковика: canonical или 301 редирект?

301 редирект — сильнее. Он физически перенаправляет пользователя и робота, старый URL исчезает из индекса за несколько недель. Canonical — мягкая рекомендация, робот вправе её проигнорировать, если посчитает, что «главная» страница на самом деле другая. Если вам не нужен старый URL — ставьте 301. Если оба URL должны работать (например, товар в двух категориях) — только canonical.

Работает ли canonical для страниц с pagination?

Официальная рекомендация Google и Яндекса на 2026 год: каждая страница пагинации самостоятельна, canonical на ней должен указывать сам на себя. Ставить canonical со всех страниц пагинации на первую — устаревшая практика, работавшая до 2019 года. Сейчас это может привести к тому, что вторая, третья и последующие страницы вылетят из индекса, и товары или статьи, доступные только через них, перестанут находиться.

Может ли Google проигнорировать мой canonical?

Да, может. Canonical — это подсказка, а не команда. Если Google видит, что каноническая страница закрыта от индексации, отдаёт 404, находится в цепочке редиректов или сильно отличается по содержанию от «дубля» — он выберет каноническую сам. Проверить, какую страницу Google считает канонической на самом деле, можно в Search Console через инструмент URL Inspection — там показаны оба значения рядом.

Нужно ли ставить canonical, если стоит noindex?

Нет, нельзя ставить оба одновременно на одну страницу. Сигналы противоречат друг другу: noindex говорит «не индексируй», canonical — «вот главная, склей с ней сигналы». Робот запутается и может проигнорировать оба. Правило простое: если страница не должна быть в индексе — только noindex. Если должна, но в группе с дублями — только canonical, без noindex.

Как поменять canonical на сайте задним числом, если раньше он был неправильный?

Просто пропишите новый canonical в шаблоне или через SEO-плагин. Google и Яндекс переобойдут страницы за 1–4 недели и переклеят сигналы согласно новому тегу. Если старая ошибочная каноническая страница уже успела набрать вес и позиции — они постепенно перейдут к правильной. Ускорить процесс можно, отправив ключевые URL на переобход через Search Console (URL Inspection → Request Indexing) и Яндекс.Вебмастер (Индексирование → Переобход страниц).

Поделиться:
SC
Команда SEO Crawler
Пишем о техническом SEO, аудите и продвижении сайтов
Ссылка скопирована