Что такое hreflang
hreflang — атрибут HTML/HTTP, который сообщает поисковикам, на каком языке и для какого региона написана страница.
Если у вас есть несколько языковых или региональных версий сайта (русская / казахская / украинская / английская), без hreflang Google и Яндекс могут:
- Показать русскую версию казахскому пользователю
- Считать языковые версии дублями друг друга
- Не показать пользователю самую релевантную версию
С hreflang каждая версия знает о других и поисковик ставит правильную.
Как hreflang выглядит
Вариант 1: HTML в <head>
<link rel="alternate" hreflang="ru" href="https://example.com/" />
<link rel="alternate" hreflang="ru-RU" href="https://example.com/ru-ru/" />
<link rel="alternate" hreflang="ru-KZ" href="https://example.com/ru-kz/" />
<link rel="alternate" hreflang="kk" href="https://example.com/kk/" />
<link rel="alternate" hreflang="uk" href="https://example.com/uk/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />Вариант 2: HTTP-заголовок (для PDF и не-HTML)
Link: <https://example.com/>; rel="alternate"; hreflang="ru"
Link: <https://example.com/kk/>; rel="alternate"; hreflang="kk"Вариант 3: В sitemap.xml
<url>
<loc>https://example.com/</loc>
<xhtml:link rel="alternate" hreflang="ru" href="https://example.com/" />
<xhtml:link rel="alternate" hreflang="kk" href="https://example.com/kk/" />
</url>Правила синтаксиса
Языковые коды (ISO 639-1)
- ru — русский
- kk — казахский
- uk — украинский
- be — белорусский
- uz — узбекский
- en — английский
Региональные коды (ISO 3166-1 alpha-2)
- RU — Россия
- KZ — Казахстан
- UA — Украина
- BY — Беларусь
- UZ — Узбекистан
Комбинации
- ru-RU — русский язык в России
- ru-KZ — русский язык в Казахстане (важно — разный контент!)
- kk-KZ — казахский язык в Казахстане
Специальный код
- x-default — версия по умолчанию для всех, кто не подходит под другие правила
Типичные ошибки
1. Несимметричные ссылки
Если страница A ссылается на B, B обязательно должна ссылаться на A. Иначе Google считает разметку невалидной и игнорирует.
Плохо:
- example.com/: ссылка на /kk/
- example.com/kk/: нет ссылки обратно на /
Хорошо:
- example.com/: ссылка на /kk/
- example.com/kk/: ссылка обратно на /
2. Неправильные коды
- ❌
hreflang="russian"— это не код - ❌
hreflang="ru-russia"— региона должен быть в alpha-2 - ✅
hreflang="ru-RU"
3. Отсутствие x-default
Без x-default поисковики не знают, какую версию показать пользователям из других стран, которых нет в вашем списке.
Решение: всегда добавлять x-default — обычно это главная или английская версия.
4. hreflang на дубли без перевода
Если у вас русская и казахская версии одинаковые (просто два URL с тем же контентом) — hreflang не нужен, canonical между ними обязателен.
hreflang нужен только для версий с разным языком или регионом.
5. Указание hreflang на 404 страницы
Если одна из версий удалена или возвращает 404, в hreflang её обязательно убрать. Иначе разметка считается невалидной.
Когда hreflang НЕ нужен
- У вас один сайт на одном языке для одной страны
- Языковые версии — это canonical-копии без перевода
- Вы используете поддомены для регионов (msk.example.ru, spb.example.ru) — для них работают другие механизмы (Я.Вебмастер регионы, Schema.org LocalBusiness)
Сценарии для рунета и СНГ
Сценарий 1: Сайт на русском для РФ
hreflang не нужен. Достаточно региональности в Я.Вебмастере.
Сценарий 2: Сайт на русском для РФ + Казахстан + Беларусь
Контент одинаковый на всех версиях — hreflang не нужен, нужен canonical. Регионы укажите в Я.Вебмастере.
Сценарий 3: Сайт на русском + казахская версия (разный контент)
<link rel="alternate" hreflang="ru" href="https://example.com/" />
<link rel="alternate" hreflang="kk" href="https://example.com/kk/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />Сценарий 4: Международный сайт (русский, английский, казахский)
<link rel="alternate" hreflang="ru" href="https://example.com/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="kk" href="https://example.com/kk/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />Как проверить
1. Через Google Search Console
«Поисковый трафик → Таргетинг по странам и языкам → Hreflang» Покажет ошибки в разметке.
2. Через Я.Вебмастер
«Инструменты → Проверка hreflang»
3. Сторонние сервисы
- merkle.com/hreflang-tag-tester
- screaming-frog.co.uk (десктопный SEO-краулер)
Связь с GEO
Hreflang не влияет напрямую на GEO, но косвенно:
- ИИ-модели учитывают язык пользователя при ответах
- Правильная разметка помогает моделям показать релевантную версию вашего сайта
- Schema.Country и Schema.inLanguage дополняют hreflang
Чек-лист
- [ ] Определить, нужен ли hreflang (см. сценарии выше)
- [ ] Внедрить hreflang во всех версиях
- [ ] Все ссылки симметричны
- [ ] Указаны правильные коды языков и регионов
- [ ] Добавлен x-default
- [ ] Проверено через GSC / Я.Вебмастер
- [ ] Регулярная проверка после обновлений сайта
Итог
Hreflang — техническая разметка, обязательная только для реально мульти-региональных сайтов с переводами. Для одной страны — не нужна. Если внедрена с ошибками — может вредить больше, чем помогать.