Как устроен hreflang: синтаксис и место в коде
Hreflang — это HTML-элемент, который помещают в раздел <head> страницы. Выглядит вот так:
<link rel="alternate" hreflang="en" href="https://example.com/page">
<link rel="alternate" hreflang="de" href="https://example.de/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">
Для проверки важны три атрибута тега: rel, hreflang и href. rel="alternate" сообщает браузеру и поисковой системе, что это не основная версия страницы, а её альтернатива. Атрибут hreflang содержит код языка или язык плюс регион. Например, hreflang="en-US" означает англоязычную версию для США, а hreflang="fr" — просто французский язык, вне зависимости от региона.
В атрибуте href указывают полный URL страницы на нужном языке. Это важно: URL должны быть абсолютные, с протоколом https. Если вы напишете относительный путь, Google может не распознать ссылку.
Языковые коды и региональные коды в альтернативных версиях
Hreflang использует два стандарта: ISO 639-1 для языков и ISO 3166-1 для регионов.
Коды языка ISO 639-1 — двухбуквенные. Самые распространённые:
en = английский, de = немецкий, fr = французский, ru = русский, es = испанский, it = итальянский, ja = японский, zh = китайский.
Коды регионов ISO 3166-1 — тоже двухбуквенные, обозначают страны:
US = США, GB = Великобритания, DE = Германия, RU = Россия, ES = Испания, IT = Италия, JP = Япония, CN = Китай.
Когда вы комбинируете язык и регион, получается код вроде en-US или de-CH. Google проверяет и то, и другое — может работать как с конкретным регионом, так и с общей языковой версией.
x-default: версия по умолчанию
Hreflang x-default выполняет роль catch-all. Это версия для пользователя, язык которого не совпадает с вашим списком. Например, у вас есть версии на английском и немецком:
<link rel="alternate" hreflang="en" href="https://example.com/page">
<link rel="alternate" hreflang="de" href="https://example.de/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">
Здесь x-default указывает на главную англоязычную версию — fallback для пользователя из Японии или любой другой страны, для которой нет специальной версии.
Где размещаются теги hreflang в коде
Теги hreflang обычно находятся в трёх местах.
В разделе head страницы. Это самый распространённый способ. Вы добавляете link-теги прямо в HTML:
<link rel="alternate" hreflang="ru" href="https://example.ru/page">
<link rel="alternate" hreflang="en" href="https://example.com/page">В HTTP-заголовках. Если вы не можете редактировать HTML, можно отправить hreflang через заголовок сервера:
Link: <https://example.ru/page>; rel="alternate"; hreflang="ru"
В sitemap.xml. Для большого количества страниц удобнее добавлять информацию через карты сайта:
<url>
<loc>https://example.com/page</loc>
<xhtml:link rel="alternate" hreflang="ru" href="https://example.ru/page"></xhtml:link>
<xhtml:link rel="alternate" hreflang="de" href="https://example.de/page"></xhtml:link>
</url>
Google проверяет все три источника. Если тег находится сразу в нескольких местах, это может создать конфликты и ошибки.
Проверка на практике
Интернет-магазин мебели работал в пяти странах через региональные версии сайта. У каждой версии сайта был свой домен и языковые версии страницы на местном языке.
В начале 2023 года разработчик добавил ссылки hreflang неправильно. Вместо того чтобы каждой версии указать на себя и на остальные языковые варианты, он случайно указал все региональные версии на главную англоязычную версию сайта. Результат был предсказуем:
Google перестал правильно показывать испанскую версию в испанском поиске — вместо этого система выдавала английскую версию. Кликабельность и позиции упали вместе.
Проверка исходного HTML выявила ошибки во взаимных ссылках языковых версий. После исправления каждой версии страницы были восстановлены правильные link с корректным языком и регионом. Трафик вернулся к норме за месяц.
Как Google использует hreflang для ранжирования и трафика
Поисковая система применяет атрибут hreflang, чтобы понять: есть ли у страницы версии на других языках или регионах. Это помогает Google несколькими способами.
Показывать пользователю правильную версию. Если англичанин ищет информацию, Google покажет ему англоязычную версию, а не русскую. Без корректных тегов система путается и может показать неправильный язык версии.
Помогать сопоставлять соответствующие языковые версии. Hreflang не объединяет ссылочный вес всех версий в один поток.
Улучшать качество результатов в поиске. Когда hreflang работает, каждая версия получает клики от пользователей на нужном языке и в нужной стране. Если он сломан, вы теряете потенциальный трафик из разных стран.
Когда нужна регулярная проверка hreflang
Проверка тегов hreflang требуется в несколько критических моментов:
После миграции на новый домен. Если вы переехали с example.ru на example.com, все старые ссылки в тегах указывают на старые адреса. Нужно обновить каждую версию страницы и убедиться, что версии ссылаются друг на друга корректно.
После изменения структуры URL. Если раньше была /en/page, а теперь /page-en, все ссылки в hreflang станут мертвыми. Google проверяет, работают ли URL или нет.
При добавлении новой языковой или региональной версии. Когда вы запускаете новый язык или версию для новой страны, нужно добавить тег на все существующие версии этой страницы и убедиться, что они взаимно ссылаются.
После изменений повторяйте обход сайта и проверяйте индексирование ключевых URL в Search Console.
Когда трафик из конкретной страны падает без видимой причины. Это часто бывает признаком проблемы с тегами hreflang.
Инструменты для проверки тегов hreflang
Для проверки hreflang сравните коды языка, абсолютные URL и взаимные ссылки в исходном HTML каждой версии.
Screaming Frog. Мощный инструмент для SEO аудита. Он может сканировать весь сайт и проверить все теги hreflang сразу. Вы увидите, какие версии страницы установлены правильно, где есть ошибки и даже какие взаимные ссылки между версиями установлены неправильно. Есть как платный, так и бесплатный вариант для небольших сайтов.
Вручную в исходном коде. Самый простой способ для одной-двух страниц. Откройте исходный код (Ctrl+U), найдите раздел <head> и посмотрите, какие теги hreflang там находятся. Проверьте, все ли ссылки ведут на правильные версии.
Это не одна установка, а постоянная часть технического аудита
Теги hreflang — это не настройка, которую вы делаете один раз и забываете. Это часть постоянного технического seo-аудита многоязычного сайта.
Разработчик добавит новый блог и забудет добавить ссылки на все языковые версии. Маркетолог запустит кампанию в новой стране и не обновит sitemap. Вы получите технический долг, который медленно уничтожает трафик из разных стран.
Откройте исходный HTML или запустите краулер: проверьте коды, абсолютные URL, самоссылки и взаимность. Search Console используйте отдельно для проверки индексации конкретных URL.
