Разметка локализованных страниц
Сайты, которые предоставляют версии документов на разных языках, могут сообщить об этих версиях Яндексу с помощью атрибута
hreflang
. Используя значение атрибута, робот Яндекса может определить, какую именно версию страницы лучше показать в результатах поиска
конкретному пользователю.
Атрибут hreflang
рекомендуется использовать в следующих случаях:
-
Версии страницы отличаются только языком шаблона. Это справедливо, например, для сайтов с пользовательским контентом. Текст поста на форуме или в блоге обычно остается тем же, а элементы навигации, шапка и подвал могут быть показаны на разных языках.
-
Версии страницы — на одном языке, но отличаются в мелких деталях. Например, слегка различающиеся английские тексты могут быть адресованы пользователям из США, Ирландии и Австралии.
-
Каждая версия страницы — полный и точный перевод страницы на основном языке сайта.
Разметка локализованных страниц
Каждая версия страницы должна содержать информацию о всех ее альтернативных версиях.
Версии страницы могут быть расположены в разных поддоменах и доменах. Например, страница сайта ru.example.ru
продублирована для американцев на английском (en.example.ru
) и турков на турецком (example.com.tr
). На каждой из этих страниц должно быть три соответствующих элемента <link>
с атрибутами локализации:
<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/" />
В значении атрибута hreflang
обязательно нужно указать язык страницы и при необходимости можно задать языковой регион. Атрибут в приведенном примере интерпретируется
следующим образом:
-
«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" />
Язык и регион следует указывать согласно кодам, которые стандартизированы ISO:
-
Код языка выбирайте из списка кодов ISO 639-1.
-
Код региона выбирайте из списка кодов ISO 3166-1 Alpha-2.
Помимо элемента <link>
для обозначения языка и региона страницы можно использовать заголовок Link в HTTP-ответе, например:
Link: <http://ru-ru.example.com/>; rel="alternate"; hreflang="ru-ru"
Страницы с автоматическим определением языка
Если на сайте есть страницы, язык которых определяется настройками пользователя (Accept-Language, IP), или содержащие селектор
для выбора языка, их следует указать вместе с жестко локализованными документами. Допустим, главная страница сайта example.ru
из примера выше меняет язык в зависимости от 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" />