Canonical (rel=canonical): как убрать дубли страниц
Одна и та же страница часто доступна по нескольким адресам — с параметрами, со слешем и без, в разных разделах. Для поисковика это дубли, и они вредят. Тег canonical помогает указать главную версию. Разберём, как он работает и когда его применять.
Что такое canonical
Атрибут rel="canonical" — это указание поисковику: «настоящий адрес этой страницы вот такой». Его добавляют в <head> страницы:
Если несколько URL ведут на одинаковый контент, на всех них ставят canonical с адресом главной версии. Поисковик объединяет дубли и индексирует именно каноническую страницу, передавая ей накопленный вес.
Откуда берутся дубли
- Параметры в URL — сортировка, фильтры, метки: site.ru/catalog?sort=price.
- Слеш и регистр — site.ru/page и site.ru/page/ воспринимаются как разные адреса.
- UTM-метки — рекламные ссылки с ?utm= создают копии страницы.
- Пагинация и версии для печати — одна статья на нескольких URL.
Без обработки поисковик видит несколько одинаковых страниц, не понимает, какую показывать, и может занизить все.
Canonical, 301 или noindex — что выбрать
Эти инструменты решают похожие задачи, но по-разному:
- 301-редирект — когда страница реально переехала и старый адрес больше не нужен. Пользователя физически перенаправляет на новый URL.
- canonical — когда обе страницы должны оставаться доступными (например, товар в двух категориях), но в поиске нужна одна. Контент остаётся по обоим адресам.
- noindex — когда дубль вообще не должен быть в поиске, но и склеивать его не нужно.
Грубо: переехало — 301, есть две живые версии одного контента — canonical, мусорная страница — noindex.
| Инструмент | Страница доступна? | Передаёт вес? | Когда применять |
|---|---|---|---|
| 301 | Нет, перенаправляет | Да | Страница переехала, старый URL не нужен |
| canonical | Да, обе живые | Да | Один контент по нескольким нужным URL |
| noindex | Да, но не в поиске | Нет | Мусорную страницу убрать из выдачи |
| 404 / 410 | Нет, удалена | Нет | Контента больше не существует |
Canonical — это подсказка, а не приказ
Ключевое отличие от 301-редиректа: 301 поисковик обязан выполнить, а canonical — лишь рекомендация. Поиск рассматривает тег как сильный сигнал, но сопоставляет его с другими и может проигнорировать, если они противоречат. Например, если вы указали canonical на страницу A, но все внутренние ссылки, sitemap и контент говорят, что главная — B, поисковик вправе выбрать B. Поэтому canonical работает надёжно только тогда, когда все сигналы согласованы. Что усиливает подсказку:
- Единообразные внутренние ссылки — ссылайтесь на канонический URL, а не на варианты с параметрами.
- Sitemap.xml — включайте в карту только канонические адреса.
- Совпадение контента — каноническая страница должна содержать тот же (или почти тот же) контент, что и дубль.
Что должно совпадать у дубля и канонической
Частая иллюзия: «поставлю canonical с любой страницы на любую — и склеится». Нет. Поиск склеивает только то, что действительно похоже. Если на странице-дубле контент существенно отличается от канонической, тег проигнорируют, а страница продолжит индексироваться сама по себе (или, хуже, выпадет, если поиск всё же поверит ошибочному указанию). Поэтому canonical уместен между близнецами: сортировки и фильтры одного списка, версия для печати, один товар в двух категориях. А вот разные товары, разные статьи или категория и карточка — это не дубли, и канониклом их «объединять» нельзя.
Частые ошибки
- canonical на другую страницу — по ошибке указывают чужой адрес, и нужная страница выпадает из индекса.
- Относительный или неполный адрес — лучше указывать полный URL с протоколом.
- canonical + noindex одновременно — противоречивые сигналы путают поисковик.
- Забыли про себя — у главной версии canonical должен указывать на неё же (самореференция), это нормально и правильно.
Как поставить canonical на разных движках
Прописывать тег руками приходится редко — обычно это делает движок или плагин:
- WordPress — canonical автоматически проставляют SEO-плагины Yoast и Rank Math, причём сразу с самореференцией. Вмешиваться нужно только в нестандартных случаях.
- 1С-Битрикс — задаётся в настройках страницы или через свойство; на типовых решениях часто уже настроен из коробки.
- Tilda и конструкторы — каноникал прописывают в настройках страницы или в зоне для кода в <head>.
- Самописный сайт — выводите тег в шаблоне, подставляя «чистый» адрес текущей страницы без параметров.
Canonical при пагинации
Здесь часто ошибаются: на всех страницах списка (2, 3, 4…) ставят canonical на первую. Кажется логичным, но так вы прячете от поиска товары и материалы со второй страницы и дальше — они просто не попадают в индекс. Правильнее, чтобы каждая страница пагинации ссылалась canonical сама на себя — тогда поисковик видит весь каталог целиком. Сводить всё на первую страницу имеет смысл только когда есть отдельная версия «показать всё» с полным списком. Подробнее — в статье про пагинацию и SEO.
Как проверить, что canonical работает
Проверка занимает минуту. Откройте исходный код страницы (Ctrl+U) и найдите строку с rel="canonical" — убедитесь, что в href стоит правильный, полный адрес с протоколом. Для массовой проверки используйте Яндекс.Вебмастер: в разделе «Страницы в поиске» видно, какие URL поисковик признал каноническими, а какие склеил между собой. Если нужная страница помечена как неканоническая и склеена не туда — ищите ошибку в теге или конфликт с другими сигналами.
Цепочки и циклы canonical
Тег должен указывать сразу на финальную каноническую страницу, а не на ещё один промежуточный дубль. Опасны две ситуации:
- Цепочка: A → B → C. Поиску приходится «прыгать» по звеньям, и сигнал размывается. Ставьте canonical всех дублей сразу на конечную страницу (A → C, B → C).
- Цикл: A → B, а B → A. Поисковик не понимает, кто из них главный, и выбирает сам — часто не ту, что вы хотели.
Идеально, когда у канонической страницы canonical указывает на саму себя, а у всех её дублей — на неё же. Без промежуточных звеньев и петель.
Межсайтовый canonical (cross-domain)
canonical может указывать и на страницу другого сайта — это нужно, когда контент официально публикуется на нескольких ресурсах (синдикация, агрегаторы, партнёрские публикации). Если вы отдаёте свою статью на сторонний портал, попросите поставить на их копии canonical на ваш оригинал — тогда вес и приоритет в поиске останутся у вас. И наоборот: размещая чужой материал у себя, корректно сослаться канониклом на первоисточник, чтобы не конкурировать с ним за одни и те же запросы. Подробнее про эту ситуацию — в статье про синдикацию и дублирование контента.
Canonical для PDF и файлов
Указать каноническую версию можно не только для HTML-страниц. Для файлов (PDF, документы), где нет <head>, canonical передают через HTTP-заголовок Link: <https://site.ru/page>; rel="canonical". Это полезно, когда один и тот же материал есть и веб-страницей, и PDF-файлом: заголовок подскажет поиску, что главная версия — это страница, и приоритет в выдаче получит она, а не файл.
Коротко
Canonical указывает поисковику главную версию страницы и склеивает дубли, передавая вес одному адресу. Используйте его, когда контент должен оставаться по нескольким URL, но в поиске нужен один. Для переездов берите 301, для мусора — noindex. У страниц пагинации делайте самоссылку, а не canonical на первую. И всегда проверяйте, что тег указывает на правильный адрес.