Hreflang
Коротко
Указание на языковые и региональные версии одной страницы, по которому поисковик выбирает, какую из них показать пользователю.
Что такое «Hreflang»
Проблема, которую решает hreflang, возникает у любого многоязычного сайта. У страницы есть русская, английская и казахская версии, и поисковик должен понять, что это не три разных документа и не дубли, а варианты одного. Без подсказки он может показать англоязычному пользователю русскую версию или посчитать почти одинаковые страницы для России и Беларуси копиями. Hreflang поддерживают Google и Яндекс.
Пример разметки
В <head> каждой из версий выводится один и тот же полный набор ссылок, включая ссылку на саму себя:
<link rel="alternate" hreflang="ru" href="https://example.com/ru/dostavka/">
<link rel="alternate" hreflang="en" href="https://example.com/en/delivery/">
<link rel="alternate" hreflang="kk-KZ" href="https://example.com/kz/zhetkizu/">
<link rel="alternate" hreflang="x-default" href="https://example.com/en/delivery/">
Код языка — по ISO 639-1, необязательный регион — по ISO 3166-1. x-default указывает версию для всех остальных случаев. Тот же набор можно передать HTTP-заголовком Link (удобно для PDF) или в XML-карте сайта.
Типичные ошибки
- Нет обратных ссылок: русская версия указывает на английскую, а английская на русскую — нет. Такие связи поисковик игнорирует.
- Неверные коды:
en-UKвместоen-GB,uaвместоukдля украинского. - Канонический тег всех версий указывает на одну языковую версию. Тогда остальные исключаются из индекса, и hreflang теряет смысл. Каждая версия должна быть канонической сама для себя.
- Ссылки ведут на адреса с редиректом, 404 или закрытые noindex.
- Hreflang ставят на машинный перевод без проверки — разметка технически верна, но версия бесполезна для читателя.
Как настроить на WordPress и Битриксе
В WordPress многоязычные плагины вроде Polylang и WPML выводят hreflang автоматически, если переводы связаны между собой. В 1С-Битриксе языковые версии обычно делают отдельными сайтами в одной установке, а набор ссылок выводят в шаблоне сайта по таблице соответствия страниц. Проверку удобно делать краулером, который собирает все hreflang и ищет связи без ответа. Сами переводы и адаптация — тема локализации; hreflang лишь сообщает поисковику, что переводы есть.

