Как указать канонический URL с помощью атрибута rel="canonical" и другими способами
Есть несколько способов передать в Google Поиск канонический URL для одинаковых или очень похожих страниц. Эти способы перечислены ниже в соответствии с их эффективностью.
- Переадресация. Явный признак того, что целевой URL переадресации должен рассматриваться как канонический.
-
Аннотации
link
с атрибутомrel="canonical"
. Явный признак того, что указанный URL должен рассматриваться как канонический. - Использование файла Sitemap. Не самый эффективный способ, при котором каноническими становятся URL, указанные в файле Sitemap.
Обратите внимание, что эти способы можно комбинировать, тем самым повышая их эффективность. Это означает, что при одновременном использовании двух и более способов повышается вероятность появления указанных вами канонических URL в результатах поиска.
Хотя мы и рекомендуем придерживаться указанных методов, они не являются обязательными. Вполне вероятно, что ваш сайт будет вполне эффективен в Поиске и без указания канонических URL. Дело в том, что, если вы не укажете канонический URL, Google самостоятельно определит, какая версия URL является наиболее подходящим вариантом для размещения в результатах поиска.
Для чего нужно указывать канонический URL
Как правило, указывать канонические URL не требуется, однако существует ряд причин, по которым стоит сообщать Google о том, какая страница из группы одинаковых или похожих страниц является канонической:
-
Чтобы указать, какой URL следует показывать в результатах поиска.
Предположим, вы хотите, чтобы посетители переходили на страницу с описанием платьев зеленого цвета по адресу
https://www.example.com/dresses/green/greendress.html
, а неhttps://example.com/dresses/cocktail?gclid=ABCD
. -
Чтобы сгруппировать сигналы для похожих или одинаковых страниц. Так поисковые системы смогут объединить все сигналы, которые у них есть для отдельных страниц (например, ссылки на них), и связать их с одним URL. Это означает, что все сигналы с других сайтов по адресу
https://example.com/dresses/cocktail?gclid=ABCD
объединяются со ссылками наhttps://www.example.com/dresses/green/greendress.html
, если последний URL является каноническим. - Чтобы упростить получение статистики по контенту. Если контент размещен на нескольких страницах с разными URL, это затрудняет получение обобщенной статистики по нему.
- Чтобы оптимизировать сканирование сайта. Возможно, вам необходимо обеспечить максимальную эффективность сканирования вашего сайта роботом Googlebot. Гораздо полезнее обрабатывать новый или обновленный контент, нежели тратить время на копии одних и тех же страниц.
Рекомендации
Ниже приведены общие рекомендации по нормализации URL.
- Не используйте для нормализации файл robots.txt.
- Не используйте для нормализации инструмент удаления URL. Он скрывает из результатов поиска все варианты URL.
- Не указывайте разные URL в качестве канонических для одной страницы, используя разные способы нормализации (например, один URL в файле Sitemap, а другой – с помощью атрибута
rel="canonical"
). - Не указывайте фрагмент URL в качестве канонического, поскольку Google, как правило, не поддерживает фрагменты URL.
-
Не рекомендуется использовать директиву
noindex
для того, чтобы препятствовать выбору той или иной страницы в качестве канонической на одном сайте, поскольку это приведет к полной блокировке страницы в Google Поиске. Аннотацииlink
с атрибутомrel="canonical"
являются предпочтительным решением. - При использовании элементов
hreflang
старайтесь в качестве канонической указывать страницу на том же языке, что и альтернативная, а если это невозможно, то на самом близком к нему языке. - Внутренние ссылки должны указывать на канонические, а не на повторяющиеся URL. Это поможет нам понять, какую страницу вы считаете приоритетной.
Сравнение методов нормализации
Ниже находится таблица сравнения различных методов нормализации с их преимуществами и недостатками в плане удобства настройки и эффективности в разных сценариях.
Способ и описание | |||
---|---|---|---|
Элемент rel="canonical" link |
Добавьте в код всех копий страниц элемент
|
||
HTTP-заголовок rel="canonical"
|
Включите в HTTP-заголовок страницы атрибут
|
||
Файл Sitemap |
Укажите канонические страницы в файле Sitemap.
|
||
Переадресация | С помощью переадресации можно сообщить роботу Googlebot, что конечный URL более актуален. К этому способу следует прибегать только в том случае, если решено прекратить показ копии страницы. | ||
Вариант страницы в формате AMP | Если один из вариантов страницы опубликован в таком формате, укажите каноническую страницу и ее AMP-версию согласно инструкциям для AMP. |
Как использовать аннотации link
с атрибутом rel="canonical"
Google поддерживает аннотации link
, добавленные в явном виде с атрибутом rel
canonical, как описано в документе RFC 6596.
Аннотации rel="canonical"
, указывающие на альтернативные версии страниц, игнорируются. Аннотации rel="canonical"
с атрибутами hreflang
, lang
, media
и type
не используются для нормализации. Если вам нужно указать альтернативные версии страницы, используйте аннотации link
. Например, для страниц, относящихся к тем или иным языкам и странам, подойдут аннотации link
и rel="alternate"
с атрибутом hreflang
.
Аннотации link
с атрибутом rel="canonical"
можно добавить двумя способами:
-
внедрив элемент
link
с атрибутомrel="canonical"
на HTML-страницу; -
указав атрибут
rel="canonical"
в HTTP-заголовкеlink
.
Рекомендуем придерживаться одного из этих способов. По возможности используйте оба для большей надежности (например, один URL можно указать в HTTP-заголовке, а другой – в элементе link
rel="canonical"
).
Элемент link
с атрибутом rel="canonical"
Элемент link
с атрибутом rel="canonical"
(также известный как канонический элемент) размещается в разделе head
HTML-страницы и указывает, что контент с данной страницы также размещен на другой.
Предположим, вы хотите сделать канонической страницу https://example.com/dresses/green-dresses
, в то время как ее контент доступен и по другим URL. Выполните следующие действия:
-
Добавьте в раздел
<head>
всех копий страницы элемент<link>
, содержащий атрибутrel="canonical"
со ссылкой на каноническую страницу. Пример:<html> <head> <title>Explore the world of dresses</title> <link rel="canonical" href="https://example.com/dresses/green-dresses" /> <!-- other elements --> </head> <!-- rest of the HTML -->
-
Если у канонической страницы есть вариант с другим URL, предназначенный для мобильных устройств, добавьте элемент
link
с атрибутомrel="alternate"
, который будет содержать ссылку на мобильную версию:<html> <head> <title>Explore the world of dresses</title> <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/dresses/green-dresses"> <link rel="canonical" href="https://example.com/dresses/green-dresses" /> <!-- other elements --> </head> <!-- rest of the HTML -->
- Добавьте любой элемент
hreflang
или другие подходящие элементы.
Элементы link
с атрибутом rel="canonical"
должны содержать абсолютные пути, а не относительные. Хотя относительные пути и поддерживаются Google, мы не рекомендуем их использовать, поскольку это может вызвать проблемы в долгосрочной перспективе (например, если вы намеренно разрешаете сканировать свой тестовый сайт).
Рекомендуется:
https://www.example.com/dresses/green/greendress.html
Не рекомендуется:
/dresses/green/greendress.html
Элемент link element
с атрибутом rel="canonical"
принимается только в том случае, если он размещен в разделе <head>
HTML-страницы. В связи с этим необходимо использовать корректный код HTML хотя бы в разделе <head>
.
При добавлении элемента link
с атрибутом rel="canonical"
с помощью JavaScript делайте это правильно.
HTTP-заголовок с атрибутом rel="canonical"
Если у вас есть доступ к настройкам сервера, то для того, чтобы указать канонический URL, вместо элемента HTML можно использовать HTTP-заголовок с атрибутом link
и атрибутом target rel="canonical"
согласно методу RFC 5988. Этот способ совместим со всеми документами, которые поддерживает Google Поиск, в том числе и в формате, отличном от HTML, например c файлами PDF.
Этот способ поддерживается только для веб-поиска.
Если ваш контент публикуется в разных форматах, например PDF или Microsoft Word, и у каждого свой URL, то из HTTP-заголовка с атрибутом rel="canonical"
робот Googlebot сможет получить канонический URL файлов, которые не относятся к HTML. Например, добавив этот HTTP-заголовок в версию в формате .docx
, можно обозначить, что канонической является версия документа в формате PDF, а не .docx
:
HTTP/1.1 200 OK Content-Length: 19 ... Link: <https://www.example.com/downloads/white-paper.pdf>; rel="canonical" ...
Как и в элементе link
с атрибутом rel="canonical"
, в HTTP-заголовке с атрибутом rel="canonical"
нужно использовать только абсолютные URL, и, согласно документу RFC2616, URL следует заключать в двойные кавычки.
Как использовать файл Sitemap
Укажите канонический URL для каждой страницы в файле Sitemap. Все страницы в этом файле предлагаются в качестве канонических. Googlebot сможет определить, какие из них являются копиями, по их контенту.
Указать канонические URL с помощью файла Sitemap – это простой способ обозначить канонические страницы на крупном сайте, а также сообщить Google, какие страницы являются для вас основными.
Как использовать переадресацию
Этот способ позволяет исключить копии страниц. Все способы переадресации – переадресация с кодами ответа 301
и 302
, meta-refresh
и с использованием JavaScript – одинаково эффективны в Google Поиске, однако их обнаружение поисковыми системами может занять разное время.
Самой быстрой является переадресация с кодом ответа 3xx
(также известная как серверная переадресация).
Предположим, на вашу страницу можно перейти по следующим URL:
https://example.com/home
https://home.example.com
https://www.example.com
Выберите один из этих адресов в качестве канонического и используйте переадресацию на стороне сервера, чтобы перенаправлять на этот URL трафик с других адресов.
Другие сигналы
Помимо обозначенных выше методов, в Google также используются сигналы нормализации, которые зависят от настроек сайта – используется ли на нем протокол HTTPS вместо HTTP и объединены ли URL в кластеры hreflang
.
При выборе канонических URL отдавайте предпочтение протоколу HTTPS
При определении канонических ссылок Google отдает предпочтение страницам HTTPS, если при этом не возникают проблемы, например следующие:
- Страница HTTPS использует недействительный сертификат SSL.
- Страница HTTPS содержит небезопасные зависимости (кроме изображений).
- Страница HTTPS выполняет переадресацию на страницу HTTP.
- Страница HTTPS содержит элемент
link
с атрибутомrel="canonical"
, который указывает на страницу HTTP.
Хотя для Google HTTPS-страницы являются приоритетными по умолчанию, вы можете явным образом указать, что именно HTTPS-версия должна быть канонической. Для этого выполните одно из следующих действий:
- Добавьте переадресацию с HTTP-страницы на HTTPS.
- Используйте переадресацию со страницы HTTP на страницу HTTPS с помощью элемента
link
с атрибутомrel="canonical"
. - Используйте технологию HSTS.
Как добиться того, чтобы страница HTTP не была ошибочно назначена канонической:
- Избегайте использования недействительных сертификатов TLS или SSL, а также переадресаций со страниц HTTPS на HTTP, поскольку эти факторы в высокой степени способствуют выбору страниц HTTP. При этом не важно, применяется ли протокол HSTS.
-
Не указывайте HTTP-версии своих страниц в файле Sitemap или аннотациях
hreflang
при наличии их HTTPS-версий. -
Не используйте сертификат SSL/TLS для некорректного хоста (например, если
example.com
передает сертификат дляsubdomain.example.com
). Этот сертификат должен соответствовать полному URL сайта или являться групповым, то есть пригодным для использования на нескольких субдоменах.
Отдавайте предпочтение URL в кластерах hreflang
На многоязычных сайтах в целях нормализации Google отдает предпочтение URL, входящим в кластеры hreflang
. Например, если страницы https://example.com/de-de/cats
и https://example.com/de-ch/cats
с помощью аннотаций hreflang
взаимно указывают друг на друга, но не на https://example.com/de-at/cats
, то страницы de-de
и de-ch
будут назначены каноническими вместо /de-at/
, которая не входит в кластер hreflang
.
Подробнее об устранении проблем с нормализацией…