Hreflang — HTML-атрибут, который сообщает поисковику, для какой языковой аудитории предназначена страница. Особенно актуален для сайтов, работающих одновременно в России, Казахстане, Украине или других странах СНГ с несколькими языками.
Когда нужен hreflang
Hreflang необходим если:
- Сайт имеет версии на нескольких языках (русский + казахский, русский + английский)
- Сайт имеет региональные версии для разных стран с похожим контентом (ru-RU, ru-KZ, ru-UA)
- Вы хотите, чтобы казахстанец видел казахскую версию, а россиянин — русскую
Hreflang не нужен для мультирегионального продвижения в рамках одной страны (для продвижения в Москве и Екатеринбурге hreflang не используется).
Синтаксис hreflang
Три способа реализации:
1. В теге <link> в <head>
<head>
<link rel="alternate" hreflang="ru-RU" href="https://example.ru/ru/" />
<link rel="alternate" hreflang="ru-KZ" href="https://example.kz/ru/" />
<link rel="alternate" hreflang="kk" href="https://example.kz/kk/" />
<link rel="alternate" hreflang="x-default" href="https://example.ru/" />
</head>
2. В HTTP-заголовках (для PDF и не-HTML страниц)
Link: <https://example.ru/page/>; rel="alternate"; hreflang="ru"
3. В Sitemap.xml
<url>
<loc>https://example.ru/page/</loc>
<xhtml:link rel="alternate" hreflang="ru-RU" href="https://example.ru/page/"/>
<xhtml:link rel="alternate" hreflang="ru-KZ" href="https://example.kz/page/"/>
</url>
Коды языков и регионов
Используются стандарт ISO 639-1 (язык) и ISO 3166-1 alpha-2 (страна):
| Код | Значение |
|---|---|
ru |
Русский (любая страна) |
ru-RU |
Русский для России |
ru-KZ |
Русский для Казахстана |
ru-UA |
Русский для Украины |
kk |
Казахский |
uk |
Украинский |
x-default |
Версия по умолчанию (когда нет подходящей) |
Требования к правильной реализации
Взаимное указание
Если страница А указывает на страницу Б через hreflang, страница Б должна указывать обратно на страницу А. Одностороннее указание игнорируется.
Самоссылка обязательна
Каждая страница должна включать ссылку на саму себя:
<!-- На русской странице example.ru/page/ -->
<link rel="alternate" hreflang="ru-RU" href="https://example.ru/page/" /> <!-- себя -->
<link rel="alternate" hreflang="ru-KZ" href="https://example.kz/page/" /> <!-- казахстан -->
x-default
Всегда указывайте hreflang="x-default" — это страница для пользователей, чей язык не совпадает ни с одной из версий:
<link rel="alternate" hreflang="x-default" href="https://example.ru/" />
Типичные ошибки hreflang
Ошибка 1: Нет взаимных ссылок Страница A указывает на B, но B не указывает на A → Яндекс игнорирует.
Ошибка 2: Ссылка на страницу с redirect hreflang должен указывать на финальный URL, не на промежуточные редиректы.
Ошибка 3: Ссылка на noindex-страницу Если целевая страница закрыта от индексации, hreflang не работает.
Ошибка 4: Одинаковый контент для разных кодов
Если ru-RU и ru-KZ ведут на одинаковые страницы — это дубли.
Как Яндекс обрабатывает hreflang
Яндекс поддерживает hreflang, но менее строго, чем Google. При поиске из России Яндекс предпочтёт страницы с кодом ru-RU или просто ru.
Яндекс.Вебмастер показывает ошибки hreflang в разделе «Диагностика».
Когда проще обойтись без hreflang
Если у вас сайт только для России на русском языке — hreflang не нужен вообще. Его польза ощутима только при реальном присутствии в нескольких странах.
Поведенческие факторы и мультиязычный сайт
Пользователи из Казахстана, попав на русскоязычную версию для России, могут быстро уйти (если нет специфики для их страны). Правильный hreflang снижает показатель отказов и улучшает поведенческие показатели. ClickFlow помогает улучшить поведенческие сигналы для конкретных языковых версий.
Чек-лист hreflang
- [ ] Hreflang реализован на всех языковых версиях
- [ ] Каждая страница включает самоссылку
- [ ] Все ссылки взаимные (A→B и B→A)
- [ ] Указан
x-default - [ ] hreflang ссылается на финальные URL (без редиректов)
- [ ] Целевые страницы не закрыты noindex
- [ ] Ошибки в Яндекс.Вебмастере устранены