Что такое rel=»canonical» и почему его нужно использовать. Канонические страницы и как использовать rel=”canonical”

В идеале должна быть одна версия для каждой страницы. Но на деле часто бывает, что одинаковый контент присутствует в нескольких местах одного сайта, а также на других ресурсах. Чтобы решить проблему дублирующего контента было разработано решение под названием «элемент канонической ссылки», больше известное как атрибут rel=»canonical» .

Как rel=»canonical» может помочь продвижению?

Этот атрибут устраняет проблемы, связанные с дублирующимся контентом. Устанавливает предпочтительную версию страницы и передает сигналы, такие как ссылки, на эту версию страницы. Объединяет дубликаты контента, которые могут появляться по следующим причинам:

  • HTTP и HTTPS
  • одни и те же материалы в субдомене www и по обычным адресам http
  • параметры и многоаспектная навигация
  • идентификаторы сессий
  • завершающий слэш
  • индекс/страницы по умолчанию
  • версии альтернативной страницы, такие как m. или AMP-страницы или версии для печати

Где прописать атрибут rel=canonical

Большинству веб-мастеров известно, что атрибут добавляется в тег head:

Но не все знают, что canonical может также отправляться в заголовок HTTP:

HTTP/1.1 200 OK
Link: ; rel=»canonical»

Известно, что Google отдает предпочтение HTTPS-страницам в качестве канонических, а не их аналогам HTTP; исключение - случаи, когда присутствуют противоречивые сигналы, согласно справке Search Console:

  • Страница HTTPS имеет недействительный сертификат SSL.
  • Страница HTTPS содержит небезопасные зависимости.
  • Доступ к странице HTTPS запрещен в файле robots.txt, а к странице HTTP – нет.
  • Страница HTTPS выполняет переадресацию на страницу HTTP.
  • Страница HTTPS указывает на страницу HTTP с помощью атрибута rel=»canonical».
  • Страница HTTPS содержит метатег noindex для роботов.

Редкий случай, но все же возможный, когда из-за ошибок в коде раздел заголовка заканчивается прежде, чем это должно быть. При этом canonical может быть в теле контента, где поисковая система его никак не ожидает найти. Еще хуже, когда большинство инструментов (таких как Screaming Frog или Deep Crawl) эту ошибку не фиксируют. Проблему можно установить только с помощью программного интерфейса DOM (объектная модель документа) - например, когда используется Inspect для Chrome Dev Tools

Рассмотрим канонический атрибут в Home Depot на скриншоте ниже. Можно видеть, что раздел заголовка закончился, и часть контента, которая при рассмотрении источника находится в заголовке, попадает в тело, когда рассматривается DOM.

Взаимодействие атрибута canonical с другими

С атрибутом canonical можно легко ошибиться. Допустить, например, грамматическую ошибку, поставить завершающий слэш, в особенности когда есть еще нумерация страниц и . Если индексируется страница отличная от той, что значится в теге, страницы не будут объединены должным образом. Например, канонический элемент устанавливается на второй странице нумерованного списка для URL первой страницы. Атрибут canonical не следует использовать вместе с noindex.

Другие способы применения canonical

Атрибут canonical можно использовать для альтернативных версий сайта (мобильная и AMP-версия). Для не нужно специально менять эти атрибуты.

Здравствуйте, друзья!

Сегодня будет очень важная статья, которая очень тесно пересекается с темой про дубли страниц.

Так, что внимательно вникаем и, если что-то непонятно, то пишите в комментарии. Темой обсуждения является животрепещащий атрибут rel="canonical", который призван для предотвращения дублированного контента и упрощения индексации поисковым системам.
Пройдемся по каждому вопросу по порядку, чтобы сложилась целостная картина.

Принцип работы атрибута rel="canonical"

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

Rel="canonical" - это один из важнейших моментов в оптимизации любого сайта, который позволяет решить проблему дублированного контента. Особая нужда в его использовании появляется при использовании различных дижков для создания сайтов, таких как: WordPress, phpBB и других.

Различные движки помимо основных страниц генерируют еще и другие документы с точно таким же контентом, но выполняющие совершенно другие задачи, например:

  • версия страницы для печати;
  • мобильная версия статьи;
  • и любые другие страницы с таким же контентом, но с другими адресами.

Если взять сайт на WordPress, то при включенной функции древовидных комментариев доступна кнопка "Ответить" под каждым комментом.

Она делает адрес совершенно другим, а вот контент никуда не изменяется. Происходит явное дублирование контента, что очень плохо.

Одним из самых действенных способов предотвратить появление такой страницы в индексе поисковых систем является добавления на все подобные страницы атрибута rel="canonical", который укажет, что только статья является предпочтительным документом для индексации, а все остальные в индекс брать не нужно.

Как прописывать rel="canonical"

На различных движках (например, WordPress) добавление атрибута rel="canonical" происходит в автоматическом режиме. Также атрибут добавляется с помощью различных SEo плагинов.

Если же хотим добавить canonical в ручном режиме, то в область ресурса стоит добавить следующую строчку.

< link rel = "canonical" href = "адрес страницы" / >

Данный строку нужно обязательно добавить в секцию шапки сайта, то есть между открывающим и закрывающим тегом . Иначе поисковые системы проигнорируют ваше указание в виде этого атрибута. Также стоит добавлять его на каждую страницу, которая не является главной и доступна по другому адресу.

Если взять в пример ситуацию выше с адресами страниц, создаваемые кнопками ответа на комментарии на WordPress, то в исходном коде каждой такой страницы можно видеть атрибут rel="canonical".

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

http://i-am-kulinar.ru/poleznoe-obzory-intervyu/ne-proigral-nikto.html?replytocom=5499#respond

http : //i-am-kulinar.ru/poleznoe-obzory-intervyu/ne-proigral-nikto.html?replytocom=5499#respond

Такая страница благодаря атрибуту канонических адресов в индекс не попадет. Поисковики прекрасно примут во внимание ваше указание.

Рассмотрев основной принцип работы данного атрибута, можно перейти к следующему вопросу материала.

В каких случаях использовать?


Теперь стоит рассмотреть основные ошибки, которые могут допускаться и их стоит избегать.

Основные ошибки


Когда разобрали основные ошибки, которых стоит избегать и которые чаще всего употребляются, стоит упомянуть плагины WordPress и некоторые моменты работы с атрибутом rel="canonical" на том движке.

Сanonical в плагинах WordPress

Начнем с одного из самых популярных решений на рынке - all in one seo pack. Плагин хорош и добавляет данный атрибут в код каждой страницы, удаляя при этом стандартный canonical, создаваемый средствами движка. Для этого стоит включить соответствующую настройку.

Существует 2 проблемы, которые могут препятствовать нормальной индексации сайта и помочь конкурентам насолить нам.

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


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

Вторым моментом является косяк, который я описывал в соответствующей статье (). Он может помочь нашим конкурентам добавить нежелательные страницы в индекс с помощью инструментов addurl в поисковый индекс. Данный косяк конечно же исправляется и хорошо, что средствами самого же плагина, активировав определенную настройку "No Pagination for Canonical URLs".

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

Вторым плагином на обозрении стоит Platinum seo pack. К страницам пагинации он относится с уважением. Проблема заключается лишь в дублировании rel="canonical". Просмотрев исходный код страницы, можно увидеть, что при включенной функции добавления атрибута, не убирается стандартный атрибут, выводимый движком.


Если ваш сайт имеет идентичный или очень похожий контент, доступный по разным URL , тогда новый формат позволит указать тот URL , который должен возвращаться в поисковой системе. Также можно быть уверенным, что все характеристики, такие как ссылочный вес и т.д. передадутся на нужную версию адреса.

Теперь вы можете добавить этот тег, для указания вашей версии адреса, внутри тега на страницах с дублированным контентом:

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

Подобный тег будет полезным в основном при использовании различных движков (phpBB, IPB , WordPress, и т.д., напр. сайту ipbskins.ru – разработка дизайна сайта на IPB , приходится использовать длинный robots.txt в целях избежания дублированного контента), создающих множество похожих страниц, например, это могут быть страницы:

печатной версии статьи:
http://site.ru/article01.html?print=true
текстовой версии статей для моб. телефонов:
http://site.ru/lofiversion/article01.html
дублированные из-за недостатка движка:
http://site.ru/articles/?id=1&category=new
http://site.ru/articles/?id=1&tag=keyword
и ряд других…

Этот стандарт может быть адаптирован любой поисковой машиной при индексации сайта.

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

Ответы на некоторые популярные вопросы по тегу:

Является ли rel=“canonical” подсказкой или директивой?
Это подсказка, которую мы берем во внимание и во взаимодействии с другими сигналами вычисляем наиболее релевантную страницу для отображения в поисковых результатах.

Могу ли я использовать относительный путь для указания canonical, например так: ?
Да, относительные пути распознаются также, как и в обычном теге . Даже если вы введете тег с ссылкой на документ, тогда относительные пути будут считаться в соответствии с базовым URL .

Это нормально, если канонические адреса содержат не полностью дублированный контент?
Мы позволяем небольшие различия, такие как порядок сортировки в таблице продуктов. Также мы понимаем, что канонические адреса могут парситься роботом в разное время, поэтому все это нормально.

Что если rel=“canonical” возвращает 404 ошибку?
Мы продолжим индексировать ваш контент и использовать эвристический подход, для определения канонического адреса, однако, мы рекомендуем, чтобы вы использовали существующие URL в качестве канонических.

Что если rel=“canonical” ещё не проиндексирован?
Мы стараемся достучаться до канонического URL быстро. Как только мы его проиндексируем, тогда сразу же перерассмотрим подсказку rel=“canonical”.

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

Что если я имею противоречивые сигналы для rel=“canonical”?
Наши алгоритмы мягкие: мы можем следовать по каноническим цепям, однако, мы настоятельно рекомендуем, чтобы вы на страницах указывали единственный канонический адрес, чтобы быть уверенным в оптимальном результате канонизации.

Может ли этот тег для ссылки предложить канонический адрес на совершенно другом домене?
Нет. Чтобы мигрировать на другой домен, более подходящ. В настоящее время Google поддерживает канонизацию внутри поддоменов или внутри одного домена. Таким образом, владельцы сайтов могут указать www.example.com вместо example.com или help.example.com , однако, не могут указать example.com вместо example-widgets.com .

Звучит интересно, но могу ли я увидеть пример?
Да, wikia.com помогла нам, как трастовый тестер. Например, вы замтетите, что исходный код по адресу http://starwars.wikia.com/wiki/Nelvana_Limited содержит rel=canonical http://starwars.wikia.com/wiki/Nelvana .

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

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

1. Помимо избавления от естественного дублированного контента (из-за недостатка движка), мы также избавляемся от дублированного контента искусственного, когда конкуренты нам пытаются насолить, добавляя в страницы с произвольными параметрами в URL .

2. Теперь нет надобности использовать robots.txt для запрета индексации таких страниц, как “печатная версия” и других дубликатов (напр. в WordPress нужно было закрывать путь /teg/) и угождать каждому поисковику отдельно (есть общие стандарты для robots.txt, но есть также и ряд особенностей работы каждого поисковика с этим файлом, поэтому мы раньше не могли предусмотреть запрет индексации некоторых страниц сразу для всех ботов).

3. Мы теперь имеем хороший инструмент для ускорения индексации сайта 🙂

В этой статье мы рассмотрим канонические ссылки в html (атрибут rel="canonical"). Поговорим зачем они были введены и для чего использовать. Скажу сразу, что появились они в 2009 году в компании Google.

Что такое каноническая ссылка

Дубли на сайте - страницы содержащие одинаковый контент , но имеющие разные адреса URL.

Чаще всего дубли возникают в результате недоработок движка сайта . Такие проблемы есть почти у каждого сайта на CMS. Ничего страшного в этом нету, если их грамотно обработать. Бороться с дублями необходимо прежде всего для того, чтобы занимать хорошие места в поисковой выдаче. Как известно, дубли негативно влияют на траст сайта в целом, а следовательно и на его позиции.

Для борьбы с дублями существует несколько способов:

  • robots.txt (все про robots.txt)
  • 301 редиректом (как сделать 301 редирект)
  • 404 страницей (404 ошибка - как правильно настроить)

Однако есть и четвертый способ решения этой проблемы - использование атрибута rel="canonical" .

Атрибут rel="canonical" - как пользоваться

Синтаксис rel="canonical"
... ...

Этот атрибут прописывается в заголовочных тегах . На всех одинаковых страницах (дублях) нужно указать адрес главной страницы (основной). Ссылки в href="" и есть канонические ссылки.

Например, если на сайте есть одинаковые страницы

site/catalog/tovar site/catalog/tovar?sort=abc site/catalog/tovar?sort=price

Для уточнения какая из этих страниц является главной достаточно написать на каждой странице:

Тем самым показывая поисковой системе, что адрес основной страницы является - site/catalog/tovar .

Ответы на часто задаваемые вопросы

1. Стоит ли пользоваться каноническими ссылками?

Да, стоит. В рассмотренным примере, можно было пользоваться только каноническими ссылками или robots.txt. Можно совмещать эти два способа.

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

2. Что будет если канонически ссылки противоречат друг другу

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

3. Случаи, когда робот может проигнорировать ваши рекомендации

Из справки Яндекса:

  • Документ по каноническому адресу недоступен для индексирования
  • В качестве канонического адреса указывается URL в другом домене или поддомене
  • Вы указали несколько канонических адресов
4. Можно ли использовать цепочку канонических URL

Например, /stranica/123 ссылается на /stranica/12, а эта в свою очередь на /stranica/. Поисковый робот может проигнорировать такую конструкцию.

5. Как правильно выбрать канонический урл

Сложно ответить и рассмотреть все варианты в паре предложений. Дадим общие рекомендации. На мой взгляд нужно смотреть на привлекательность URL (или точнее на ЧПУ). К примеру, если есть страница /cat/2323fdfds34.html и страница /cat/rel-canonical. Очевидно, что второй адрес гораздо предпочтительней.

Если все не так очевидно, то стоит выбирать менее вложенные статьи в каталоги и менее короткие URL. К примеру /cat/podcat/podpodcat/str.html лучше заменить на /cat/str.html

И последнее: если какая-то страница уже долго время существует и хорошо ранжируется, то все новые "дубли", лучше ссылать на нее. Смена адреса путем rel canonical, конечно, не должна повлиять на позиции, но лучше не рисковать, если они и так высокие по этому запросу.

6. Можно ли ссылаться на другой домен канонической ссылкой

В атрибуте rel canonical можно использовать ссылки только внутри домена или поддоменов. Нельзя ссылаться на внешние сайты.

7. Можно ли делать rel canonical сама на себя

Да можно. Смысла в этом нету, но и плохого тоже.

Привет, друзья. Пора бы мне уже довести до логического завершения тему про управление индексацией сайта. Я вам напомню, какие методы управления индексацией вообще существуют: файл robots.txt, мета-тег robots, заголовок X-Robots-Tag, ну и 301-редирект здесь можно упомянуть, как метод борьбы с дублями, что так же является неотъемлемой частью качественной индексации. И обо всем этом я вам уже рассказывал, но есть еще один очень важный и интересный способ борьбы с дублями, в чем-то альтернатива редиректу, это атрибут rel="canonical" , который присваивается тегу link и располагается в части любой html-страницы.

Выглядит это как-то так:

Что немаловажно – данный тег поддерживается всеми поисковыми системами , в том числе нашими любимыми Яндекс и Google.

Итак, сегодня я вам расскажу, как и для чего нужно использовать тег rel canonical , в каких ситуациях он действительно эффективен, а заодно убедимся в этой самой эффективности на реальном эксперименте. Приготовьтесь:)

Для начала напомню вам о тех постах, что я затронул в начале:

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

Теория и справка от поисковых систем

Привожу ссылки на официальную позицию поисковых систем: Google об атрибуте rel="canonical" и Яндекс про атрибут rel="canonical" тега . Разумеется, и mail.ru тут как тут – про значение canonical в теге — не могли же они отстать от Яндекса, но это и хорошо, все под копирку, нам же проще.

Что такое каноническая страница? Это рекомендуемый экземпляр из набора страниц с очень похожим содержанием.

Зачем нужно указывать каноническую страницу? Если поисковая система видит, что страницы очень похожи или одинаковы, то согласно алгоритмам в результатах поиска появится только одна предпочтительная страница, которая, по мнению поисковой системы, лучше всего отвечает на запрос пользователя.

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

Еще оказывается, можно указывать каноническую ссылку для не HTML содержимого , а, например, для pdf, doc или других файлов при помощи заголовков. Типа как X-Robots-Tag HTTP header, только тут будет Link HTTP header. Но это уже совсем для гик-маньяков, так что рассказывать об этом не буду.

Что будет, если атрибут rel="canonical" указывает на несуществующую страницу? А если каноническими назначено несколько страниц набора? В этом случае поисковая система просто проигнорирует данные правила и будет поступать, как и раньше — вычислять подходящий экземпляр из набора страниц согласно алгоритмам.

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

На основании всего вышенаписанного, а так же по информации из других официальных источников (блоги поисковых систем и блоги их сотрудников) можно сделать выводы о том, что тег link rel="canonical":

  • Это рекомендация, а не правило, а потому может быть проигнорирован в следующих случаях:
    • Документ по каноническому адресу не существует, отдает ответ 404;
    • Каноническая страница закрыта от индексации в robots.txt или мета-тегом;
    • В html-коде страницы указано сразу несколько атрибутов rel canonical;
    • Адрес канонического документа указывает на другой домен или поддомен;
    • Присутствует цепочка назначений rel="canonical", т.е. для документа А каноническим указан документ Б, а в это время для документа Б указан каноническим документ В;
  • Необходимо указывать только для дублирующих или очень схожих страниц, а не для склейки двух разных страниц или передачи веса;
  • Адрес канонической страницы может указывать сам на себя;
  • Поддерживается всеми поисковыми системами: в Яндексе с 23 мая 2011 года, в Google с 12 февраля 2009.

Практическое применение и эксперимент

Все, с теорией покончено, теперь я вам расскажу, зачем и для чего я использую тег rel="canonical" на своих сайтах. Главное и основное – это борьба и предупреждение появления дублей. В основном это дубли, связанные с параметрами или метками в url. Не всегда уместно бороться с этими проблемами . Метки иногда очень важны, например, когда ведется кампания в контексте и в метках передаются важные статистические сведения, да и много еще чего можно отслеживать метками. Закрывать такие адреса в robots.txt мне не по душе, использовать мета роботс не получится, а редирект уничтожит все данные.

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

Это все понятно. Но вот только о самом главном для нас seo’шников нигде не сказано – а как дела обстоят с передачей ссылочного веса? Что если на неканонический адрес стоят ссылки, что же будет с канонической страницей, получит ли она от этого бонусы? А если сперва появилась ссылка, а rel="canonical" был указан позже? А что будет, если все наоборот?

Вопросов много, а официальных комментариев нет. На вопросы кто виноват и что делать, ответ один – надо ставить эксперимент! Хотел я такой эксперимент поставить, но оказалось, что его уже не так давно провел Игорь, автор блога bakalov.info , за что ему огромное спасибо.

Вот цитата с его блога о том, какова цель, какие варианты развития событий и ожидаемый результат:

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

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

Вариант №2. На странице Б устанавливается rel="canonical", который указывает, что канонической является страница С, что приводит к исключению страницы Б из индекса. Через некоторое время после этого со страницы А на страницу Б устанавливается ссылка.

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

Полное описание и ход эксперимента .

Я же сообщу результаты эксперимента и выводы:

Для Яндекса не имеет значения, что появилось раньше – rel="canonical", или внешняя ссылка – в любом случае «вес ссылки» будет передан с неканонического URL на канонический.

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

Короче, все работает!

В очередной раз обобщая всю информацию изложенную в посте, хочу сказать, что использовать тег link rel="canonical" нужно . В первую очередь это отличный способ предотвратить дублирование контента (особенно это касается ошибок и недоработок большинства CMS) и наложение санкций за это со стороны поисковых систем.

Удачи вам, друзья! Оставляйте комментарии и задавайте вопросы.

С уважением, Александр Алаев