Canonical (канонический URL): что это и как настроить правильно
Canonical URL — это HTML-тег rel="canonical", который указывает поисковым системам, какой именно адрес из нескольких похожих или идентичных страниц следует считать основным для индексации. Тег размещается в секции <head> страницы-дубля и передаёт сигнал, куда должна быть направлена поисковая ценность — трафик, ссылочный вес и позиции.
Как это работает?
Canonical URL — это сигнал для поисковой системы, а не директива, поэтому Google может проигнорировать указанный адрес, если другие факторы (внутренние ссылки, sitemap, редиректы) указывают на другую страницу как на основную.
Механизм работы
Когда краулер сканирует страницу с тегом rel="canonical", он фиксирует указанный адрес как кандидата на каноническую версию. Далее Google сопоставляет этот сигнал с другими: если страница-дубль получает больше внутренних ссылок или упомянута в sitemap, поисковая система может выбрать именно её как каноническую, игнорируя тег.
Способы внедрения
Canonical можно указать тремя способами: через HTML-тег в <head>, через HTTP-заголовок Link (для PDF и других не-HTML файлов) или через запись в Sitemap.xml — последний является самым слабым сигналом из трёх.
Зачем это нужно?
Canonical URL консолидирует ссылочный вес и сигналы релевантности из нескольких дублей в одну страницу, вместо того чтобы распылять их между идентичными URL с разными параметрами (UTM-метки, сортировка, ID сессий).
Тег также предотвращает внутреннюю каннибализацию, когда несколько версий одной страницы конкурируют между собой в выдаче, и сокращает краулинговый бюджет, потраченный на повторное сканирование идентичного контента.
Пример использования
<!-- На странице-дубле: example.com/shoes?color=red -->
<head>
<link rel="canonical" href="https://example.com/shoes" />
</head># Через HTTP-заголовок (например, для PDF)
Link: <https://example.com/document.pdf>; rel="canonical"Самоссылающийся canonical (self-referencing) на основной странице выглядит так:
<!-- На основной странице: example.com/shoes -->
<link rel="canonical" href="https://example.com/shoes" />Распространённые ошибки
Canonical ведёт на страницу с 404 или редиректом
Тег должен указывать на рабочую страницу с кодом ответа 200, иначе сигнал игнорируется Google.
Разные canonical на одинаковых страницах
Если несколько дублей указывают друг на друга вместо общего основного адреса, возникает циклический конфликт, и Google самостоятельно выбирает каноническую версию.
Canonical на другую языковую версию
При наличии hreflang канонический адрес каждой языковой версии должен указывать сам на себя, а не на один «главный» язык — иначе локализованные страницы выпадают из индекса.
Несоответствие canonical и robots noindex
Если страница одновременно имеет noindex и canonical на другой URL, сигналы противоречат друг другу — Google рекомендует выбирать что-то одно в зависимости от цели.
Относительный путь вместо абсолютного URL
Тег rel="canonical" должен содержать полный адрес с протоколом (https://), а не относительный путь — это снижает риск некорректной интерпретации при копировании кода.
Как проверить?
В Google Search Console инструмент проверки URL (URL Inspection) показывает поле "User-declared canonical" (указанный вами тег) и "Google-selected canonical" (какой адрес Google выбрал фактически) — расхождение между ними сигнализирует о проблеме, которую стоит исследовать.
FAQ
Обязательно ли использовать canonical, если на сайте нет дублей?
Нет, но рекомендуется размещать self-referencing canonical на каждой странице — это предотвращает появление дублей из-за параметров URL, которые добавляются позже.
Можно ли указать canonical на страницу другого домена?
Да, cross-domain canonical поддерживается и используется, например, при синдикации контента на нескольких сайтах, чтобы вся ценность передавалась оригинальному источнику.
Влияет ли canonical на страницу, которую пользователь видит в браузере?
Нет, canonical — это сигнал исключительно для поисковых систем. Пользователь по-прежнему открывает именно тот URL, по которому перешёл, содержимое страницы не меняется.
Что произойдёт, если на странице несколько тегов canonical?
Google игнорирует все canonical-теги на странице при наличии нескольких противоречивых тегов и самостоятельно определяет каноническую версию на основе других сигналов.
Связанные термины
- Duplicate content (дубли контента)Проблема, которую canonical решает на уровне консолидации сигналов для индексации.
- Robots.txtУправляет сканированием дублей на уровне краулинга, тогда как canonical работает уже на уровне индексации.
- HreflangТег для мультиязычных сайтов, который должен согласовываться с self-referencing canonical на каждой языковой версии.
- 301-редиректБолее жёсткий способ консолидации дублей: в отличие от canonical, полностью перенаправляет пользователя.
- Meta robots noindexАльтернативный способ исключить страницу из индекса, который не стоит путать с canonical.
- Sitemap.xmlДолжен содержать только канонические версии URL, чтобы не давать Google противоречивых сигналов.
Материал подготовлен командой LuchanLabs