Что это такое
Тег в разделе head страницы, указывающий её основной адрес.
<link rel="canonical" href="https://site.ru/catalog/divany/">
Смысл: «эта страница может открываться по разным адресам, но считать основным нужно вот этот». Поисковая система переносит на канонический адрес накопленные сигналы и показывает в выдаче именно его.
Canonical или редирект
Оба инструмента борются с дублями, но применяются в разных ситуациях.
| Ситуация | Инструмент |
|---|---|
| Вторая версия адреса вообще не нужна пользователю | 301-редирект |
| Обе версии должны открываться | canonical |
| www и без www, http и https | 301-редирект |
| Страница с параметрами сортировки | canonical |
| Товар доступен в нескольких категориях | canonical |
| Версия для печати | canonical |
| Страница переехала навсегда | 301-редирект |
Ключевое отличие: редирект физически уводит пользователя на другой адрес, canonical оставляет страницу доступной. Подробно о перенаправлениях — в отдельной инструкции.
Где канонический адрес нужен обязательно
- Страницы с параметрами. Любая метка или сортировка создаёт новый адрес — canonical склеивает их с чистым. Об этом подробно в статье про параметры в URL.
- Карточки товаров в нескольких разделах. Один товар — один канонический адрес.
- Похожие товары. Цветовые модификации одной модели, если они не продвигаются по отдельности.
- Мобильная версия на отдельном адресе, если она ещё используется.
- Синдицированный контент — материал, размещённый на нескольких площадках.
Canonical на самого себя — это нормально. Тег, указывающий на адрес текущей страницы, не избыточен: он защищает от дублей, которые появятся, когда к адресу добавят произвольный параметр.
Восемь частых ошибок
- Относительный адрес. Пишите полный, с протоколом и доменом.
- Два разных тега на странице. Система проигнорирует оба.
- Ссылка на страницу с редиректом. Канонический адрес должен отдавать код 200.
- Ссылка на закрытую от индексации страницу. Сигналы уходят в никуда.
- Все страницы каталога ссылаются на главную. Массовая ошибка при неаккуратной настройке шаблона: из индекса выпадает весь каталог.
- Canonical на страницах пагинации. Вторая страница списка содержит другие товары, склеивать её с первой неправильно.
- Адрес в canonical не совпадает по формату. Со слэшем в теге и без слэша в ссылках — противоречивый сигнал, о формате слэша есть отдельный разбор.
- Тег вне раздела head. В теле страницы он не работает.
Как проверить
Быстрая самопроверка занимает пару минут.
- Откройте исходный код страницы и найдите строку с
rel="canonical". - Убедитесь, что тег один и адрес в нём абсолютный.
- Откройте адрес из тега — он должен отдавать содержимое, а не перенаправлять.
- Добавьте к адресу страницы произвольный параметр и убедитесь, что canonical по-прежнему указывает на чистый адрес.
- Проверьте несколько типов страниц: раздел, карточку, статью, страницу пагинации.
Чего canonical не делает
Тег — рекомендация, а не команда. Поисковая система учитывает его вместе с другими сигналами: внутренними ссылками, картой сайта, содержимым страниц. Если сигналы противоречат друг другу, канонический адрес может быть проигнорирован.
Отсюда практический вывод: canonical работает в связке с остальной настройкой. Внутренние ссылки должны вести на канонический адрес, карта сайта — содержать только его, а заведомо лишние версии адресов лучше закрывать редиректом. Полный разбор источников дублей — в материале про дубли страниц из-за URL.
Canonical в HTTP-заголовке
Для файлов, у которых нет раздела head — PDF, изображений, документов — канонический адрес указывается заголовком ответа сервера.
Link: <https://site.ru/docs/instrukciya.pdf>; rel="canonical"
Это же решение подходит, если один и тот же PDF доступен по нескольким адресам. Для обычных html-страниц заголовок не нужен: тег в разделе head делает то же самое и проще в поддержке.
Кросс-доменный canonical
Тег может указывать на страницу другого сайта. Это применяется, когда материал публикуется сразу на нескольких площадках: копия ссылается на оригинал, и сигналы достаются ему.
Работает это только при полном совпадении содержимого. Если тексты различаются, поисковая система, скорее всего, проигнорирует указание и оставит обе страницы в индексе как самостоятельные.
Осторожно с чужими шаблонами. При переносе вёрстки с одного проекта на другой в коде иногда остаётся canonical со старым доменом. Такая ошибка выводит из индекса весь новый сайт целиком, и заметить её можно только просмотром исходного кода.
Чек-лист проверки
- Тег присутствует на всех индексируемых страницах.
- Адрес абсолютный, с протоколом и доменом.
- Домен в теге совпадает с текущим.
- Формат слэша совпадает с принятым на сайте.
- Тег на странице один.
- Канонический адрес отдаёт код 200.
- Страницы пагинации ссылаются сами на себя.
- Внутренние ссылки и карта сайта ведут на канонические адреса.
Восемь пунктов закрывают почти все ситуации, где canonical перестаёт работать. Остальное относится уже к общей настройке индексации — о ней в материале про дубли страниц.
Частые вопросы
Нужен ли canonical, если дублей нет?
Да, canonical на самого себя защищает от дублей, которые появятся при добавлении к адресу рекламных меток и параметров.
Canonical заменяет 301-редирект?
Нет. Редирект применяется, когда вторая версия адреса не нужна вообще, canonical — когда обе версии должны открываться, но основной считается одна.
Почему поисковая система игнорирует мой canonical?
Чаще всего из-за противоречий: внутренние ссылки ведут на другой адрес, в карте сайта указан третий, а канонический адрес сам отдаёт редирект.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.