Hreflang

Указатель языковых версий страницы

Подсказка поисковику, какая страница для какого языка/региона.

Hreflang — атрибут тега <link rel="alternate">, который связывает между собой языковые и региональные версии одной страницы. Поисковик показывает каждому пользователю правильную версию: русскому — русскую, англоязычному — английскую, испанцу — испанскую.

Должны быть взаимные ссылки: каждая версия указывает на все остальные плюс на саму себя (self-reference). Иначе теги не учитываются. Обязательно использовать значение x-default для страницы по умолчанию (если пользователь не подходит ни под одну явную локаль).

<head>
<!-- Каждая языковая версия ссылается на все остальные -->
<link rel="alternate" hreflang="ru" href="https://pawetta.com/">
<link rel="alternate" hreflang="en" href="https://pawetta.com/en/">
<link rel="alternate" hreflang="x-default" href="https://pawetta.com/">
hreflang: указывает поисковику, для какого языка/региона предназначена страница
Пример из практики

<link rel="alternate" hreflang="en" href="https://site.com/en/"> — на русской версии указывает на английскую.

Hreflang — это сигнал прежде всего для Google: он использует атрибут, чтобы подобрать языковую версию в выдаче и не считать переводы дублями. Яндекс hreflang практически игнорирует и определяет регион через географическую привязку в Вебмастере и домен/папку, поэтому для рунета связку «папка /ru/ + регион в Вебмастере» приходится настраивать отдельно. Значение в атрибуте — это язык по ISO 639-1 и опционально регион по ISO 3166-1 (en, en-GB, ru-RU); частая ошибка — писать hreflang="uk" в значении «Украина», хотя uk это украинский язык, а Великобритания кодируется как en-GB.

Hreflang не отменяет canonical: каждая языковая версия должна указывать canonical на саму себя, иначе Google склеит варианты и hreflang перестанет работать. На больших мультиязычных проектах теги выносят не в , а в отдельный sitemap.xml с разметкой xhtml:link — это снимает раздувание HTML и упрощает поддержку. Проверять корректность удобнее всего отчётом в Google Search Console (International Targeting) и валидатором technicalseo.com: они ловят несимметричные ссылки и отсутствие self-reference.

Сигнал
Кому какая версия

Атрибут говорит Google, какую языковую копию показать пользователю по его языку и стране.

Риск
Несимметричные ссылки

Если версия A ссылается на B, а B не ссылается обратно на A, теги игнорируются целиком.

Что делать
Self + x-default

Каждая страница ссылается на себя и на остальные, плюс x-default для непокрытых локалей.

Hreflang связывает версии страницы в граф, где каждый узел знает обо всех остальных.

Пошаговая настройка с тремя способами, генератором тегов, разбором x-default и чек-листом — в подробном гайде про атрибут hreflang.

Частые вопросы

Учитывает ли Яндекс hreflang?

Практически нет. Hreflang — сигнал прежде всего для Google, который по нему подбирает языковую версию и не считает переводы дублями. Яндекс определяет регион через географическую привязку в Вебмастере и домен/папку, поэтому для рунета отдельно настраивают связку «папка /ru/ + регион в Вебмастере».

Почему hreflang не срабатывает?

Чаще всего из-за несимметричных ссылок: если версия A ссылается на B, а B не ссылается обратно, теги игнорируются целиком. Нужны взаимные ссылки плюс self-reference на саму себя и значение x-default. И canonical каждой версии должен указывать на себя, иначе Google склеит варианты и hreflang перестанет работать.

Как в hreflang обозначить английскую версию для Британии?

Значением en-GB. В атрибут идёт язык по ISO 639-1 и опционально регион по ISO 3166-1: en, en-GB, ru-RU. Частая ошибка — поставить uk в значении «Украина»: uk это код украинского языка; Великобритания обозначается кодом GB.