Как указать канонический URL с помощью атрибута rel="canonical" и другими способами

Есть несколько способов передать в Google Поиск канонический URL для одинаковых или очень похожих страниц. Эти способы перечислены ниже в соответствии с их эффективностью.

Обратите внимание, что эти способы можно комбинировать, тем самым повышая их эффективность. Это означает, что при одновременном использовании двух и более способов повышается вероятность появления указанных вами канонических 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 в качестве канонических для одной страницы, используя разные способы нормализации (например, не надо указывать в файле Sitemap один URL, а с помощью атрибута rel="canonical" – другой).
  • Не рекомендуется использовать директиву noindex, чтобы запретить выбирать ту или иную страницу в качестве канонической на одном сайте, поскольку это приведет к полной блокировке страницы в Поиске. Аннотации link с атрибутом rel="canonical" являются предпочтительным решением.
  • При использовании элементов hreflang старайтесь в качестве канонической указывать страницу на том же языке, что и альтернативная, а если это невозможно, то на самом близком к нему языке.
  • Внутренние ссылки должны указывать на канонические, а не на повторяющиеся URL. Это поможет нам понять, какую страницу вы считаете приоритетной.

Сравнение методов нормализации

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

Способ и описание
Элемент rel="canonical" link

Добавьте в код всех копий страниц элемент <link>, указывающий на каноническую страницу.

Плюсы
  • Этот способ позволяет пометить любое количество страниц.
Минусы
  • Разметка крупных сайтов или ресурсов, на которых URL часто меняются, отнимает много усилий.
  • Этот метод позволяет работать только с HTML-страницами, но не с файлами, например в формате PDF. Для такого контента можно использовать атрибут rel="canonical" в HTTP-заголовке.
HTTP-заголовок rel="canonical"

Включите в HTTP-заголовок страницы атрибут rel="canonical".

Плюсы
  • Не увеличивает размер страницы.
  • Этот способ позволяет пометить любое количество страниц.
Минусы
  • Разметка крупных сайтов или ресурсов, на которых URL часто меняются, отнимает много усилий.
Файл Sitemap

Укажите канонические страницы в файле Sitemap.

Плюсы

  • Легко настроить и обновлять, особенно на крупных сайтах.

Минусы

  • Роботам Googlebot все равно нужно определить копию каждой канонической страницы, которую вы укажете в файле Sitemap.
  • Для роботов Google этот сигнал является менее значимым, чем атрибут rel="canonical".
Переадресация С помощью переадресации можно сообщить роботу Googlebot, что конечный URL более актуален. К этому способу следует прибегать только в том случае, если решено прекратить показ копии страницы.
Вариант страницы в формате AMP Если один из вариантов страницы опубликован в таком формате, укажите каноническую страницу и ее AMP-версию согласно инструкциям для AMP.

Google поддерживает аннотации link, добавленные в явном виде с атрибутом rel canonical, как описано в документе RFC 6596. Аннотации rel="canonical", указывающие на альтернативные версии страниц, игнорируются. Аннотации rel="canonical" с атрибутами hreflang, lang, media и type не используются для нормализации. Если вам нужно указать альтернативные версии страницы, используйте аннотации link. Например, для страниц, относящихся к тем или иным языкам и странам, подойдут аннотации link и rel="alternate" с атрибутом hreflang.

Аннотации link с атрибутом rel="canonical" можно добавить двумя способами:

Рекомендуем придерживаться одного из этих способов. По возможности используйте оба для большей надежности (например, один URL можно указать в HTTP-заголовке, а другой – в элементе link rel="canonical").

Элемент link с атрибутом rel="canonical" (также известный как канонический элемент) размещается в разделе head HTML-страницы и указывает, что контент с данной страницы также размещен на другой.

Предположим, вы хотите сделать канонической страницу https://example.com/dresses/green-dresses, в то время как ее контент доступен и по другим URL. Выполните следующие действия:

  1. Добавьте в раздел <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 -->
  2. Если у канонической страницы есть вариант с другим 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 -->
  3. Добавьте любой элемент 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.

Подробнее об устранении проблем с нормализацией