Перед тем, как перейти к лучшим практикам, давайте поговорим о том, что такое канонический URL, поскольку этот термин относится не только к странице, для которой мы используем rel=canonical. Каноникализация существует намного дольше, чем этот атрибут, запущенный в 2009 году. При этом под каноническим URL подразумевается целый ряд разных вещей.

Что такое «канонический» URL

Канонический URL – этот тот URL, который Google и другие поисковые системы хотят индексировать и ранжировать.  Если по какой-то причине на сайте есть страницы с похожим или идентичным контентом или страницы, служащие одной и той же цели, то с помощью каноникализации мы можем показать, какой URL нужно индексировать.

Например, у нас есть следующий канонический URL: ABC.com/a.

При этом у него есть дубликат: ABC.com/b. Возможно, это исторический артефакт или следствие проблемы в архитектуре сайта. Возможно, мы намеренно его сделали. Например, с целью отслеживания или тестирования.

Затем у нас имеется следующая версия URL: ABC.com/a?ref=twitter. Это URL со специальным параметром. Этот параметр не меняет контент. Содержимое этой страницы идентично содержимому страницы A, но мы не хотим, чтобы Google проиндексировал эту версию, что может произойти. Иногда в результатах поиска Google можно увидеть URL, которые не являются оригинальной версией или содержат какие-то параметры.

Или, например, версия для печати: ABC.com/aprint.html.

Во всех этих случаях нам нужно показать Google, какие URL нужно индексировать, а какие – нет. Это можно сделать с помощью атрибута rel=canonical. Добавив в раздел <head> любой страницы элемент <link> с атрибутом rel=»canonical», вы дадите Google знать, какой URL следует считать основным и показывать в результатах поиска.

Вы также можете сослаться сами на себя. Вполне допустимо, чтобы страница ABC.com/a указывала сама на себя. В этом случае, если кто-то добавит к вашему URL непонятный параметр, Google будет знать, что оригинал – это указанная вами версия.

Поэтому, чтобы Google проиндексировал нужную страницу, нужно использовать каноникализацию. И rel=canonical – отличный способ для этого. Кроме того, его можно использовать на кросс-доменной основе. Например, если мы переопубликуем содержимое страницы A на другом ресурсе, например Medium.com/@RandFish, то мы можем добавить кросс-доменный атрибут rel=canonical, чтобы указать Google на оригинальную версию страницы.

Способы каноникализации URL

Есть несколько способов каноникализировать URL.

  1. Rel=canonical

Это не единственный способ, но наиболее часто рекомендуемый. Поэтому мы поставили его на первое место.

  1. 301 редирект

Переадресация 301 – это код состояния, который сообщает Google следующее: «Страницу /b нужно перенаправить на /a. Мы не хотим, чтобы пользователи посещали её. Мы не хотим забивать свою веб-аналитику данными об этих посещениях. Переадресуйте старый URL на новый».

  1. Пассивные параметры в Google Search Console

На сложных сайтах, у которых большое количество URL с параметрами, добавить rel=canonical на все эти страницы непросто.

Однако есть простой способ быстро это сделать. Это инструмент в Search Console, с помощью которого можно сделать параметры URL пассивными.

Например, у вас есть URL c параметром sessionid=… Вы можете сделать его пассивным у конкретных типов URL или у всех URL. В результате Google будет обрабатывать URL c параметрами так же, как и обычные.

  1. Хеши в URL

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

В таком случае можно использовать хеш (#) в URL . Такие URL также называют фрагментированными. Они нужны для того, чтобы пользователь попадал в конкретный раздел страницы. В результате Google расценивает эти URL как один. Поэтому он не будет ранжировать их по-разному. По сути, это позволяет каноникализировать один и тот же URL.

Что не рекомендуется делать

1. Блокировка дубликатов от сканирования с помощью robots.txt

Даже если вы настроите файл robots.txt так, чтобы Googlebot не сканировал /b, Google не будет знать, что страницы а/ и /b имеют похожее содержимое.

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

2. Блокировка дубликатов от индексации с помощью тега Noindex

Узнав об ограничениях, рассмотренных выше, вы можете решить дать Google возможность сканировать страницы, чтобы он мог увидеть их схожесть, но запретить поисковику их индексировать. В итоге вы получите ту же проблему. Google достаточно умён для автоматической каноникализации. Но не стоит полностью полагаться на способности поисковой системы. Так вот, в данном случае вы также не даёте Google объединять сигналы ранжирования страниц A и B.

3. Переадресация 302, 307 и любой другой тип редиректов, отличный от 301

Переадресация 301 – это постоянный редирект, который чаще всего обеспечивает нужный результат для каноникализации. Несмотря на то, что Google, как уверяют представители поиска, не делает различий между 301 и 302 редиректами, перенаправление 301 – более надёжный способ каноникализации.

4. Настройка кода ответа сервера 40х для неканонической версии

Избегайте ситуации, при которой страница /b отдаёт ошибку 404, поскольку вы решили, что она больше не нужна. Вместо этого используйте переадресацию 301. Если вы настроили 301 редирект или добавили атрибут rel=canonical в раздел <head>, то все сигналы будут передаваться странице A. Если страница B возвращает код ответа сервера 404, то эти сигналы теряются.

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

Когда нужно каноникализировать URL

  1. Если контент очень похож или идентичен

Если содержимое двух и более страниц очень похоже или идентично, то в этом случае следует выделить основной (канонический) URL.

  1. Если контент обслуживает одно и то же поисковое намерение

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

Например, этот выпуск Whiteboard Friday об использовании rel=canonical и каноникализации заменит старую версию от 2009 года. В данном случае мы будет использовать атрибут rel=canonical. Почему? Чтобы пользователи по-прежнему имели доступ к старой версии, если по какой-то причине им будет нужна эта информация. Но мы определённо не хотим, чтобы пользователи поиска посещали эту страницу, поэтому с помощью rel=canonical мы сообщаем Google следующее: «Новая версия является самой последней и наиболее актуальной для пользователей».

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

  1. Если вы повторно публикуете или обновляете старый контент

Как и в примере с Whiteboard Friday, в большинстве случаев рекомендуется использовать атрибут rel=canonical. Но есть некоторые исключения. Например, если вы хотите сохранить старую версию, но хотите, чтобы её сигналы ранжирования поступали к новой версии, вы можете взять контент со старой версии и повторно его опубликовать на странице /a. Затем на этой странице нужно будет настроить переадресацию или же опубликовать новую версию и сделать её канонической. При этом старая версия контента будет существовать на URL, который вы только что создали, но будет считаться старой.

  1. Если контент, товар или событие больше недоступны, а на другом URL есть подходящая альтернатива

Если у вас имеется устаревший контент – товар, которого нет на складе, или событие, которое уже произошло, и есть новая версия, которая может решить проблему пользователя, то вы можете её каноникализировать. В этом случае лучше использовать переадресацию 301, чем rel=canonical, чтобы пользователи не посещали старую страницу, где нет нужной им информации. При настройке 301 редиректа и пользователи, и поисковые системы будут перенаправляться на новую версию.

ИСТОЧНИКБлог Moz

Редактор-переводчик. Специализируется на западном интернет-маркетинге и SEO. Освещает события в этой области с 2014 года.