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 и canonical: частая путаница
Самая болезненная ошибка на многоязычных сайтах — конфликт hreflang и canonical. Логика должна быть такой: каждая языковая версия канонична сама на себя и при этом перечисляет остальные через hreflang. Беда случается, когда canonical всех версий указывает на одну (например, на английскую): тогда вы сами говорите поиску «главная только английская», остальные переводы схлопываются, и hreflang перестаёт работать. Запомните: переводы — это не дубли, их связывают hreflang'ом, а не сводят каноником. canonical отвечает за дубли внутри одного языка, hreflang — за связь между языками.
Структура многоязычного сайта: домен, папка или поддомен
Прежде чем размечать hreflang, нужно выбрать саму схему размещения версий. Вариантов три, и у каждого свой смысл:
Для большинства проектов оптимальны папки: один домен, общий траст, понятная структура. ccTLD оправданы, когда вы всерьёз заходите на отдельный национальный рынок.
Автоперевод и редирект по гео — осторожно
Два соблазнительных, но вредных приёма на многоязычных сайтах:
- Автоматический редирект по IP/языку браузера. Кажется удобным — отправлять пользователя сразу на «его» версию. Но робот Google обходит сайт в основном из США: если его принудительно редиректить, он увидит только одну версию, а остальные не проиндексирует. Лучше предлагать выбор языка баннером, а не редиректить жёстко.
- Машинный перевод без вычитки. Десяток версий, сделанных автопереводчиком, — это тонкий, часто корявый контент, который не приносит трафика и может тянуть сайт вниз. Лучше качественно перевести нужные языки, чем формально «накидать» десять.
Как отладить hreflang
hreflang легко сломать незаметно, поэтому его проверяют. Базовый способ — открыть исходный код каждой версии и убедиться, что набор ссылок одинаковый, взаимный и с абсолютными URL. Для масштаба используют валидаторы hreflang и краулеры, которые показывают разрывы взаимности и неверные коды. И помните про задержку: после внедрения hreflang Google нужно время переобойти все версии, прежде чем картина в выдаче изменится, — не ждите эффекта на следующий день.
Коротко
hreflang — атрибут, который указывает язык и регион версии страницы и связывает все её языковые варианты, чтобы поисковик показывал пользователю нужную версию и не считал переводы дублями. Нужен сайтам с несколькими языками или версиями для разных стран. Главные правила: взаимность ссылок, ссылка на себя, x-default и только валидные коды языка/региона. Размещают hreflang в head, sitemap или HTTP-заголовке. Важная деталь: hreflang использует Google, а Яндекс определяет регион через Вебмастер и доменную зону. Настраивайте оба механизма, если работаете и в Google, и в Яндексе.