Hreflang и мультиязычный сайт: как не запутать поисковики (RU/BY/EN)

Коротко за 30 секунд

  • 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 нужен, а когда нет

В документации 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. Код страны отдельно, без языка, указывать нельзя.

Что нужноВерный кодТипичная ошибкаПочему это ошибка
Белорусский языкbebyby это код страны, а не языка (следствие стандартов ISO, не цитата Google). Зеркальный пример есть у Google: для Бельгии be ошибочен, потому что be это белорусский язык
Русский для Беларусиru-BYby-byСначала язык, потом регион
Казахский языкkkkzkz это страна; в списке языков Яндекса казахский указан как kk
Русский для Казахстанаru-KZkzКод региона без языка недействителен
Украинский языкukuaua это страна; украинский язык в списке Яндекса указан как uk
Английский для Великобританииen-GBen-UKGoogle пишет, что UK в hreflang не действует; регион Великобритании это GB
Испанский для Латинской Америкиотдельные страны: es-MX, es-ARes-419Google: коды не из 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-карту сайта. Использовать сразу все три можно, но пользы это не даст, а поддерживать три реализации тяжелее одной. Яндекс устроен иначе, поэтому выбор зависит от того, для какого поисковика вы размечаете.

СпособGoogleЯндексКогда удобен
Теги 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-419Google игнорирует такую частьИспользовать en-GB, а для испанского отдельные страны
Относительные адреса (/by/)Адрес не полный, нарушено правило GoogleПисать полный адрес с https://
Теги попали в body из-за ошибки в headТеги не читаются как разметка заголовкаПроверить отрисованный код в валидаторе HTML
В набор попали страницы с кодом 3xx, 404 или с noindexВерсия не может попасть в выдачу, связь теряетсяВключать только индексируемые страницы с кодом 200
Версия страницы закрыта в robots.txtПоисковик не сможет прочитать страницуОткрыть языковой раздел для обхода
Версии на другом языке не переведены (русский текст под английским адресом)Дубль основного контентаПеревести или убрать версию из набора
Принудительный редирект по IP или языку браузераРобот и часть людей не видят все версииПереключатель языка и ссылки вместо редиректа
Разные наборы строк на разных страницах группыВзаимность нарушенаГенерировать набор программно из одной таблицы соответствий

Как проверить hreflang

Сначала про то, чего нет. Отчёт «Международный таргетинг» в Search Console, где раньше показывались ошибки hreflang, больше недоступен: в справке Search Console сказано, что он прекращён, а сам hreflang Google продолжает поддерживать. Если в чьей-то инструкции написано искать там ошибки, инструкция устарела. Поэтому проверять придётся сканером и вручную.

Вручную за пять минут

  1. Откройте исходный код каждой версии (Ctrl+U) и найдите hreflang.
  2. Сравните наборы на всех страницах группы: одинаковы ли строки.
  3. Откройте каждый адрес из набора: ответ 200, нет перехода на другую страницу, язык текста совпадает с кодом.
  4. В отрисованном коде (инструмент проверки 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.

Автор статьи:

Андрей Гусаров

Директор маркетингового агентства GUSAROV
ТОП-3 спикер по интернет-маркетингу в СНГ по версии рейтинга Aspeak
Ментор года по итогам голосования на всемирной неделе предпринимательства
Вошёл в ТОП-30 успешных предпринимателей до 30 лет

Похожие статьи:

При нахождении на сайте Вы соглашаетесь на политику обработки персональных данных.
Всё понятно!