- Hreflang сообщает поисковику, что несколько страниц это одна и та же страница на разных языках или для разных стран. Он нужен, когда у сайта есть хотя бы две языковые или региональные версии.
- Три правила, на которых всё держится: у каждой версии свой адрес, каждая страница перечисляет все версии и саму себя, ссылки взаимные. Без обратной ссылки Google, по его документации, игнорирует разметку.
- Для Беларуси коды такие: русский язык для белорусов
ru-BY, белорусский языкbe, английскийen. Кодbyязыком не является: это код страны (Беларусь), а белорусский язык обозначаетсяbe. Это следствие стандартов ISO; Google в своём примере показывает ту же логику на другом коде:beкак код страны Бельгии ошибочен, потому что это код белорусского языка. - Яндекс читает hreflang только из
linkвhead: поддержку языковых версий через Sitemap он, по справке, прекратил. Если нужны обе системы, ставьте теги в HTML. - В статье три схемы для RU/BY/EN с кодом, таблица ошибок, способы проверки и чек-лист. Результата в позициях или трафике hreflang не обещает: он помогает показать подходящую версию, а не поднимает сайт.
Что такое hreflang и когда он нужен? Hreflang это атрибут ссылки rel="alternate", который связывает версии одной страницы на разных языках или для разных стран. Он нужен сайту с несколькими такими версиями: так Google и Яндекс понимают, что это не дубли, и могут показать человеку подходящий вариант. Для сайта на одном языке и для одной страны он не нужен.
Автор: Андрей Гусаров, основатель EDUGUSAROV · Обновлено: ноябрь 2026
Выберите свою ситуацию
Содержание
- Когда hreflang нужен, а когда нет
- Адреса версий: папки, поддомены, домены
- Схема RU/BY/EN: три рабочих варианта
- Синтаксис и коды языков и регионов
- Самоссылка, взаимность и полные адреса
- x-default: что это и куда его вести
- HTML, заголовок или sitemap: что выбрать
- Яндекс: что поддерживает и чего нет
- Готовый код для RU/BY/EN
- Неполный перевод: что делать со страницами без пары
- Автоперенаправление по IP и языку браузера
- Типичные ошибки и как их исправить
- Как проверить hreflang
- Hreflang и ИИ-поиск в 2026 году
- Чек-лист перед запуском
- Проверьте себя
- Что дальше
- Частые вопросы
- Источники
Когда hreflang нужен, а когда нет
В документации Google перечислены три ситуации, когда версии страниц стоит указывать явно. Первая: основной текст на одном языке, а переведён только шаблон (меню, подвал), как на форумах. Вторая: один язык с небольшими региональными отличиями, например русский для России и для Беларуси с разными ценами и контактами. Третья: сайт полностью переведён на несколько языков.
Google также пишет, что локализованные версии считаются дублями только тогда, когда основной контент остался непереведённым. То есть русская и английская версии одной статьи это не дубли. Но если на «английской» странице висит русский текст, это именно дубль, и разметка тут не поможет.
| Ситуация | Нужен ли hreflang | Комментарий |
|---|---|---|
| Один язык, одна страна, одна версия сайта | Нет | Размечать нечего |
| Русская и английская версии с полным переводом | Да | Третья ситуация из документации Google |
| Русский для РФ и русский для Беларуси с разными ценами в рублях и белорусских рублях | Да | Версии «ru» и «ru-BY», вторая ситуация |
| Белорусская версия с переводом только меню, текст русский | Да, но с оговорками | Первая ситуация; см. раздел о неполном переводе |
| Автоматический перевод страницы в браузере (расширение или встроенная функция) | Нет | Отдельной страницы с адресом нет, значит, нечего связывать |
| Одна страница, язык меняется через cookie без смены адреса | Сначала нужны отдельные адреса | Google рекомендует отдельные URL вместо cookie и настроек браузера |
Если вы только планируете расширение и ищете общую картину рынков, начните со статьи про стратегии продвижения на международном рынке. Особенности западной выдачи разобраны в материале про SEO в США и Европе. Здесь мы занимаемся одной технической задачей: как правильно записать языковые версии.
Адреса версий: папки, поддомены, домены
Начинать нужно не с тегов, а с адресов. По документации Google, лучше, чтобы у каждой языковой версии был собственный URL, а не переключение языка через cookie или настройки браузера. Если страница меняет язык на том же адресе, поисковик увидит только одну версию, и размечать будет нечего.
| Вариант | Пример | Плюсы по документации Google | Минусы по документации Google |
|---|---|---|---|
| Домен страны | example.by | Чёткий сигнал о стране, расположение сервера не важно, сайты легко разделить | Дороже, больше инфраструктуры, один домен нацелен на одну страну |
| Поддомен | by.example.com | Просто настроить, можно разместить на разных серверах | По адресу не всегда понятно, это язык или страна |
| Подпапка | example.com/by/ | Просто настроить, один хост, мало забот с поддержкой | Одно расположение сервера, сайты труднее разделить |
| Параметр в адресе | example.com/?loc=by | Не рекомендуется | Трудно сегментировать, по адресу не видно страну |
Для большинства сайтов на RU/BY/EN подходит подпапка: один хост, одна панель управления, меньше работы разработчику. Это наша рекомендация, а не требование поисковика. Домен страны (например, зона .by) оправдан, если вы строите отдельный сайт для Беларуси с отдельной командой: по документации Google, национальные домены относятся к сильным сигналам страны.
Схема RU/BY/EN: три рабочих варианта
Запись «RU/BY/EN» понимают по-разному, и это первая причина ошибок. BY это код страны (Беларусь), а не языка. Белорусский язык обозначается кодом be. Поэтому сначала решите, что именно у вас:
| Схема | Версии и коды | Когда подходит |
|---|---|---|
| А. Один русский текст для всех, отдельный блок для Беларуси | ru (общая русская), ru-BY (русский для Беларуси), en | Тексты русские и там, и там, но цены, доставка, контакты и юридические данные в Беларуси свои |
| Б. Три языка | ru, be, en | Есть полноценный перевод на белорусский, региональных отличий в содержании нет |
| В. Полная матрица | ru, ru-BY, be, en | Есть и белорусский перевод, и отдельная русская версия для Беларуси с местными условиями |
Сами схемы А, Б и В это наша рекомендация: в документации Google такого деления нет, там описаны только коды и правила связей.
Логика схемы А взята из примера Google: если у вас есть страницы одного языка для нескольких стран, добавьте общую страницу этого языка для остальных. В примере Google это английский для Ирландии, Канады и Австралии плюс общий en для США, Великобритании и всех прочих. У нас роль общей страницы играет ru, роль региональной ru-BY.
Не делайте версий, у которых нет отличий. Если русский текст для России и Беларуси полностью совпадает, страница ru-BY только создаст работу и дубли. Одной версии ru достаточно.
Как адреса ложатся на схему А (подпапки, домен условный):
| Адрес | Код hreflang | Что на странице |
|---|---|---|
| https://example.com/ | ru | Русский текст, общие условия |
| https://example.com/by/ | ru-BY | Русский текст, цены и контакты для Беларуси |
| https://example.com/en/ | en | Английский перевод |
Синтаксис и коды языков и регионов
Значение атрибута состоит из одного или двух кодов через дефис. Первый это язык по стандарту ISO 639-1, второй (необязательный) регион по ISO 3166-1 Alpha 2. Регистр по документации Google не важен, но регион принято писать заглавными: en-GB. Код страны отдельно, без языка, указывать нельзя.
| Что нужно | Верный код | Типичная ошибка | Почему это ошибка |
|---|---|---|---|
| Белорусский язык | be | by | by это код страны, а не языка (следствие стандартов ISO, не цитата Google). Зеркальный пример есть у Google: для Бельгии be ошибочен, потому что be это белорусский язык |
| Русский для Беларуси | ru-BY | by-by | Сначала язык, потом регион |
| Казахский язык | kk | kz | kz это страна; в списке языков Яндекса казахский указан как kk |
| Русский для Казахстана | ru-KZ | kz | Код региона без языка недействителен |
| Украинский язык | uk | ua | ua это страна; украинский язык в списке Яндекса указан как uk |
| Английский для Великобритании | en-GB | en-UK | Google пишет, что UK в hreflang не действует; регион Великобритании это GB |
| Испанский для Латинской Америки | отдельные страны: es-MX, es-AR | es-419 | Google: коды не из ISO 3166-1 Alpha 2, такие как es-419, не поддерживаются |
Ошибки by и kz встречаются в русскоязычных руководствах: в одном открытом материале агентства мы нашли hreflang="by" и kz-kz. Сверяйте чужие примеры со списком ISO и документацией.
Яндекс принимает те же двухбуквенные языковые коды ISO 639-1. В его списке есть русский (ru), белорусский (be), английский (en), казахский (kk) и украинский (uk). Регионы можно задавать по ISO 3166-1 Alpha-2 или по ISO 3166-2:RU, если нужны регионы России.
Самоссылка, взаимность и полные адреса
Эти четыре правила сформулированы в документации Google для всех способов разметки. Именно их нарушение даёт большинство ошибок.
- Каждая версия перечисляет себя и все остальные. На странице
/by/должна быть строка и про/by/, и про/, и про/en/. Набор строк одинаков на всех страницах группы. - Связь взаимная. Если страница X указывает на Y, Y должна указывать на X. Если пары нет, Google, по документации, может проигнорировать или неверно истолковать теги. Так сделано, чтобы посторонний не мог объявить вашу страницу своей альтернативой.
- Адреса полные, с протоколом:
https://example.com/foo, а не/fooи не//example.com/foo. - Домены могут быть разными. Адреса версий не обязаны находиться на одном домене.
Есть послабление. Если поддерживать полный набор связей для каждого языка трудно, часть языков на отдельных страницах можно пропустить: Google всё равно обработает те страницы, которые указывают друг на друга. Но новые версии нужно обязательно связывать с основной. Например, если сайт изначально русский, новую белорусскую или английскую версию важнее связать с русской, чем с другими новыми версиями между собой.
Версии в наборе должны быть теми адресами, которые вы хотите видеть в поиске: отвечать кодом 200, быть доступными для индексации и не вести canonical на другой язык. Это наша рекомендация, она следует из общей логики индексации. Напомним про связь с каноническим адресом: если на одном языке есть две похожие страницы (например, example.by/ и example.com/by/), Google советует выбрать основную через rel=canonical и дополнить это hreflang. Версии на разных языках друг на друга canonical не ставят.
x-default: что это и куда его вести
Значение x-default служит запасной страницей для тех, чей язык или регион не совпал ни с одной из ваших версий. По документации Google, оно рекомендовано для таких случаев и задумано для страниц выбора языка, хотя технически может указывать на любую страницу. Языковой код при нём не нужен: язык у этой страницы значения не имеет.
Яндекс тоже поддерживает x-default: по справке, он нужен, когда язык определяется автоматически, например по IP-адресу или заголовку Accept-Language, или выбирается пользователем вручную.
Куда вести x-default, решаете вы. Два реалистичных варианта: страница выбора языка (если она у вас есть) или версия, которую вы готовы показывать всем остальным. Для схемы А ниже выбрана английская версия, для схемы Б страница выбора языка. Строка с x-default добавляется на все страницы группы, как и остальные.
HTML, заголовок или sitemap: что выбрать
Google принимает три способа и считает их равноценными: теги link в HTML, HTTP-заголовок Link и XML-карту сайта. Использовать сразу все три можно, но пользы это не даст, а поддерживать три реализации тяжелее одной. Яндекс устроен иначе, поэтому выбор зависит от того, для какого поисковика вы размечаете.
| Способ | Яндекс | Когда удобен | |
|---|---|---|---|
Теги link в head | Поддерживается | Поддерживается | Обычные HTML-страницы; единственный способ, который работает в обеих системах по их справкам |
HTTP-заголовок Link | Поддерживается | В справке Яндекса не упомянут: проверьте сами, прежде чем полагаться | Файлы без HTML, например PDF |
XML-карта сайта (xhtml:link) | Поддерживается | Не поддерживается: по справке, Яндекс больше не использует Sitemap для языковых версий | Крупные сайты, где править шаблон страниц сложнее, чем генерировать карту, но только если вам не нужен Яндекс |
Вывод для русскоязычной аудитории: если важны обе системы, ставьте теги в head. Sitemap годится как единственный способ только для Google. Мы сверили текст справки Яндекса 1 ноября 2026 года: страница об индексации локализованных страниц содержит предупреждение о прекращении поддержки Sitemap и рекомендует разметку на странице. Дата на самой справке не указана, поэтому перед внедрением откройте справку ещё раз.
Две технические оговорки из документации Google для HTML. Теги должны стоять внутри корректного head: если в нём есть ошибка в разметке, браузер может закрыть head раньше времени, и теги окажутся в body. Проверяйте отрисованный код. И не объединяйте hreflang с другими атрибутами в одном теге, например с media.
Яндекс: что поддерживает и чего нет
Всё ниже взято из справки Яндекса «Индексирование локализованных страниц» (прочитана 1 ноября 2026) и справки о переадресациях.
- Версии помечаются тегом
link rel="alternate" hreflang="..."вhead; для каждой версии указываются ссылки на все её альтернативы. - Sitemap для языковых версий не поддерживается.
- Версии могут лежать на разных поддоменах, доменах и в разных директориях: структура сайта на обработку атрибута не влияет.
- Альтернативные ссылки Яндекс советует использовать, если страницы различаются только языком шаблона, если язык один, но отличия небольшие, или если каждая версия это полный и точный перевод.
- Для автоматического определения языка по настройкам пользователя или IP нужен
hreflang="x-default".
Отдельное предупреждение у Яндекса о редиректах по IP. Если региональные или языковые версии это поддомены и посетителей перенаправляют, поддомены могут быть объединены в группу. Робот, как и посетитель, получит перенаправление на какую-то одну версию, и в выдаче может оказаться не та, что вы хотели. Яндекс предлагает два пути: настроить редирект так, чтобы робот получал нужный вам контент, или вместо редиректа сделать переключатель языка, где обе версии отвечают кодом 200.
Привязка сайта к региону в Вебмастере это отдельная настройка, которую мы здесь не разбираем; инструменты кабинета описаны в статье про Яндекс Вебмастер. О том, чем вообще отличается продвижение в двух системах, читайте в материале про особенности Яндекса и его отличия от Google.
Чего мы не можем подтвердить: насколько сильно Яндекс учитывает hreflang при ранжировании и показывает ли версии для региона Беларусь иначе, чем для России. В справке об этом нет конкретики, поэтому не обещайте клиентам эффекта, а проверяйте выдачу на своих запросах.
Готовый код для RU/BY/EN
Домен example.com условный. Подставьте свои адреса и вставьте блок в head каждой страницы группы.
Схема А: ru, ru-BY, en и x-default
<!-- одинаково на https://example.com/, https://example.com/by/ и https://example.com/en/ -->
<link rel="alternate" hreflang="ru" href="https://example.com/" />
<link rel="alternate" hreflang="ru-BY" href="https://example.com/by/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />Схема Б: ru, be, en и страница выбора языка
<link rel="alternate" hreflang="ru" href="https://example.com/" />
<link rel="alternate" hreflang="be" href="https://example.com/be/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/language/" />Внутренняя страница: адреса не совпадают по слагу
Адреса одной страницы в разных версиях могут отличаться: по справке Яндекса, структура сайта на обработку атрибута не влияет. Набор строк при этом одинаков на всех трёх страницах.
<!-- одинаково на трёх страницах «О компании» -->
<link rel="alternate" hreflang="ru" href="https://example.com/o-kompanii/" />
<link rel="alternate" hreflang="ru-BY" href="https://example.com/by/o-kompanii/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/about/" />Мы прогнали скрипт из раздела о проверке на тестовых страницах (локальный стенд, не рабочий сайт) для схем А и Б и для примера с внутренней страницей: при полном наборе предупреждений нет, а при удалённой самоссылке или коде by скрипт выдаёт предупреждения. Валидацию на реальном сайте с вашей CMS это не заменяет.
Сделайте за 15 минут: откройте исходный код двух своих языковых страниц, найдите строки hreflang и сравните: набор одинаков, есть строка про саму страницу, адреса полные, коды из таблицы выше.
Неполный перевод: что делать со страницами без пары
Типичная ситуация: английская версия есть у главной и у пяти услуг, а у остальных ста страниц перевода нет. Что с ними делать, документация Google отвечает только частично, поэтому ниже разделены факты и наши рекомендации.
По документации Google: страницы, у которых переведён только шаблон, при желании размечаются, но плохой пользовательский опыт возникает, если один и тот же контент показывается в выдаче несколько раз с разными языками оформления. Язык страницы Google определяет по видимому тексту, а не по атрибуту lang или адресу, и советует держать на странице один язык в тексте и навигации, без параллельных переводов. Набор языков на отдельных страницах можно сокращать: связываются те, у кого есть пара.
Наша рекомендация:
- Включайте в набор только страницы, где основной текст действительно переведён.
- Не создавайте страницы-заглушки с русским текстом под английским адресом: это дубль и плохой опыт.
- У страницы без перевода в переключателе языка покажите ссылку на главную нужной версии или не показывайте переключатель на этой странице.
- Для непереведённой страницы hreflang ставить не нужно: у неё нет пары.
- Ведите список: какие страницы переведены, какие нет. Его удобно объединить с таблицей из чек-листа проверки индексации.
Автоперенаправление по IP и языку браузера
Соблазн понятен: белорус зашёл на русскую страницу, пусть сайт сам перекинет его на /by/. Документация Google советует так не делать. Причины:
- Googlebot обычно приходит из США и отправляет запросы без заголовка Accept-Language. Робот не увидит ваши варианты, если они открываются только по IP или языку браузера.
- Google называет определение местоположения по IP сложным и в целом ненадёжным и просит не подстраивать по нему содержимое.
- Автоматические перенаправления между языковыми версиями могут помешать увидеть все версии и пользователям, и поисковым системам.
У Яндекса свои причины, описанные выше: робот может получить любую из версий, а поддомены могут склеиться в группу. Что делать вместо редиректа: оставить обе версии доступными по своим адресам, добавить заметный переключатель языка и, если хотите, ненавязчивую подсказку вроде «Перейти на русскую версию?» без принудительного перехода. Ссылки на другие версии Google советует добавлять. Общие правила настройки перенаправлений описаны в словаре на странице про редирект.
Типичные ошибки и как их исправить
| Ошибка | К чему приводит | Как исправить |
|---|---|---|
| Нет обратной ссылки (A указывает на B, B не указывает на A) | Google может игнорировать теги или неверно их понять | Выводить один и тот же набор строк на всех страницах группы из одного шаблона |
| Нет ссылки страницы на саму себя | Нарушено правило «каждая версия перечисляет себя» | Добавить строку с адресом самой страницы |
Код региона без языка (BY, KZ) | Код недействителен: язык не выводится из страны | Добавить язык: ru-BY, ru-KZ |
Код страны вместо языка (by для белорусского, ua для украинского) | Язык задан неверно | Использовать be, uk |
en-UK, es-419 | Google игнорирует такую часть | Использовать en-GB, а для испанского отдельные страны |
Относительные адреса (/by/) | Адрес не полный, нарушено правило Google | Писать полный адрес с https:// |
Теги попали в body из-за ошибки в head | Теги не читаются как разметка заголовка | Проверить отрисованный код в валидаторе HTML |
| В набор попали страницы с кодом 3xx, 404 или с noindex | Версия не может попасть в выдачу, связь теряется | Включать только индексируемые страницы с кодом 200 |
| Версия страницы закрыта в robots.txt | Поисковик не сможет прочитать страницу | Открыть языковой раздел для обхода |
| Версии на другом языке не переведены (русский текст под английским адресом) | Дубль основного контента | Перевести или убрать версию из набора |
| Принудительный редирект по IP или языку браузера | Робот и часть людей не видят все версии | Переключатель языка и ссылки вместо редиректа |
| Разные наборы строк на разных страницах группы | Взаимность нарушена | Генерировать набор программно из одной таблицы соответствий |
Как проверить hreflang
Сначала про то, чего нет. Отчёт «Международный таргетинг» в Search Console, где раньше показывались ошибки hreflang, больше недоступен: в справке Search Console сказано, что он прекращён, а сам hreflang Google продолжает поддерживать. Если в чьей-то инструкции написано искать там ошибки, инструкция устарела. Поэтому проверять придётся сканером и вручную.
Вручную за пять минут
- Откройте исходный код каждой версии (Ctrl+U) и найдите
hreflang. - Сравните наборы на всех страницах группы: одинаковы ли строки.
- Откройте каждый адрес из набора: ответ 200, нет перехода на другую страницу, язык текста совпадает с кодом.
- В отрисованном коде (инструмент проверки URL в Search Console или панель разработчика браузера) убедитесь, что теги находятся в
head.
Сканер
В Screaming Frog для этого есть вкладка Hreflang. По описанию в руководстве программы, чтобы она заполнилась, в настройках Spider включают «Store Hreflang» и «Crawl Hreflang»; для разметки в XML-карте дополнительно нужен режим «Crawl Linked XML Sitemaps». Среди фильтров вкладки: «Non-200 Hreflang URLs» (адреса с ответом не 200), «Missing Return Links» (нет обратных ссылок), «Inconsistent Language & Region Return Links», «Non-Canonical Return Links», «Noindex Return Links», «Incorrect Language & Region Codes», «Missing X-Default», «Outside <head>». Это та же логика, что в таблице ошибок выше.
Проверку языковых версий включает модуль «Технический аудит» курса SEO: по программе на странице курса, в нём есть тема «Языковые версии» рядом с темами про коды ответа сервера, дубли страниц, 301-редиректы, robots.txt, sitemap.xml и работу в Screaming Frog (сведения со страницы курса, заявление школы на 1 ноября 2026 года).
Скрипт на Python для небольшого сайта
Если страниц немного, сверку можно сделать скриптом. Он читает адреса из командной строки, вытаскивает теги link rel="alternate" hreflang и сообщает о нескольких проблемах: нет самоссылки, нет обратной ссылки, неполный адрес, теги вне head, разные наборы, подозрительные коды (by, kz, ua). Он не заменяет сканер: не смотрит на коды ответа, canonical и noindex. Запуск: python3 check_hreflang.py https://example.com/ https://example.com/by/ https://example.com/en/.
Код скрипта check_hreflang.py (развернуть)
import re, sys, urllib.request
from html.parser import HTMLParser
class P(HTMLParser):
def __init__(self):
super().__init__(); self.in_head = False; self.tags = []; self.outside = 0
def handle_starttag(self, tag, attrs):
a = dict(attrs)
if tag == "head": self.in_head = True
if tag == "body": self.in_head = False
if tag == "link" and "alternate" in (a.get("rel") or "").lower() and a.get("hreflang"):
self.tags.append((a["hreflang"], a.get("href", "")))
if not self.in_head: self.outside += 1
def get(url):
p = P(); p.feed(urllib.request.urlopen(url, timeout=15).read().decode("utf-8", "ignore"))
return p
CODE = re.compile(r"^(x-default|[a-z]{2}(-[A-Za-z]{2})?)$")
urls = sys.argv[1:]
pages = {u: get(u) for u in urls}
for u, p in pages.items():
d = {h: href for h, href in p.tags}
hrefs = set(d.values())
if u not in hrefs: print("НЕТ самоссылки:", u)
if p.outside: print("link вне <head>:", u)
for h, href in p.tags:
if not CODE.match(h): print("странный код", h, "на", u)
if h.lower().split("-")[0] in ("by", "kz", "ua", "uk-ua"):
print("это код страны, а не языка:", h, "на", u)
if not href.startswith("http"): print("не полный адрес", href, "на", u)
for h, href in p.tags:
if href in pages and href != u and u not in {x for _, x in pages[href].tags}:
print("НЕТ обратной ссылки:", href, "не ссылается на", u)
sets = {frozenset(pp.tags) for pp in pages.values()}
if len(sets) > 1: print("наборы на страницах различаются")
print("проверено страниц:", len(pages))Как проверять индексацию самих версий, описано в чек-листе проверки индексации в Google и Яндексе. Если вы проводите аудит сайта целиком, добавьте проверку языковых версий в общий план аудита.
Hreflang и ИИ-поиск в 2026 году
Правила для AI Overviews и AI Mode в документации Google «ИИ-функции и ваш сайт» такие: для показа в качестве ссылки страница должна быть проиндексирована и иметь право показываться в Поиске со сниппетом, других технических требований нет. Дополнительных машиночитаемых файлов для ИИ, специальных ИИ-разметок и новой schema.org-разметки не требуется. Вывод для нас: отдельного «hreflang для ИИ» не существует. Корректные языковые версии это часть обычной технической базы, а llms.txt для этого не нужен.
Чек-лист перед запуском
- ☐ У каждой языковой и региональной версии свой постоянный адрес
- ☐ В каждой версии основной текст на языке этой версии
- ☐ Выбрана схема (А, Б или В) и записана таблица «адрес и код»
- ☐ Языковые коды по ISO 639-1, региональные по ISO 3166-1 Alpha 2; нет
by,kz,ua,en-UK - ☐ Для белорусского языка стоит
be; для русского для Беларусиru-BY - ☐ На каждой странице группы есть строка про саму страницу
- ☐ Набор строк одинаков на всех страницах группы; связи взаимные
- ☐ Все адреса полные, с
https:// - ☐ Теги стоят в
head; в отрисованном коде они там же - ☐ Выбран один способ (теги, заголовок или sitemap); для Яндекса использованы теги
- ☐ Есть
x-defaultна страницу выбора языка или версию «для остальных» - ☐ Все адреса из набора отвечают 200, индексируются, открыты в robots.txt
- ☐ Нет принудительных перенаправлений по IP и языку браузера; есть переключатель языка
- ☐ Непереведённые страницы не входят в набор
- ☐ Проверено сканером; результат сохранён; следующая проверка запланирована
Проверьте себя
Четыре вопроса по материалу. Ответ раскрывается по щелчку, а внизу итоговая таблица.
1. Какой код нужен для белорусского языка?
Ответ: be. Код by это код страны, а не языка (так следует из стандартов ISO). В документации Google есть зеркальный пример: be как код Бельгии ошибочен, потому что это код белорусского языка. Для русского языка для Беларуси подходит ru-BY.
2. Страница /by/ указывает на /en/, а /en/ на /by/ не указывает. Что будет?
Ответ: по документации Google, такие теги могут игнорироваться или неверно интерпретироваться. Нужны обратные ссылки на всех страницах группы.
3. Вы разметили версии в XML-карте сайта. Увидит ли это Яндекс?
Ответ: нет. По справке Яндекса, использование Sitemap для языковых версий больше не поддерживается. Для Яндекса нужны теги link в head.
4. На сайте стоит автоматический редирект по IP на нужный язык. Хорошо ли это?
Ответ: нет. Google советует не перенаправлять автоматически и не подстраивать содержимое по IP, а Яндекс предупреждает, что робот может получить любую версию. Лучше переключатель языка.
| Сколько ответили верно | Что это значит |
|---|---|
| 4 | База усвоена. Переходите к чек-листу и проверке своего сайта |
| 2–3 | Перечитайте разделы про коды и про Яндекс, затем сверьте свой код с таблицей ошибок |
| 0–1 | Начните с разделов «Когда hreflang нужен» и «Самоссылка, взаимность и полные адреса» |
Что дальше
Записать таблицу «адрес и код», выбрать схему, проверить две страницы вручную и один раз прогнать сайт сканером
Разобраться с аудитом целиком: как провести аудит сайта для SEO
Тема языковых версий входит в программу модуля «Технический аудит» (по странице курса, заявление школы на 1 ноября 2026 года) в составе курсов SEO и продвижения сайтов. По словам школы, онлайн-эфиры в Zoom входят в программу; частоту и расписание уточняйте на странице курса (заявление школы, 1 ноября 2026 года). Курс не обещает результата в вашем проекте: он учит находить и исправлять ошибки.
Частые вопросы
Нужен ли hreflang для ru и be?
Да, если у вас есть отдельные страницы на русском и на белорусском языке. Русская версия получит ru, белорусская be, и обе должны ссылаться друг на друга и на себя. Если белорусского текста на сайте нет, размечать нечего. Не используйте by: это код страны.
Что такое x-default?
Это запасное значение для пользователей, чей язык не совпал ни с одной вашей версией. По документации Google, оно рекомендовано и лучше всего работает на страницах выбора языка. Яндекс использует его для случаев, когда язык определяется автоматически. Языковой код при нём не пишется.
Работает ли hreflang в Яндексе?
Да, но только через теги link в head. По справке Яндекса, поддержка языковых версий через Sitemap прекращена. Насколько атрибут влияет на выдачу, справка не уточняет, поэтому результат проверяйте на своих запросах.
Можно ли автоматически перенаправлять пользователей по языку?
Лучше не стоит. Google рекомендует не перенаправлять автоматически и не подстраивать содержимое под IP, потому что робот и часть людей не увидят все версии. Яндекс предупреждает о риске показа не той версии. Делайте переключатель языка и ссылки на версии.
Как проверить hreflang?
Откройте исходный код нескольких версий, сравните наборы строк, проверьте коды ответа адресов и прогоните сайт сканером с вкладкой Hreflang (например, Screaming Frog). Отчёта об ошибках hreflang в Search Console больше нет: международный таргетинг прекращён.
Нужно ли ставить hreflang, если есть canonical?
Это разные сигналы. Canonical выбирает основную версию среди дублей, hreflang связывает версии на разных языках или для разных стран. Обычно каждая языковая версия указывает canonical на саму себя (наша рекомендация). Для похожих страниц на одном языке Google советует использовать оба.
Влияет ли hreflang на попадание в AI Overviews и AI Mode?
Отдельного влияния документация не описывает. Для показа в ИИ-функциях Google нужна индексируемая страница, подходящая для показа со сниппетом; других технических требований и специальной разметки нет. Корректные языковые версии это часть базовой технической работы.
Источники
- Google Search Central: «Сообщите Google о локализованных версиях страницы» (Localized Versions of your Pages), обновлено 21 сентября 2026; прочитано 1 ноября 2026
- Google Search Central: «Управление многоязычными и мультирегиональными сайтами» (Managing multi-regional and multilingual sites), обновлено 10 декабря 2025; прочитано 1 ноября 2026
- Google Search Central: «ИИ-функции и ваш сайт» (AI features and your website), обновлено 10 декабря 2025; прочитано 1 ноября 2026
- Справка Search Console: «Отчёт International Targeting прекращён» (The International Targeting report is deprecated); прочитано 1 ноября 2026
- Яндекс Вебмастер, справка: «Индексирование локализованных страниц» (дата на странице не указана); прочитано 1 ноября 2026
- Яндекс Вебмастер, справка: «Обработка редиректов», раздел о региональных и языковых версиях; прочитано 1 ноября 2026
- Руководство Screaming Frog SEO Spider: вкладка Hreflang; прочитано 1 ноября 2026
- Стандарты ISO 639-1 (коды языков), ISO 3166-1 Alpha 2 (коды стран), ISO 15924 (письменности)
- Страницы курсов «Курсы SEO в Минске и онлайн» на сайте EDUGUSAROV: заявление школы на 1 ноября 2026
Плановое обновление: февраль 2027; проверка 1 ноября 2026.


