rel=canonical простыми словами: когда нужен и как настроить
rel="canonical" — это подсказка поисковику: «вот эта страница главная, если ты найдёшь её копии — считай их дублями и склеивай сигналы в мою пользу». Одна строчка в <head>, а решает крупную проблему: рассеянный вес между одинаковыми URL, каннибализацию и мусор в индексе. В этом гайде разберём, что такое канонический URL, где он обязателен, какие ошибки убивают его эффект и как настроить canonical на популярных CMS без плагинов-комбайнов.
Что такое канонический URL простыми словами
Канонический URL — адрес, который вы объявляете «оригиналом» страницы. Всё остальное — её варианты. Пример: интернет-магазин продаёт кроссовки, и страница товара доступна по трём адресам:
https://site.ru/krossovki/nike-airhttps://site.ru/krossovki/nike-air?utm_source=vkhttps://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 на каждую страницу?
Да, лучше ставить 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) и Яндекс.Вебмастер (Индексирование → Переобход страниц).