hreflang: языковые версии сайта в поиске
Если у сайта есть версии на разных языках или для разных стран, поисковику нужно подсказать, какую из них показывать какому пользователю. Иначе человек из Казахстана может попасть на русскую версию, а из Германии — на английскую вместо немецкой. Для этого существует атрибут hreflang. Разберём, что это такое, как правильно размечать языковые версии, какие есть правила и почему hreflang важен для Google, но не используется Яндексом.
Что такое hreflang
hreflang — это атрибут, который указывает поисковику язык и регион конкретной версии страницы и связывает между собой все её языковые варианты. Проще говоря, он говорит: «вот эта страница — на русском для России, а вот её брат-близнец — на английском, а вот — на немецком». Благодаря этому поисковик показывает пользователю версию на его языке и не считает похожие переводы дублями.
Как выглядит разметка
Для каждой языковой версии перечисляют все версии, включая её саму. Пример для страницы с русской, английской и немецкой версиями:
Коды берут из стандартов: язык по ISO 639‑1 (ru, en, de), при необходимости с регионом по ISO 3166‑1 (en-US, en-GB, ru-KZ). А x-default — это запасная версия для всех, кому не подошёл ни один язык.
Когда нужен hreflang
- Один сайт на нескольких языках — например, русская и английская версии одной страницы.
- Версии для разных стран на одном языке — отдельные варианты для России, Казахстана, Беларуси с разными ценами или контактами.
- Сочетание языка и региона — английский для США и английский для Великобритании.
Если сайт на одном языке и для одной страны, hreflang не нужен.
Главные правила
Где размещать hreflang
Есть три способа, выберите один и не смешивайте для одной страницы:
- В
<head>тегами<link rel="alternate" hreflang="..."></code>— самый частый способ. - В sitemap.xml — удобно для крупных сайтов, чтобы не раздувать
<head>каждой страницы. - В HTTP-заголовке — для не-HTML файлов (например, PDF).
Яндекс и hreflang
Частые ошибки
- Нет взаимных ссылок. Одна версия ссылается на другую, а та в ответ — нет. Такая разметка не работает.
- Неверные коды. "en-uk" вместо "en-GB", "ua" вместо "uk" — поисковик не понимает и игнорирует.
- Относительные адреса. В hreflang нужны абсолютные URL с протоколом.
- Ссылка на закрытые или редиректящие страницы. Все указанные версии должны открываться и быть доступны для индексации.
- Забыли x-default. Не критично, но желательно — иначе нет запасного варианта.
Коротко
hreflang — атрибут, который указывает язык и регион версии страницы и связывает все её языковые варианты, чтобы поисковик показывал пользователю нужную версию и не считал переводы дублями. Нужен сайтам с несколькими языками или версиями для разных стран. Главные правила: взаимность ссылок, ссылка на себя, x-default и только валидные коды языка/региона. Размещают hreflang в head, sitemap или HTTP-заголовке. Важная деталь: hreflang использует Google, а Яндекс определяет регион через Вебмастер и доменную зону. Настраивайте оба механизма, если работаете и в Google, и в Яндексе.