Использование атрибута hreflang элемента link

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

Используйте атрибута hreflang, если:

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

  • Версии страницы на одном языке, но отличаются в мелких деталях. Например, слегка различающиеся английские тексты могут быть адресованы пользователям из США, Ирландии и Австралии.

  • Каждая версия страницы — полный и точный перевод страницы на основном языке сайта.
  • Язык содержимого страниц определяется настройками пользователя (заголовок Accept-Language, IP-адрес), или на страницах есть селектор для выбора языка. В этом случае используется атрибут hreflang со значением x-default.

Разметка локализованных страниц

Каждая версия страницы должна содержать информацию о всех ее альтернативных версиях. Для этого в элемент head нужно добавить элемент link, имеющий следующий формат:
<link rel="alternate" hreflang="lang_code" href="url" />

Язык и регион следует указывать согласно кодам, которые стандартизированы ISO:

  • код языка выбирайте из списка кодов ISO 639-1;

  • код региона выбирайте из списка кодов ISO 3166-1 Alpha-2.

Версии страницы могут быть расположены в разных поддоменах и доменах. Например, страница сайта ru.example.ru продублирована для американцев на английском (en.example.ru) и турков на турецком (example.com.tr). На каждой из этих страниц должно быть три соответствующих элемента link с атрибутами локализации:

<head>
    <title>Заголовок страницы</title>
    <link rel="alternate" hreflang="ru" href="http://ru.example.com/" />
    <link rel="alternate" hreflang="en-us" href="http://en.example.com/" />
    <link rel="alternate" hreflang="tr-tr" href="http://example.com.tr/" />
</head>
  • ru — страница на русском языке;

  • en-us — страница на английском языке для пользователей из США;

  • tr-tr — страница на турецком языке для пользователей из Турции.

Структура сайта не влияет на обработку атрибута hreflang. Версии страницы могут быть расположены в разных каталогах:

<link rel="alternate" hreflang="ru" href="http://example.com/o-kompanii/" />
<link rel="alternate" hreflang="en-us" href="http://example.com/company/about/" />
<link rel="alternate" hreflang="tr-tr" href="http://example.com/firma-hakkinda" />

Страницы с автоматическим определением языка

Если на сайте есть страницы, язык которых определяется настройками пользователя (Accept-Language, IP), или содержащие селектор для выбора языка, их следует указать вместе с жестко локализованными документами. Допустим, главная страница сайта example.com из примера выше меняет язык в зависимости от IP-адреса пользователя. Это следует отразить, присвоив атрибуту hreflang значение x-default:

<link rel="alternate" hreflang="x-default" href="http://example.com/" />
<link rel="alternate" hreflang="ru" href="http://example.com/o-kompanii/" />
<link rel="alternate" hreflang="en-us" href="http://example.com/company/about/" />
<link rel="alternate" hreflang="tr-tr" href="http://example.com/firma-hakkinda" />