hreflang — атрибут, который сообщает поисковику: «эта страница есть ещё на таких-то языках, вот их адреса». Без него разноязычные версии выглядят как дубли, конкурирующие между собой, и в выдачу попадает случайная.
Если сайт одноязычный, hreflang не нужен — это не недостаток, а отсутствие задачи.
Как размечать
В <head> каждой версии перечисляются все версии, включая её саму:
<link rel="alternate" hreflang="ru" href="https://example.ru/">
<link rel="alternate" hreflang="en" href="https://example.com/">
<link rel="alternate" hreflang="ru-KZ" href="https://example.kz/">
<link rel="alternate" hreflang="x-default" href="https://example.com/">
- Код языка — по стандарту ISO 639-1:
ru,en,de. Он же должен стоять в атрибуте lang каждой версии. - Регион добавляется через дефис, кодом страны ISO 3166-1:
ru-KZ— русский язык для Казахстана,en-GB— английский для Британии. Регион без языка (hreflang="KZ") недопустим. - x-default — версия по умолчанию, для всех, кому не подошла ни одна другая. Обычно это международная или языковая-выбиралка.
Три правила, без которых не работает
- Взаимность. Если русская страница ссылается на английскую, английская обязана ссылаться на русскую. Односторонняя разметка игнорируется целиком.
- Полный набор. На каждой версии перечислены все версии, включая её саму.
- Согласие с canonical. Канонический адрес каждой версии указывает на неё же, а не на версию другого языка. Иначе вы одновременно говорите «это отдельная страница» и «это копия вон той».
Альтернативные способы
Разметку можно передавать не в HTML, а в карте сайта или HTTP-заголовком — это удобно для PDF и других нетекстовых файлов. Способ не важен, важно соблюдение тех же трёх правил.
Частые ошибки
- Указан только язык страны, а не язык контента:
hreflang="ru-RU"на английской версии. - Относительные адреса вместо полных. Нужен адрес целиком, с протоколом и доменом.
- Ссылки на страницы, отдающие редирект или 404.
- Разметка есть, но версии на самом деле почти идентичны — например, отличаются только валютой. Тогда проще оставить одну страницу.
Как проверить
- Пункт аудита «hreflang (языковые версии)» показывает, сколько версий указано на главной.
- Яндекс Вебмастер и Google Search Console показывают ошибки взаимности в отчётах по международному таргетингу.
- Быстрая ручная проверка: откройте исходный код одной версии, перейдите по каждому адресу из разметки и убедитесь, что там перечислен тот же набор.