12 мин чтения Поисковая оптимизация (SEO)

Атрибут rel canonical: как показать поисковику основную страницу и избавиться от дублей

продвижение сайтов
Содержание12

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

Что такое rel canonical и что он сообщает поисковику

Rel canonical — значение атрибута rel у элемента link, которое указывает предпочитаемый, канонический адрес страницы. Яндекс объясняет механику так: если страница доступна по нескольким адресам или на сайте есть страницы с одинаковым содержимым, робот объединяет их в группу дублей и показывает в поиске только одну — каноническую.

Без вашей подсказки поисковик выберет каноническую страницу сам, и не всегда ту, что нужна вам. Атрибут rel="canonical" позволяет повлиять на этот выбор. Страница, на которой стоит canonical с адресом другой страницы, становится неканонической и при верной настройке пропадает из выдачи.

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

Canonical не прячет страницу и не перенаправляет посетителя. Он только подсказывает поисковику, какой из одинаковых адресов показывать в выдаче.

Откуда берутся дубли страниц и чем они вредят?

Дубли страниц — страницы одного сайта с почти или полностью одинаковым текстом по разным адресам. Яндекс приводит пример главной страницы, которая открывается по пяти адресам: с www и без, с index и index.html, с UTM-метками.

Чаще всего дубли появляются из-за устройства сайта, а не по ошибке контент-менеджера:

  • Особенности CMS — адреса со слэшем на конце и без, версии для печати.
  • Настройки сервера — сайт открывается и по HTTP, и по HTTPS, с www и без.
  • GET-параметры — UTM-метки рекламы, сортировка и фильтры каталога.
  • Один товар в разных разделах — карточка доступна из нескольких категорий по разным адресам.

Яндекс перечисляет, чем это вредит. Робот тратит время на обход копий, поэтому новые страницы индексируются медленнее. Дубли могут конкурировать между собой в поиске. Наконец, робот может признать дублем и исключить из поиска как раз ту страницу, которая важна для вас.

Когда нужен canonical, а когда 301 или noindex?

Canonical подходит, когда обе версии страницы должны открываться у посетителей, а в выдаче нужна одна. Если копия людям не нужна, надёжнее редирект. Google ставит переадресацию на первое место по силе сигнала, rel="canonical" — на второе, файл Sitemap — на третье.

Способ Что происходит Когда выбирать
301 редирект Копия больше не открывается, посетитель и робот уходят на основной адрес Слэш на конце, www, HTTP, старый адрес страницы
rel="canonical" Обе страницы открываются, в выдаче остаётся основная Сортировки и фильтры, товар в нескольких категориях, адреса с параметрами
Clean-param в robots.txt Яндекс не учитывает указанные параметры в адресе UTM-метки и другие параметры, которые не меняют содержимое
noindex Страница полностью исключается из поиска Служебные страницы, которые не должны попадать в выдачу совсем

Два уточнения из справок. Для дублей со слэшем на конце и без Яндекс не рекомендует canonical, потому что он может игнорироваться, — здесь нужен 301. Google, в свою очередь, не советует использовать robots.txt для нормализации: адреса, закрытые в нём, он может проиндексировать без содержимого. Закрывать noindex страницу, которую вы просто не хотите видеть канонической, тоже не стоит — это полностью убирает её из поиска.

Мнение. Если сомневаетесь, задайте себе вопрос: нужна ли эта копия живым посетителям? Нет — ставьте 301. Да, она нужна для навигации или рекламы — ставьте canonical на основную страницу.

Канонический адрес указывают одним из двух способов. Для обычных страниц — элементом link в разделе head:

<head>
  <title>Пластиковые окна — каталог</title>
  <link rel="canonical" href="https://site.ru/catalog/okna/" />
</head>

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

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

Правила, общие для Яндекса и Google:

  1. Адрес абсолютный

    Https://site.ru/catalog/okna/, а не /catalog/okna/. Google относительные пути поддерживает, но не рекомендует.

  2. Только в head

    Google принимает элемент link с rel="canonical", только если он размещён в разделе head.

  3. В пределах одного домена

    Яндекс не учитывает canonical на другой домен или поддомен.

  4. Каноническая страница ссылается на себя

    Google рекомендует ставить такой же элемент на саму основную страницу, а Яндекс считает такую страницу канонической и ошибкой это не считает.

Если сайт работает на CMS, править код вручную обычно не нужно: canonical задаётся в SEO-настройках или модулем. Проверьте результат в исходном коде страницы — а если страница отрисовывается через JavaScript, Google советует указывать канонический адрес в исходном HTML и не менять его скриптом.

Типовые сценарии: каталог, UTM-метки, товар в нескольких разделах

Каталог с сортировкой и фильтрами — самый частый случай. Страница /catalog/okna/?sort=price показывает те же товары, что и /catalog/okna/, только в другом порядке. На всех вариантах сортировки ставьте canonical на адрес без параметров. С фильтрами сложнее: если фильтр создаёт страницу под отдельный спрос, например «окна для балкона», ей нужен собственный адрес, текст и canonical на саму себя, а не на общий каталог.

UTM-метки рекламы создают копии любой страницы. Большинство UTM-меток Яндекс удаляет из адреса автоматически, а для остальных параметров в Яндексе есть директива Clean-param в robots.txt — как её прописать, разобрали в статье про файл robots.txt. Canonical на адрес без меток работает и в Google, и в Яндексе.

Товар в нескольких категориях получает несколько адресов: /okna/pvh/model-1/ и /akcii/model-1/. Выберите основной — обычно в профильной категории — и поставьте canonical на него со всех остальных. Яндекс советует ориентироваться на удобство посетителей: в поиске должна остаться страница, с которой человеку проще всего выбрать товар.

Каноническим делайте тот адрес, на который вы ставите внутренние ссылки и который указан в карте сайта. Когда все три сигнала совпадают, поисковик почти всегда соглашается с вашим выбором.

Когда Яндекс и Google игнорируют canonical?

Оба поисковика воспринимают canonical как рекомендацию. Яндекс перечисляет случаи, когда не учитывает канонический адрес:

  • Содержимое сильно различается — неканоническая страница полнее отвечает на запрос, и робот оставляет её в поиске.
  • Канонический адрес недоступен — перенаправляет на другую страницу или закрыт от индексирования.
  • Другой домен или поддомен — canonical действует только в пределах одного сайта.
  • Несколько канонических адресов — на странице два элемента canonical с разными адресами.
  • Цепочка — страница 1 указывает на страницу 2, а та на страницу 3.

Google добавляет свои условия. Не указывайте разные канонические адреса разными способами: например, один в карте сайта, другой в rel="canonical". Внутренние ссылки должны вести на канонические адреса, а не на копии. И даже при верной настройке Google может по своим причинам выбрать каноническим другой адрес.

Отдельный случай — переезд. При смене протокола с HTTP на HTTPS Яндекс больше не поддерживает rel="canonical" для указания главного адреса и просит использовать редирект.

Факт. Яндекс не учитывает канонический адрес, если он указан на другом домене или поддомене, если на странице несколько канонических адресов или они выстроены в цепочку.

Как проверить canonical и дубли в Яндекс Вебмастере

В Яндексе дубли видны в разделе «Индексирование -> Страницы в поиске»: откройте вкладку «Исключённые страницы» и отфильтруйте колонку «Статус» по значению «Дубль». Чтобы узнать, какую страницу робот выбрал основной, нажмите три точки в строке. Как добавить сайт в кабинет, описано в инструкции как добавить сайт в Яндекс Вебмастер.

Проверку отдельного адреса удобно делать фильтром по URL на той же вкладке. Дубли, которые появились из-за GET-параметров, Вебмастер показывает отдельно: запустите «Оптимизация сайта -> Диагностика сайта», информация появится среди критичных проблем.

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

Как проверить канонический адрес в Google Search Console

В Google канонический адрес проверяют инструментом проверки URL: в результатах есть поле с каноническим адресом, выбранным пользователем, и с адресом, который выбрал Google. Если они разные, Google с вашей подсказкой не согласился. Как подключить сайт и найти инструмент, разобрали в статье как подключить сайт к Google Search Console.

В отчёте об индексировании страниц ищите три статуса:

  • «Вариант страницы с тегом canonical» — страница помечена как альтернатива уже проиндексированной. Если так и задумано, делать ничего не нужно.
  • «Страница является копией. Канонический вариант не выбран пользователем» — дубль без canonical, Google выбрал основную страницу сам.
  • «Канонические версии страницы, выбранные Google и пользователем, не совпадают» — Google проиндексировал не ту страницу, которую вы указали.

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

Частые ошибки с canonical

Ошибки с canonical опасны тем, что их не видно глазами: страница открывается, а в поиск не попадает. Вот что встречается чаще всего:

  • 01 Canonical на главную со всех страниц

    Шаблон CMS подставляет один адрес везде, и внутренние страницы выпадают из выдачи как дубли главной.

  • 02 Относительный адрес

    /page/ вместо https://site.ru/page/: на тестовой копии сайта такой canonical указывает на саму копию.

  • 03 Canonical на страницу с редиректом или noindex

    Яндекс такое указание не учтёт.

  • 04 Цепочки и два canonical на странице

    Один ставит шаблон, второй SEO-модуль.

  • 05 Canonical вместо 301 при смене адреса

    Старая страница продолжает открываться и собирать ссылки.

  • 06 Расхождение с картой сайта

    В sitemap один адрес, в canonical другой.

С чего начать, если дублей много

Начните с выгрузки исключённых страниц со статусом «Дубль» из Вебмастера и копий из отчёта Search Console. Разделите их на группы по причине: слэш и www, параметры, сортировки, товары в нескольких категориях. Для каждой группы выберите способ из таблицы выше: 301 для технических копий, canonical для страниц, которые нужны посетителям, Clean-param для параметров в Яндексе.

После исправлений проверьте выборку адресов: canonical стоит в head, адрес абсолютный, каноническая страница отвечает 200 и указана в карте сайта. Если дублей тысячи и они рождаются шаблонами CMS, правка обычно нужна в коде сайта. Такие задачи решаем в рамках SEO-продвижения: находим источник дублей и настраиваем сайт так, чтобы новые не появлялись.

Источники

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

Можно ли указать canonical на страницу другого сайта?

Яндекс такой canonical не учтёт: канонический адрес должен быть в пределах одного домена, адрес на другом домене или поддомене робот игнорирует. Для переноса материалов между сайтами используйте 301 редирект.

Нужен ли canonical, если дублей на сайте нет?

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

Как вернуть в поиск страницу, исключённую как неканоническая?

Уберите с неё rel="canonical" с адресом другой страницы и проверьте, что индексирование страницы не запрещено. Робот узнает об изменении при следующем обходе сайта.

Поделиться
ВКонтакте Telegram MAX

Расскажите о задаче — посчитаем смету

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