Перейти к основному содержимому

SEO 5 октября 2026г. 8 мин чтения

Каноническая ссылка: как закрыть дубли правильно

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

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

Типичная картина: у сайта на 400 полезных страниц в панели вебмастера числится 12 000 адресов, а в поиске держатся 300. Владелец видит слово "дубли" и просит поставить каноникал везде. После такой правки становится хуже: часть нужных страниц уходит из индекса, потому что теперь они ссылаются на главную.

Что делает rel=canonical

Тег в коде страницы говорит поисковой системе: у этого документа есть основная версия, вот её адрес, индексируй её. Ссылочный вес, поведенческие сигналы и упоминания склеиваются на указанный адрес.

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

У магазина автозапчастей карточки одной детали для разных моделей отличались только строкой совместимости. Каноникал вёл их на одну карточку, а поиск его не выполнял: заголовки и описания были разными. Решили не тегом, а сведением вариантов в одну карточку с выбором модели.

Каноникал, 301 редирект и robots: чем отличаются

Четыре инструмента решают похожие на вид задачи, но результат у них разный.

Инструмент Что видит человек Что происходит с адресом в поиске Передаётся ли вес
301 редирект Попадает на другой адрес Старый адрес выпадает Да
rel=canonical Остаётся на этом адресе Обычно не индексируется Да
Disallow в robots.txt Остаётся на этом адресе Не обходится, может остаться в выдаче без описания Нет
meta noindex Остаётся на этом адресе Выпадает из индекса Нет

Простое правило для выбора: если человеку этот адрес нужен, ставим каноникал. Если не нужен и попадать сюда не должен никто, ставим 301. Восемь рабочих сценариев редиректа мы разбирали в отдельной статье про 301 редирект.

Отдельно про robots.txt. Закрывать дубли директивой Disallow бесполезно: робот не заходит на страницу и каноникал на ней не читает, а адрес остаётся известным поиску и может показаться в выдаче пустой строкой. Где проходит граница между robots.txt и картой сайта, разбирали в материале Sitemap.xml и robots.txt.

Как это выглядит в коде

Тег ставится в секции <head>, один раз на страницу, с абсолютным адресом:

<head>
  <link rel="canonical" href="https://example.ru/catalog/nasosy/">
</head>

Для файлов, у которых нет HTML-кода (PDF-прайс, документ на скачивание), каноникал передаётся HTTP-заголовком:

Link: <https://example.ru/catalog/nasosy/>; rel="canonical"

Три вещи ломают тег молча. Первая: он поставлен в <body> вместо <head>, браузер покажет, поиск не учтёт. Вторая: относительный адрес вида /catalog/nasosy/; формально это допустимо, но при переносе шаблона такая ссылка превращается в несуществующий путь. Третья: два тега на странице сразу, один печатает движок, второй добавляет SEO-плагин. При двух каноникалах поиск игнорирует оба.

Откуда на сайте берутся дубли

Список из наших аудитов, отсортирован по частоте:

  • Параметры фильтров и сортировки. ?sort=price, ?brand=grundfos, ?page_size=48. Каждый набор параметров это отдельный адрес с почти одинаковым содержимым.
  • Метки отслеживания. Адрес с UTM из рассылки или рекламы поиск считает самостоятельной страницей, если на неё есть внешние ссылки.
  • Пагинация. Вторая и последующие страницы каталога с одинаковым текстом описания раздела вверху.
  • Слеш и его отсутствие, www и голый домен, http и https. Классические четыре версии одной главной.
  • Версии для печати и адреса вида /index.php, /home, /main рядом с корнем сайта.
  • Один товар в нескольких категориях. Если движок формирует адрес с путём категории, одна позиция получает три-четыре адреса.

Что делать с каждым источником

Решение выбирается не по типу дубля, а по тому, нужен ли адрес человеку.

Источник Решение Почему так
Сортировка, размер страницы Каноникал на страницу раздела без параметров Человеку сортировка нужна, поиску она бесполезна
Фильтры с посадочным спросом Отдельная страница со своим заголовком и текстом Есть запросы, есть трафик, закрывать жалко
Прочие сочетания фильтров Каноникал на раздел Комбинаций тысячи, посадочными они не станут
UTM-метки Каноникал сам на себя без параметров Метка не должна размножать адреса
Пагинация Каноникал каждой страницы на себя Иначе товары со 2-й страницы выпадают из обхода
Слеш, www, протокол 301 редирект на выбранный вариант Второй версии существовать не должно
Версия для печати Каноникал на обычную версию Страница нужна пользователю
Товар в нескольких категориях Один адрес товара плюс 301 с остальных Дешевле в поддержке, чем плодить каноникалы

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

Правила, которые нарушают чаще всего

  • Абсолютный адрес с протоколом и доменом, ровно в том виде, в котором страница должна быть в поиске.
  • Целевая страница отвечает 200. Каноникал на 404, на редирект или на закрытый раздел не выполняется.
  • Каноникал сам на себя на всех обычных страницах. Это не избыточность, а страховка от случайных параметров в адресе.
  • Никаких цепочек. Если A ссылается на B, а B на C, поиск разбирается сам и часто не в вашу пользу. Ссылаться надо сразу на конечный адрес.
  • Один инструмент на страницу. Каноникал плюс noindex на одной странице это противоречие: вы просите склеить вес и одновременно выкинуть страницу.
  • Согласованность с картой сайта. В sitemap.xml перечисляются только канонические адреса. Дубль в карте сайта это прямой конфликт сигналов.

Три ошибки, после которых страницы уходят из индекса

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

Каноникал на страницу, закрытую в robots.txt. Робот не может её обойти, не понимает, что там, и в итоге не индексирует ни её, ни ту страницу, что на неё ссылается.

Разные указания в коде и в HTTP-заголовке. Встречается после установки плагинов кэширования и оптимизации: HTML печатает один адрес, сервер отдаёт заголовком другой. Поиск видит конфликт и решает по своему усмотрению. Проверяется командой:

curl -sI https://example.ru/catalog/nasosy/ | grep -i link

Как проверить каноникалы на своём сайте

Порядок на полдня работы, без платных инструментов:

  1. Откройте по одной странице каждого типа (главная, раздел, карточка, статья блога, страница пагинации, страница с фильтром) и посмотрите исходный код. Найдите строку с rel="canonical" и убедитесь, что адрес тот, который вы хотите видеть в поиске.
  2. Добавьте к любой странице хвост ?test=1 и повторите проверку. Каноникал должен остаться без параметра.
  3. Прогоните сайт краулером и отсортируйте результат по столбцу с каноническим адресом. Все страницы, где он отличается от собственного адреса, надо просмотреть глазами.
  4. В панели вебмастера откройте список исключённых страниц и отфильтруйте по причине "неканоническая". Если там оказались нужные разделы, ошибка найдена.
  5. Сравните количество адресов в sitemap.xml с количеством страниц в поиске. Расхождение в разы это повод разбираться дальше.
  6. Проверьте HTTP-заголовки хотя бы у пяти страниц: код ответа должен быть 200, а заголовок Link не должен противоречить коду страницы.

Этот блок целиком входит в наш регламент технической проверки, полный список пунктов есть в статье Технический SEO-аудит.

С чего начать разбор дублей

Каноникал закрывает узкую задачу: он объединяет сигналы у страниц, которые нужны людям, но не нужны поиску по отдельности. Всё остальное решается редиректом, правкой структуры или отдельной посадочной страницей. Перед тем как ставить тег, честно ответьте на один вопрос: должен ли этот адрес вообще открываться. Если нет, тег тут лишний.

Начните с проверки шаблонов: одна ошибка в коде темы стоит дороже сотни дублей от фильтров.

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

Частые вопросы

Обязательно ли ставить каноникал на обычную страницу, у которой нет дублей?

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

Каноникал или 301 редирект: что выбрать?

Ориентируйтесь на пользователя. Если человеку нужна возможность остаться на этом адресе, например на странице с выбранной сортировкой товаров, ставится каноникал. Если попадать на этот адрес никому не нужно, например на старую версию раздела после переезда, ставится 301 редирект. Держать оба инструмента на одном адресе нельзя.

Помогает ли каноникал против дублей внутри пагинации?

Каноникал со всех страниц пагинации на первую скорее вредит: карточки товаров со второй и последующих страниц могут выпасть из обхода. Рабочий вариант - каждая страница пагинации ссылается сама на себя, а с первой страницы убирается номер в адресе. Если у раздела есть версия "показать всё" с приемлемой скоростью загрузки, каноникал можно вести на неё.

Через сколько после установки каноникала уходят дубли?

Обычно от двух недель до полутора месяцев: поиску нужно переобойти обе версии страницы и сопоставить их. Ускорить процесс можно, отправив основной адрес на переобход в панели вебмастера и убрав внутренние ссылки на дубль. Если через два месяца ничего не изменилось, каноникал почти наверняка не выполняется, и причину надо искать в коде.

Вопросы читателей по теме

Все вопросы и ответы

Нужен сайт по этой теме?

Расскажите о задаче – вернёмся с расчётом и предложением структуры.