Что это
Hreflang — HTML-атрибут ссылки, который сообщает поисковым системам, для какого языка и региона предназначена конкретная страница, а также указывает на альтернативные версии этой же страницы на других языках. Реализуется тремя способами: через тег <link rel="alternate" hreflang="..."> в <head>, через HTTP-заголовок Link: или через XML-карту сайта. Google читает все три варианта; Яндекс официально поддерживает только HTML-реализацию и sitemap.
---
Почему это важно для SEO
Без hreflang поисковик сам угадывает, какую версию страницы показывать пользователю. На практике это означает: русскоязычный пользователь из Казахстана видит украинскую версию, а немец получает английскую. Google при этом может пессимизировать страницу за «дублированный контент», поскольку не понимает, что /ru/, /kz/ и /de/ — это разные целевые версии одного материала, а не копии.
По данным Ahrefs, у сайтов с некорректным hreflang вероятность попадания нерелевантной страницы в топ-10 для локального запроса вырастает примерно на 30–40%. Для Яндекса ставки ещё выше: алгоритм геозависимого ранжирования учитывает регион сервера, геотаргетинг в Я.Вебмастере И языковые сигналы — hreflang помогает им не конфликтовать между собой. Если у вас есть отдельная версия для России и Казахстана, правильно расставленные теги не дадут им «каннибализировать» друг друга в выдаче.
---
Как проверить вручную
- Исходный код страницы. Откройте
view-source:https://example.com/ru/и найдите блок<head>. Должны быть строки вида:
``html <link rel="alternate" hreflang="ru" href="https://example.com/ru/" /> <link rel="alternate" hreflang="ru-KZ" href="https://example.com/kz/" /> <link rel="alternate" hreflang="x-default" href="https://example.com/" /> `` Если блока нет — hreflang не реализован.
- Screaming Frog. Запустите краулер → вкладка
Hreflang→ проверьте колонкиMissing Return LinksиNon-Reciprocal. Все ошибки в этих колонках означают, что связка не замкнута.
- Google Search Console. Раздел
Страницы→ фильтр по ошибкам hreflang. GSC прямо укажет: «Отсутствует обратный тег», «Неверный код языка», «URL возвращает ошибку».
- Я.Вебмастер. Раздел
Индексирование→Страницы в поиске. Проверьте, что нужные региональные версии проиндексированы и не дублируют друг друга по заголовку/description в отчёте.
---
Как исправить
Базовая структура тега (вставляется на каждую языковую версию страницы, включая саму себя):
<head>
<link rel="alternate" hreflang="ru" href="https://example.com/ru/" />
<link rel="alternate" hreflang="ru-KZ" href="https://example.com/kz/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
</head>Правило взаимности: если страница A ссылается на B через hreflang, страница B обязана ссылаться обратно на A. Без этого Google игнорирует весь кластер.
WordPress (плагин Polylang или WPML). Плагины генерируют теги автоматически. Убедитесь, что в настройках включена опция «Add hreflang to head» и все переводы страниц связаны между собой в интерфейсе.
Tilda. Встроенной поддержки нет. Добавьте код вручную через блок T123 (HTML-вставка в <head>) или через настройки проекта → Метатеги → Код для head.
1C-Bitrix. В шаблоне сайта откройте /bitrix/templates/<имя_шаблона>/header.php и добавьте PHP-логику, которая динамически выводит теги в зависимости от текущего языка LANGUAGE_ID:
<?php if (LANGUAGE_ID === 'ru'): ?>
<link rel="alternate" hreflang="ru" href="https://example.com/ru<?= $APPLICATION->GetCurPage() ?>" />
<?php endif; ?>Webflow. Используйте раздел Page Settings → Custom Code → Head Code для каждой отдельной локали проекта. При большом числе страниц удобнее генерировать теги через XML sitemap с атрибутом xhtml:link.
---
Типичные ошибки
- Нет тега `x-default`. Без него поисковик не знает, какую версию показывать пользователям без чёткой геопривязки (например, русскоязычным из Германии).
- Неверные коды языка. Используйте ISO 639-1 для языка (
ru,en,de) и ISO 3166-1 Alpha-2 для региона (RU,KZ,DE). Ошибкаhreflang="rus"илиhreflang="RU"— тег не будет прочитан. - Несимметричные ссылки. Страница A указывает на B, но B не указывает на A. Google аннулирует весь кластер hreflang.
- Hreflang на закрытые страницы. Если URL в теге отдаёт 301, 404 или закрыт в robots.txt — сигнал игнорируется. Проверяйте через Screaming Frog колонку
Status Codeдля hreflang-URL. - Смешение протоколов. Часть ссылок
http://, частьhttps://. Всегда используйте канонический протокол сайта.
---
Влияние на разные типы сайтов
Интернет-магазины страдают от проблем с hreflang сильнее всего: карточки товаров дублируются в десятках тысяч экземпляров для разных регионов. Яндекс может склеить /ru/product/123 и /kz/product/123 в один кластер, показывая в казахстанской выдаче русскую версию с неверной валютой и доставкой. Корректный hreflang в sitemap (не в <head>, чтобы не раздувать HTML) решает проблему масштабируемо.
Контентные сайты и SaaS обычно имеют меньше страниц, но выше цену ошибки для стратегических лендингов. Для SaaS особенно критична версия x-default на главной и ценовой странице: именно она попадает в Google AI Overviews и Я.Нейро при информационных запросах без явной геопривязки. Лендингам с одной страницей hreflang нужен, только если существуют реальные языковые копии — иначе достаточно корректного lang="" в теге <html>.