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

Частая ситуация: интернет-магазин с фильтрами и сортировкой генерирует десятки адресов с одинаковым контентом, а трафик при этом проседает. Причина почти всегда одна - робот поисковика не понимает, какая из версий страницы основная, и размазывает ссылочный вес между дублями вместо того, чтобы продвигать одну сильную страницу.

Rel canonical указывает поисковику предпочитаемую версию страницы для индексации - это не редирект, а рекомендация, при которой все версии URL остаются доступными для пользователя.

Эта статья - про техническое SEO для сайтов на WordPress и WooCommerce; для специфики агрегаторов и маркетплейсов с миллионами страниц подход к canonical может отличаться, здесь не разбираю.

Коротко:

  • Canonical - это атрибут rel="canonical" в теге link, который сообщает поисковикам основной адрес страницы среди её дублей.
  • Тег canonical размещается в head документа и содержит абсолютный URL, а не относительный путь.
  • Дубли страниц чаще всего создают фильтры, сортировка, пагинация каталога, UTM-метки и доступность сайта по www и без www.
  • В отличие от редиректа 301, canonical не закрывает доступ к дублирующим страницам - они остаются доступны пользователям.
  • Self-referential canonical (страница, которая указывает сама на себя) - рекомендованная Google практика для уникальных страниц без дублей.

Что такое канонический URL и зачем он нужен

Канонический URL - это адрес страницы, который сайт явно называет основным среди нескольких похожих или одинаковых по содержанию адресов. Технически это реализуется через атрибут rel="canonical" в теге link, который размещается в head html-документа и содержит абсолютный URL предпочитаемой страницы.

Выглядит это так: <link rel="canonical" href="https://site.ru/catalog/tovar/" />. Такая строка говорит поисковику: даже если на этот товар ведут десять разных адресов с параметрами, учитывай при индексации именно этот href.

Зачем это нужно на практике. Когда у сайта есть несколько страниц с дублированным контентом, поисковики вынуждены сами решать, какую версию показывать в выдаче - и решают не всегда так, как хотелось бы владельцу сайта. Canonical убирает эту неопределённость и прямо указывает, какая страница должна индексироваться.

Есть и обратная ситуация: self-referential canonical. Это когда страница указывает в теге link rel canonical сама на себя. Google рекомендует делать так по умолчанию для всех уникальных страниц без дублей - это подстраховка на случай, если позже появятся параметрические версии адреса, о которых разработчик не подумал заранее.

На одном из проектов студии «Мельница» мы занимались каталогом спецтехники, где карточки товаров открывались и через основной раздел, и через акционный лендинг с тем же самым контентом. Без canonical обе страницы конкурировали друг с другом в выдаче и обе ранжировались слабо. После того как на дублирующей странице прописали canonical на основную карточку, вес ссылочный перестал делиться пополам, и страница закрепилась в топе по целевым запросам.

Важный нюанс: canonical - это рекомендация для робота, а не жёсткая команда. В большинстве случаев Google и Яндекс её соблюдают, но если содержимое страниц сильно различается, поисковик может индексировать страницу так, как считает нужным, игнорируя атрибут.

Что такое canonical в SEO и откуда берутся дубли страниц

Если смотреть на canonical именно со стороны SEO-задачи, а не технической реализации тега - это способ сайта «договориться» с поисковой системой о приоритете среди дублей, не удаляя и не блокируя лишние адреса для пользователей. Дальше - откуда эти дубли берутся на практике и как с ними справляется canonical.

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

Причины дублей разнообразны, и большинство из них появляется не из-за ошибок разработчика, а из самой логики работы каталога и домена. Фильтры и сортировки в карточках товаров, пагинация списков, несколько вариантов написания домена, версии сайта для мобильных устройств и UTM-метки для рекламных кампаний - всё это технически создаёт новые адреса с тем же или почти тем же содержанием. Задача канонических ссылок - заранее указывать поисковику, какая из этих версий основная, и не доводить дело до массового дублирования контента в индексе.

Причина дублей Как решает canonical
Фильтры и сортировка в каталоге Все параметрические версии ссылаются canonical на страницу категории без фильтров
Пагинация каталога (страницы 2, 3, 4...) Каждая страница пагинации указывает canonical либо сама на себя, либо на первую страницу списка, в зависимости от стратегии
www и без www, http и https Canonical на выбранную основную версию домена закрепляет её как единственную для индексации
Мобильная версия на отдельном поддомене Мобильная страница ссылается canonical на десктопную версию, если контент идентичен
UTM-метки и прочие параметры запросов Canonical убирает параметры из индексируемого URL, оставляя чистый адрес страницы

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

Отдельно стоит сказать про UTM-метки: рекламные ссылки с параметрами вида ?utm_source=yandex технически создают новый адрес для той же страницы категории. Если не прописать canonical, в индексе может накопиться множество практически одинаковых URL - это типичная ошибка, которую я встречаю у клиентов, которые запускают контекстную рекламу без технической подготовки сайта.

Что такое URL-адрес и как он связан с canonical

Структура URL-адреса - протокол, домен и путь

URL-адрес - это полный адрес ресурса в интернете: он указывает протокол (http или https), домен сайта и путь к конкретной странице на сервере. Например, в адресе https://start-luck.ru/blog/seo/ протокол https, домен start-luck.ru, путь /blog/seo/. Вводить URL-адрес правильно - значит писать его целиком, с протоколом и доменом, без пробелов и с учётом регистра, если сервер его различает: браузер и поисковые роботы читают строку как единый код уникального адреса страницы, и лишний символ или опечатка в домене уже даёт другой адрес.

Здесь важна разница между абсолютным и относительным путём. Абсолютный URL - это полный адрес вида https://site.ru/catalog/tovar, который работает сам по себе, откуда угодно. Относительный путь - это только часть после домена, например /catalog/tovar - он понятен внутри сайта, но без домена и протокола бессмысленен для внешней системы.

Именно поэтому в атрибуте canonical обязателен абсолютный URL с протоколом и доменом, а не относительный путь. Поисковый робот может встретить ссылку на страницу с разных поддоменов, по http и https, с www и без - и если в canonical указан только путь без домена, робот не поймёт, к какому именно сайту он относится. Короткий относительный href в теге canonical - частая техническая ошибка, которая обесценивает всю настройку.

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

Как настроить canonical: тег, HTTP-заголовок, карта сайта, CMS

Настройка canonical зависит от типа страницы и от того, какая система управления сайтом (CMS) используется. Самый распространённый способ - указать тег link rel canonical прямо в head html-документа. Тег должен быть доступен на странице до закрытия head и ссылаться именно на абсолютный адрес; прописывают его вручную в файле шаблона или через инструменты CMS:

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

Для файлов, у которых нет html-разметки - PDF, документы, изображения - тег в head не подходит. Здесь используется HTTP-заголовок Link - сервер отправляет его вместе с файлом, и он задаёт canonical именно для PDF и других не-html файлов:

Link: <https://site.ru/docs/price.pdf>; rel="canonical"

Третий способ - через карту сайта. Файл sitemap.xml задаёт канонические адреса для поисковых роботов: в него нужно включать только канонические версии страниц, без дублей с параметрами, пагинацией или utm-метками. Если в sitemap попадают неканонические адреса, это сигнал роботу, что указание canonical на странице может быть неточным.

На практике большинство владельцев сайтов настраивают canonical не вручную, а через плагины CMS, которые делают это автоматически. На WordPress таким инструментом чаще выступает Yoast SEO: плагин Yoast SEO управляет canonical-ссылками по умолчанию для всех типов записей, и его достаточно выбрать и указать базовые настройки один раз для всего проекта. Он зарубежный, но доступен и работоспособен из России, оплата идёт через подписку внутри WordPress-экосистемы без отдельных ограничений для рунета. В остальных CMS принцип похожий - ищите раздел SEO-настроек или один из плагинов для метатегов, там обычно есть поле для ручного указания canonical на случай, если автоматика ошиблась.

Способ настройки Когда применять Пример реализации
HTML-тег link rel canonical Обычные html-страницы, ручная правка шаблона <link rel="canonical" href="..." /> в head
HTTP-заголовок Link PDF, изображения и другие не-html файлы Link: <url>; rel="canonical" в ответе сервера
Файл sitemap.xml Массовое указание канонических адресов для робота В карте перечислены только канонические url без дублей
Плагин CMS (Yoast SEO и аналоги) Автоматическая настройка без правки кода Поле canonical url в настройках записи/страницы

Частые ситуации: пагинация, мобильная версия, интернет-магазин, hreflang

На практике большинство вопросов про canonical возникают в одних и тех же ситуациях, и дальше - разбор самых частых из них. Остальные похожие случаи обычно сводятся к этим четырём схемам, если понять логику - решение находится быстро.

Первая ситуация - страницы пагинации в каталоге, когда товаров много и они разбиты на страницы вида /catalog/page/2/. Здесь правильнее сделать canonical self-referential - то есть каждая страница пагинации ссылается canonical на саму себя, а не на первую страницу каталога. Если поставить canonical на первую страницу для всех остальных, товары со второй и третьей страницы фактически исключаются из индекса, и это частая ошибка на крупных каталогах.

Вторая ситуация - отдельная версия сайта для мобильных устройств на поддомене, например m.site.ru. Мобильная версия страницы должна ссылаться canonical на десктопную версию - это стандартная рекомендация, которая снимает дубль между основной и мобильной версией для поисковых систем. Обратная связь тоже нужна: десктопная страница может указывать alternate на мобильную, но каноническим остаётся адрес основного сайта.

Третья ситуация - карточки товаров интернет-магазина с похожими модификациями, например одна модель в разных цветах или размерах. Если у каждой модификации своя страница с минимальными отличиями, логично выбрать одну основную карточку и сделать на неё canonical с остальных - это избавляет от внутренней конкуренции похожих страниц за одни и те же запросы. Такое решение часто принимают компании, у которых бизнес завязан на большой ассортимент: клиенты видят все модификации через выбор на странице, а не через отдельные url в выдаче.

Отдельная история - мультиязычные сайты. Здесь canonical не подходит вообще: разные языковые версии одной страницы - это не дубли, а разный контент для разных аудиторий. Для них применяется hreflang - атрибут, который указывает поисковику, какая версия страницы предназначена для какого языка и региона. Hreflang применяется вместо canonical для мультиязычного контента: если на проекте стоит и canonical на одну языковую версию, и hreflang на остальные одновременно, это создаёт противоречивый сигнал, и часть языковых версий может выпасть из индекса.

Если возникает вопрос, можно ли ставить canonical на другой домен - технически можно, и это иногда нужно, например при переезде контента без полного переноса сайта. Но для большинства проектов такой случай временный: лучше оформить полноценный 301 редирект, который заменяет старую страницу новой полностью, а canonical на чужой домен оставлять постоянной практикой не стоит - слишком легко потерять контроль над тем, что из этого попадёт в индекс.

Типичные ошибки настройки canonical и как их найти

Ошибки настройки canonical и технический аудит сайта

Большинство проблем с canonical сводятся к нескольким повторяющимся ошибкам. Первая - несколько тегов canonical на одной странице сразу: одна CMS ставит свой, плагин SEO добавляет второй, шаблон темы - третий. При конфликте поисковик сам выбирает, какому верить, и это редко совпадает с задумкой владельца сайта.

Вторая частая проблема - относительный href в теге вместо абсолютного адреса (этот момент я уже разбирал выше, здесь важно только держать его в голове как источник ошибок). Третья - canonical указывает на страницу, которая сама закрыта через noindex или заблокирована в robots.txt. Получается противоречивый сигнал: «считай эту страницу основной», но сама основная страница недоступна для сканирования или индексации.

Четвёртая ошибка - рассогласование между тегом canonical и данными в sitemap. Если в sitemap перечислены страницы с параметрами и utm-метками, а canonical на них указывает на чистый URL без параметров, поисковик получает два разных набора сигналов об одном и том же контенте. Похожая история с редиректом: если страница одновременно отдаёт 301 редирект и несёт свой canonical, это лишний сигнал - редирект уже решает вопрос приоритета сам.

Эти ошибки снижают позиции страницы в выдаче: поисковик тратит ресурсы сканирования на дубли, а сигналы ссылочной массы и поведенческих факторов размываются между версиями страницы вместо накопления на одной. Итог - просадка трафика, а продвижение сайта тормозится, хотя формально страницы индексируются. Это касается и платной рекламы: если на разные url с рекламными метками ссылается одна и та же реклама, аналитика по кликам и конверсиям разъезжается по дублям вместо одной страницы.

Регулярная проверка - лучшая страховка от этих ошибок, и для неё подойдёт инструмент проверки URL в Google Search Console - он показывает, какой canonical выбрал Google (выбранный пользователем или назначенный самим поисковиком) и фактический статус индексации. У Яндекс.Вебмастера для этого есть раздел технического аудита сайта, куда заходят вебмастера для диагностики: там видно расхождение между указанным canonical и тем, какая версия реально отображается в результатах выдачи. Такой регулярный анализ по обеим панелям поиска - базовая часть технического SEO-аудита для любого сайта.

Что такое URL в Telegram и когда canonical вообще не нужен

URL в Telegram - это обычный веб-адрес вида t.me/username, который используется как ссылка на канал, бота или инвайт в закрытый чат: технически это такой же URL-адрес, как и у любой страницы сайта, просто с доменом t.me - дальше идут специальные виды путей (каналы, боты, инвайты), и каждая ссылка должна вести на свою конкретную сущность, а не на общий раздел. Напрямую к canonical это не относится, но принцип дублей тот же: если пост опубликован на сайте и репостом в Telegram-канале со своей веб-версией страницы, одинаковым содержимым доступны сразу два адреса. Там, где у такой веб-версии есть собственная индексируемая страница, работает тот же принцип приоритетного адреса, что и на обычном сайте.

Но важно понимать и обратное: canonical - не универсальное решение для всех страниц сайта. Если содержимое страницы полностью уникально и дублей у неё нет - прописывать тег ради формальности не нужно, лишний технический элемент на странице без дублей ничего не даёт, его можно спокойно оставить без внимания и не считать проблемой.

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

Если хотите привести canonical на сайте в порядок прямо сейчас, вот короткий чек-лист:

  1. Найти дубли через сканер сайта или вручную по типовым случаям (параметры, пагинация, мобильная версия)
  2. Прописать canonical на единственную приоритетную версию каждой страницы, используя абсолютный URL
  3. Проверить, что canonical не ведёт на страницу с noindex или заблокированную в robots.txt
  4. Свериться с sitemap - адреса там должны совпадать с canonical-версиями
  5. Проверить результат через Google Search Console и Яндекс.Вебмастер через 1-2 недели после изменений

Если разбираться с canonical самостоятельно не хочется, или сайт стоит на незнакомой CMS, где непонятно, куда лезть с тегами, - на Kwork такую задачу делают за небольшие деньги, обычно это несколько сотен - пара тысяч рублей за настройку canonical или базовый технический аудит. Сервис Kwork удобен тем, что можно выбрать исполнителя под конкретную CMS и получить доступ к результату без долгой переписки.

У одного из клиентов после наведения порядка с canonical в индексе Google перестали мелькать посторонние адреса с utm-метками - раньше по запросам бренда в выдаче иногда всплывали ссылки с рекламными хвостами вместо чистой страницы товара.

Данная статья основана на личном опыте автора и актуальна на момент публикации. Интерфейсы сервисов и алгоритмы поисковых систем регулярно меняются - рекомендую проверять актуальность инструкций на официальных ресурсах. Если у вас остались вопросы - задайте их в комментариях.

Список литературы

  1. Google Search Central - Consolidate duplicate URLs // developers.google.com
  2. Google Search Central - What Is URL Canonicalization // developers.google.com
  3. Яндекс - Как указать роботу на предпочитаемую страницу (canonical) // yandex.ru
  4. Яндекс - Дублирование страниц // yandex.ru
Поделитесь Вашим мнением
Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Еще записи из этой же рубрики

Что будем искать? Например,Хостинг

Минуту внимания
Мы используем файлы cookies, чтобы обеспечивать правильную работу нашего веб-сайта, а также работу функций социальных сетей и анализа сетевого трафика.