Если сайт работает на нескольких языках или ориентирован на пользователей из разных стран, поисковым системам важно показать, какая версия страницы кому подходит. Например, посетителю из Казахстана может быть нужна русскоязычная страница с ценами в тенге, а пользователю из Франции - французская версия с локальными условиями доставки.
Для этой задачи используют hreflang - набор сигналов, связывающих языковые и региональные варианты контента.
Сам по себе атрибут hreflang не переводит страницу, не определяет географию посетителя с абсолютной точностью и не гарантирует показ нужного URL в результатах поиска. Он помогает поисковым системам понять взаимосвязь между альтернативными страницами и выбрать подходящую версию с учётом языка и региона.
Ошибка в разметке, напротив, может сделать эту подсказку бесполезной: поисковик не найдёт обратную ссылку, получит неверный код языка или увидит в группе URL, которые не являются настоящими альтернативами.
В этом руководстве разберём, как спроектировать hreflang, выбрать способ внедрения, настроить взаимные указания, проверить результат и избежать типичных ошибок. Примеры подходят для интернет-магазина, медиа, SaaS-сервиса и корпоративного сайта.
Отдельное внимание уделено пограничным случаям: общему языку для нескольких стран, страницам без перевода, автоматической генерации тегов и большому каталогу URL.
Что такое hreflang и какую задачу он решает
Hreflang атрибут, который связывает страницы с одинаковым или близким содержанием, предназначенные для разных языков и регионов. Его значение состоит из языкового кода, а при необходимости - кода страны.
Например, hreflang="en" обозначает англоязычный вариант без привязки к конкретной стране, а hreflang="en-GB" - англоязычную версию для Великобритании.
Представим интернет-магазин с каталогом товаров в трёх версиях: русский язык для России, русский язык для Казахстана и казахский язык для Казахстана.
На страницах могут отличаться валюта, способы оплаты, наличие товара, правила возврата и формулировки. Hreflang сообщает поисковой системе, что эти URL относятся к одной группе альтернатив, и помогает сопоставить их с предпочтениями пользователя.
Важно не путать hreflang с canonical. Канонический адрес сообщает поисковой системе, какой URL считать предпочтительным представлением дублирующейся или очень похожей страницы. Hreflang, напротив, указывает на языковые или региональные варианты, которые могут быть полезны разным аудиториям.
В правильно устроенной группе альтернатив каждая версия обычно указывает canonical на саму себя, а hreflang связывает её с другими версиями.
Hreflang не заменяет перевод и не исправляет структуру сайта. Если русская и французская страницы фактически одинаковы, но на одной из них заменена лишь пара слов, сигнал о разных языковых версиях может оказаться неубедительным.
Если локальные страницы содержат значимые различия - например, местные цены, ассортимент, условия доставки и поддержку, - связь между ними обычно понятнее и для посетителей, и для поисковых систем.
Также это не редирект и не средство принудительного выбора версии. Пользователь может перейти на любой URL, а поисковая система может показать другую страницу, если считает её более подходящей.
Поэтому язык интерфейса, видимый переключатель региона, корректные URL и возможность самостоятельно выбрать страну остаются важными частями локализации.
Когда hreflang нужен, а когда его можно не внедрять
Настройка hreflang наиболее полезна, если на сайте есть несколько URL с контентом на разных языках или локальные версии на одном языке.
К примеру, компания может вести отдельные сайты для Австралии и США: обе версии англоязычные, но отличаются ценами, единицами измерения, адресами филиалов и условиями обслуживания.
Один только языковой код en не объяснит, какую версию предпочесть аудитории конкретной страны.
Разметка обычно оправданна для магазинов с локальными каталогами, туристических сервисов, международных образовательных проектов, новостных изданий, SaaS-платформ и брендов с региональными сайтами.
Особенно существенна она, когда похожие страницы конкурируют между собой в выдаче или поисковик выбирает версию, неудобную для посетителя.
Например, пользователю из Канады может показываться американская страница с ценой в долларах США, хотя существует версия с канадскими условиями.
Если у сайта одна языковая версия и нет альтернативных региональных URL, hreflang, как правило, не нужен. Не требуется создавать фиктивные варианты ради разметки: атрибут должен отражать реально существующие страницы.
Если переведена только часть сайта, указывать следует только доступные и качественно подготовленные альтернативы, а не придумывать URL для отсутствующих переводов.
При этом hreflang не следует добавлять между страницами, которые различаются лишь параметрами сортировки, рекламными метками или техническими идентификаторами, если они не являются отдельными языковыми или региональными предложениями.
Связать в одну группу страницу категории товаров и страницу отдельного товара только потому, что обе переведены на французский, - неверно. Альтернативы должны соответствовать друг другу по смыслу и назначению.
Перед внедрением полезно определить, какую проблему нужно решить. Если поисковик показывает не тот региональный URL - hreflang может быть частью решения. Если переводы не индексируются, страницы закрыты от обхода или содержат мало уникального содержания, сначала нужно устранить эти препятствия.
Разметка не компенсирует техническую недоступность страницы и не превращает слабый перевод в качественную локализацию.
Как читать языковые и региональные коды
Значение hreflang состоит из языкового кода, а иногда - ещё и регионального кода. Между ними ставится дефис: например, fr-CA для французского языка в Канаде или es-MX для испанского в Мексике. Порядок важен: сначала указывается язык, затем регион. Вариант CA-fr неверен.
Для обозначения языка применяют код по стандарту ISO 639-1, обычно состоящий из двух букв. Примеры: ru - русский, en - английский, de - немецкий, ja - японский. Для региона используют двухбуквенный код страны по ISO 3166-1 Alpha-2: US - США, GB - Великобритания, BR - Бразилия. Поэтому pt-BR указывает на бразильский вариант португальского.
Код языка обязателен, а региона - нет. Если страница предназначена для носителей языка в разных странах и не имеет особой региональной адаптации, можно указать общий код: hreflang="en".
Если же варианты отличаются для конкретных рынков, полезно задать сочетание языка и страны: например, en-AU и en-GB.
Выбирать нужно не код страны пользователя, не валюту и не адрес домена, а фактическое назначение страницы. Например, сайт на русском языке на домене
.kzне становится казахскоязычным автоматически. Для русской страницы, адресованной пользователям Казахстана, подходитru-KZ; для страницы на казахском -kk-KZ.
Атрибут описывает язык и целевой регион, а не тип домена.
| Пример кода | Значение | Пример использования |
|---|---|---|
en | Английский без заданного региона | Общая англоязычная документация |
en-US | Английский для США | Каталог с американскими ценами и условиями |
en-GB | Английский для Великобритании | Локальные сроки доставки и британская версия текста |
fr-CA | Французский для Канады | Франкоязычный канадский сайт |
pt-BR | Португальский для Бразилии | Версия с бразильскими условиями продаж |
es-MX | Испанский для Мексики | Локальная версия для мексиканского рынка |
Частая ошибка - использовать название языка в произвольной форме, например english, ru_RU или UK вместо правильного кода региона GB. Другой риск - механически подставлять значения из системы локализации.
Некоторые платформы хранят локаль как en_US, но в hreflang между компонентами нужен дефис: en-US.
С чего начать- инвентаризация и карта альтернатив
До изменения шаблонов соберите список индексируемых страниц и их языковых вариантов. Для крупного сайта удобно начать с XML-карт сайта, выгрузки из CMS или обхода сайта специальным аудитом. Для небольшого проекта хватит таблицы, где перечислены основные URL и соответствующие им версии.
Важно фиксировать именно канонические адреса, доступные для посетителей и поисковых роботов.
Для каждой страницы определите язык текста, целевой рынок и соответствующие альтернативы. В интернет-магазине это может быть не простое совпадение артикулов: товар должен быть доступен на нужном рынке, а локальные варианты должны вести на подходящую карточку. В медиа соответствиями могут быть версии одной новости, а не просто любые материалы на похожую тему.
Если прямого аналога нет, не следует подменять его главной страницей или случайной категорией.
Карта альтернатив помогает обнаружить неполные и неоднозначные группы. Например, русская версия статьи может существовать, а казахская - отсутствовать.
В такой ситуации русскую страницу не нужно связывать с URL, который отдаёт ошибку, перенаправляет на главную или показывает другой материал.
Можно оставить в группе только реально существующие версии и выбрать общий вариант для пользователей, которым не соответствует ни одна из локализаций.
Удобно записывать сведения в таблицу со столбцами "страница", "язык", "регион", "альтернативы", "canonical", "статус HTTP", "индексация". Такая документация не только упрощает старт, но и становится основой для проверок после публикации новых переводов.
Для сайта с десятками тысяч URL она помогает оценить полноту покрытия и находить страницы, для которых CMS случайно не создала связи.
| URL текущей версии | Язык и регион | Альтернатива | Проверка перед публикацией |
|---|---|---|---|
example.com/ru/product-a | Русский, Россия | example.com/en/product-a | Обе страницы отвечают кодом 200 и относятся к одному товару |
example.com/en/product-a | Английский, общий вариант | example.com/ru/product-a | Английская версия не перенаправляет пользователя в другой регион |
example.com/fr/article-a | Французский, общий вариант | Версии для конкретного региона нет | Не добавлены фиктивные URL и неподходящие замены |
Перед генерацией разметки согласуйте модель локалей с редакцией, разработкой и командой продукта. Если редакция считает одну версию "международной", а CMS помечает её как "США", в коде могут появиться противоречивые значения.
Лучше заранее определить, какие URL соответствуют локалям, кто отвечает за добавление новых альтернатив и что происходит, если перевод временно удалён.
Как работает взаимная связь между версиями
Каждая страница в группе должна перечислять все альтернативные URL, включая собственный. Это означает, что английская страница указывает и на себя, и на русскую версию; русская - на себя и на английскую.
Самоуказание не является лишним повтором: оно явно включает текущий документ в набор альтернатив и позволяет сопоставить ответы страниц между собой.
Связи должны быть взаимными. Если URL A сообщает, что URL B является альтернативой, то URL B должен сообщать, что URL A - его альтернатива. Односторонний список часто сигнализирует о неполной или ошибочной конфигурации.
Поисковая система может проигнорировать несогласованную пару целиком или не использовать её так, как рассчитывает владелец сайта.
Например, если у статьи есть страницы на русском, английском и немецком, каждая из трёх страниц должна содержать одинаковый набор из трёх hreflang-указаний: русский, английский и немецкий URL.
Если существует общий URL для пользователей без подходящего регионального варианта, в каждой странице группы дополнительно указывают его с кодом x-default.
Полный список не означает, что каждому URL нужно включать все локали сайта. Группы формируются для конкретных соответствующих страниц. Страница товара не должна перечислять версии главной страницы; одна статья не должна ссылаться на перевод другой статьи только потому, что обе находятся в одной языковой папке.
Сопоставление строится на уровне содержания и пользовательской задачи.
Откройте страницу и определите её корректный канонический URL.
Составьте перечень существующих альтернатив с точными кодами языка и региона.
Добавьте в перечень саму текущую страницу.
Разместите один и тот же список на каждой странице связанной группы.
Проверьте доступность URL и наличие обратных указаний.
Количество элементов в группе напрямую влияет на объём разметки. Если одна страница связана с пятью локалями, на каждом URL обычно присутствуют пять языковых и региональных объявлений, не считая возможного x-default.
Поэтому важно генерировать разметку автоматически из единого источника данных, а не редактировать набор вручную в десятках шаблонов.
Выбор способа внедрения
Hreflang можно передать поисковой системе в HTML, в заголовках HTTP или в XML-карте сайта. Все три метода решают одну задачу, но подходят разным типам ресурсов и процессов.
При выборе учитывают архитектуру сайта, доступ к серверной конфигурации, особенности CMS, размер каталога и то, кто будет сопровождать разметку после запуска.
HTML-разметка подходит сайтам, где легко изменить шаблон страницы и сформировать блок ссылок в элементе head. Её часто выбирают для корпоративных сайтов, блогов и магазинов с управляемыми шаблонами. Преимущество - указания находятся рядом с самим документом.
Недостаток - длинные списки локалей увеличивают код, а ошибка шаблона может повториться на всём сайте.
XML-карта удобна для большого числа URL и для файлов, в которые сложно или нежелательно встраивать длинные списки альтернатив. Однако карта требует строгой генерации: все ссылки должны быть согласованы, адреса - каноническими, а сведения о локалях - актуальными.
Если CMS и XML-карта формируют разные наборы альтернатив, появляется два источника противоречащих сигналов.
Заголовки HTTP полезны для документов, которые не являются HTML-страницами, например PDF-файлов с переводами.
Они могут быть удобны, если сервер уже формирует заголовки на основе данных о локалях. Для обычного сайта этот вариант нередко сложнее сопровождать, поскольку связи не видны в исходном HTML и требуют отдельной проверки серверных ответов.
| Способ | Где размещается | Когда удобен | Основной риск |
|---|---|---|---|
| HTML | В элементе head страницы | Управляемые шаблоны, небольшой или средний сайт | Неполная или ошибочная генерация шаблоном |
| XML-карта сайта | В расширенной разметке sitemap | Большие каталоги и централизованная генерация URL | Расхождение данных карты с реальным состоянием сайта |
| HTTP-заголовок | В ответе сервера | PDF и другие документы без HTML-шаблона | Сложность диагностики и сопровождения |
Не обязательно дублировать hreflang сразу во всех трёх местах. Повторение разных источников повышает риск расхождений и усложняет поиск причин проблемы.
Для большинства сайтов разумно выбрать основной способ, который команда может автоматически поддерживать, а затем проверять его на полноту и согласованность.
Внедрение в HTML
При HTML-внедрении связи добавляют в элемент head каждой страницы. Каждая запись использует тег link с атрибутами rel="alternate", hreflang и href.
Значение href должно быть абсолютным URL: с протоколом и правильным доменом, включая выбранный вариант протокола, поддомена и завершающего слеша, если он является частью канонического адреса.
Допустим, страница товара существует на русском для России и на английском для Великобритании. Пример разметки для русской версии выглядит так:
<link rel="alternate" hreflang="ru-RU"
href="https://shop.example/ru/product-a" />
<link rel="alternate" hreflang="en-GB"
href="https://shop.example/en-gb/product-a" />
<link rel="alternate" hreflang="x-default"
href="https://shop.example/product-a" />
На английской странице размещают те же альтернативы, включая английский URL и русский URL.
Значение x-default указывают только в том случае, если существует подходящая страница по умолчанию, например селектор страны или нейтральная версия товара. Это не обязательная запись для каждой группы и не обозначение языка.
Генератор HTML должен брать URL и коды из общего каталога локалей, а не строить их догадкой по адресу текущей страницы. Простая подстановка замены
/ru/на/en/часто ломается, если в одной стране товар отсутствует, slug переведён, структура категорий различается или часть страниц ещё не опубликована.
Надёжнее хранить прямые связи между объектами локализации.
Проверяйте, чтобы записи находились в корректном месте документа и отдавались в исходном HTML, а не появлялись только после выполнения JavaScript, если поисковые системы или используемые аудит-инструменты не обрабатывают такую генерацию надёжно.
Также убедитесь, что сервер не удаляет или не переписывает атрибуты при минификации и кэшировании.
Внедрение в XML-карту сайта
В XML-карте связи можно описать для каждой страницы при помощи пространства имён XHTML. В блоке url указывают сам URL через loc и все его варианты через элементы xhtml:link. Для каждой альтернативы, включая саму страницу, используются атрибуты rel="alternate", hreflang и href.
Упрощённый пример для двух версий и общего адреса по умолчанию:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://shop.example/ru/product-a</loc>
<xhtml:link rel="alternate" hreflang="ru-RU"
href="https://shop.example/ru/product-a" />
<xhtml:link rel="alternate" hreflang="en-GB"
href="https://shop.example/en-gb/product-a" />
<xhtml:link rel="alternate" hreflang="x-default"
href="https://shop.example/product-a" />
</url>
</urlset>
Для английского URL в карте нужно добавить отдельный блок url и повторить тот же набор связей. Одного описания русской страницы недостаточно: карта должна отражать взаимность между всеми версиями.
Если sitemap разбита на несколько файлов, это не мешает связывать URL между ними, но система генерации должна включать актуальные адреса и корректные локали.
Не помещайте в карту URL, которые перенаправляют, возвращают ошибку, закрыты для индексации или канонизируются на другой адрес.
В идеале loc и значения href должны указывать на индексируемые страницы со статусом 200 и соответствовать canonical. Не добавляйте в hreflang технические варианты с параметрами сессии и отслеживания.
Перед публикацией проверьте XML на синтаксические ошибки, корректное пространство имён и допустимый размер файла. При большом количестве URL используют индекс карт сайта и автоматическое разделение на файлы в соответствии с ограничениями формата. Важно проверять не только то, что карта доступна, но и то, что генератор не пропускает языковые варианты после обновления каталога.
Hreflang в HTTP-заголовках и для файлов
Если перевод представлен PDF-документом или другим файлом без HTML-кода, связи можно передать в HTTP-заголовке Link. Сервер возвращает этот заголовок вместе с ответом ресурса, перечисляя альтернативные адреса и соответствующие коды.
Логика взаимности сохраняется: альтернативные документы должны указывать друг на друга, а не только на исходный файл.
Схематично заголовок может выглядеть так:
Link: <https://docs.example/ru/guide.pdf>; rel="alternate"; hreflang="ru",
<https://docs.example/en/guide.pdf>; rel="alternate"; hreflang="en"
Для такого внедрения необходим доступ к серверной конфигурации или приложению, которое формирует HTTP-ответ. Проверять нужно именно заголовки реального ответа, а не только настройки в панели управления.
Прокси, CDN и правила кэширования могут изменить заголовки, удалить часть значений или выдавать разные наборы для разных ресурсов.
В крупных системах удобно вынести локализацию в отдельный слой данных: идентификатор документа сопоставляется с набором URL и кодов, а приложение на основе этого набора формирует HTML, XML или HTTP-заголовки.
Такая архитектура сокращает количество ручных операций и позволяет проверять взаимность программно до публикации.
Если команда использует разные методы для разных типов страниц, нужно документировать их границы. Например, HTML для обычных страниц, заголовки для PDF и sitemap для отдельных разделов - рабочая схема лишь при условии, что источники не конфликтуют и каждый формат обслуживается ответственным процессом.
Непрозрачное смешение методов без карты ответственности затрудняет диагностику.
Как правильно использовать x-default
Код x-default обозначает URL, предназначенный для пользователей, которым не соответствует ни одна явно перечисленная языковая или региональная версия. Часто это нейтральная главная страница международного сайта или селектор языка и страны.
Он не заменяет код языка и не означает "английский по умолчанию".
К примеру, на международной странице можно предложить выбор между версиями для США, Великобритании, Франции и Японии. Если посетителю не подходит ни одна из этих локалей, x-default может вести на страницу выбора страны.
В таком случае посетитель самостоятельно указывает предпочтительный вариант, а сайт не делает рискованное предположение только по IP-адресу.
В интернет-магазине x-default иногда указывает на нейтральную страницу товара, где пользователь может выбрать рынок. Если такого URL нет, не нужно назначать случайную страницу по умолчанию.
Сначала следует понять, каким действительным пользовательским сценарием будет оправдан этот адрес, и только потом включать его в группу альтернатив.
Страница, помеченная как x-default, должна быть доступна и полезна. Если она автоматически перенаправляет всех посетителей на одну локаль, всегда показывает ошибку или возвращает пустой экран, заявленная роль не выполняется.
Кроме того, разные устройства или регионы не должны получать непредсказуемо разные ответы, если это приводит к невозможности нормально обойти страницу.
Разметка x-default особенно полезна международным сайтам с большим числом рынков и общим селектором локали, но не обязательна для каждой пары переводов.
Решение принимают исходя из структуры контента и сценария пользователя, а не ради формального наличия дополнительного тега.
Связь hreflang с canonical, индексированием и редиректами
Распространённая ошибка - канонизировать все переводы на одну основную страницу. Например, если английская, французская и русская версии содержат уникальный локализованный контент, но каждая указывает canonical на русскую страницу, владелец сайта фактически просит поисковую систему считать остальные версии копиями.
Это противоречит задаче hreflang и может помешать самостоятельной индексации локализованных URL.
Для самостоятельных переводов canonical обычно направляют на соответствующий канонический URL той же языковой версии. Русская страница канонизируется на русскую, английская - на английскую. Между ними отдельно строится группа hreflang.
Если же страницы действительно являются дубликатами и самостоятельной ценности не имеют, сначала нужно решить вопрос с архитектурой и canonical, а не прикрывать конфликт языковой разметкой.
Страницы, указанные в hreflang, должны быть доступны для обхода и не закрыты ошибочной директивой
noindexили блокировкой вrobots.txt. Поисковая система должна иметь возможность получить страницу и проверить её содержимое.
Одновременно с этим нельзя полагаться на hreflang, чтобы заставить индексировать URL, которые намеренно исключены из индекса.
Избегайте цепочек перенаправлений между языковыми URL. Если hreflang ссылается на старый адрес, который перенаправляет на новый, обновите список альтернатив, чтобы он сразу указывал на конечный URL.
Особенно внимательно проверяйте редиректы с мобильных поддоменов, старых доменов, URL с завершающим слешем и страниц, которые переводились на новую структуру.
При редиректе по геолокации или настройкам браузера оставляйте посетителю возможность перейти к другой версии и не делайте страницу недоступной для обхода. В идеале показывайте ненавязчивую рекомендацию или запоминайте выбор пользователя, а не отправляйте каждого посетителя на один URL без возможности возврата.
Автоматический выбор локали - отдельная задача; hreflang лишь сообщает о связях между доступными страницами.
Как работать с общим языком и региональными версиями
Иногда сайт имеет общий URL на английском и отдельные версии для США и Великобритании. Тогда нужно определить, являются ли эти региональные версии самостоятельными страницами и кому предназначен общий вариант.
Если региональные страницы действительно отличаются, например ценами, условиями оплаты и контактами, можно описать общий английский URL и региональные URL отдельными кодами.
Важно не объявлять одну страницу одновременно несколькими локалями без оснований. Если британский вариант имеет en-GB, а американский - en-US, каждый URL должен соответствовать своему рынку.
Общий код en может использоваться для универсального англоязычного варианта, но он не означает, что один URL автоматически становится правильным для любой англоязычной страны.
Если контент общий, но компания продаёт в нескольких государствах, проверьте, есть ли смысл в отдельных URL. Различия не обязаны ограничиваться переводом: локальные способы доставки, налоги, валюты, законодательные уведомления и наличие товара могут делать версии полезнее одной универсальной страницы.
При этом одинаковый текст с заменой одной валюты не всегда оправдывает сложное разветвление сайта - решение зависит от реального предложения.
Для пользователей, чей рынок не описан отдельной версией, может быть уместна общая англоязычная страница или x-default-сценарий с выбором страны. Если сайт обслуживает лишь конкретные регионы, не нужно имитировать глобальное покрытие большим количеством кодов. Чётко обозначенная доступность и правдивые условия важнее, чем максимально длинный список локалей.
Как поступать со страницами без перевода
Если у конкретной страницы нет перевода на один из языков, просто не указывайте отсутствующий вариант. Например, в каталоге из тысячи товаров часть позиций может продаваться только в России.
Не нужно вести hreflang с этих карточек на раздел "все товары" на английском: это разные документы и разные пользовательские задачи.
Если перевод временно снят с публикации, проверьте, какое действие лучше соответствует ситуации. Когда страница окончательно удалена и аналогов нет, удалите её из списка альтернатив. Если перевод временно недоступен из-за ошибки выпуска, восстановите страницу или согласованно исключите её из группы до исправления.
Не оставляйте URL, который возвращает 404 или бесконечно перенаправляет, только ради сохранения прежней карты.
Для категории с неполным переводом допустимо связать существующие версии категории, если они остаются соответствующими друг другу.
Но если категория на одном языке содержит принципиально иной ассортимент и структуру, нужно оценить, является ли она альтернативой или отдельным предложением. Hreflang не требует буквального совпадения разделов; он требует осмысленного соответствия для пользователя.
На сайте с большим каталогом полезно задать правила для новых объектов: создавать hreflang только после публикации перевода, обновлять группу при появлении нового рынка и удалять недоступные варианты при снятии с публикации.
Эти правила лучше проверять в рабочем процессе редакции и релиза, а не исправлять вручную после массового обнаружения ошибок.
Частые ошибки настройки и почему они возникают
Наиболее известная ошибка - отсутствие обратной ссылки. Английская страница указывает на русскую, но русская не сообщает о существовании английской.
Такое расхождение обычно возникает, когда языковые сайты управляются разными командами или когда данные о локалях формируются в нескольких системах. Решение - хранить группу альтернатив централизованно и проверять её до выпуска.
Неверный код локали. Опечатка, неверный порядок языка и страны, подчёркивание вместо дефиса или несуществующее сочетание делают значение непригодным для ожидаемого распознавания.
Ссылки на редиректы и ошибки. В разметке остаются старые адреса после миграции, удаления товаров или смены структуры URL.
Альтернативы не соответствуют друг другу. Страница ведёт на главную сайта, близкую категорию или случайный перевод вместо той же страницы в другой локали.
Одинаковый canonical для всех локалей. Это может противоречить намерению индексировать самостоятельные локализованные версии.
Пропущено самоуказание. Текущая страница не включена в собственный набор альтернатив, что затрудняет согласование группы.
Списки локалей отличаются на разных URL. В одной версии добавили новый рынок, а шаблоны остальных страниц не обновили.
Разметка ведёт на закрытый URL. Страница заблокирована, помечена
noindex, требует авторизации или недоступна посетителям.Автоматическая генерация без проверки данных. Система предполагает, что у каждого товара существует перевод с одинаковым slug, и создаёт множество несуществующих адресов.
Ещё одна проблема - смешение языковых и географических сигналов. Например, указание de-DE на страницу, где язык немецкий, но условия и контент рассчитаны на Австрию, может описывать не тот рынок.
Иногда подходящий код будет de-AT, но следует оценивать реальную целевую аудиторию, а не угадывать по языку или серверу.
Ошибки часто проявляются не сразу. После редизайна шаблон может продолжать выдавать старые URL, а новая CMS - сохранять локаль в другом формате.
Переводы добавляются постепенно, поэтому рабочая первоначальная конфигурация со временем становится неполной. Именно поэтому аудит нужен не только перед запуском, но и после изменений сайта.
Не стоит трактовать любое предупреждение инструмента как доказательство того, что весь сайт потерял видимость. Сначала оцените масштаб: затронут один URL, одна локаль или весь каталог; есть ли ошибки HTTP; отличаются ли canonical; присутствуют ли страницы в индексе.
Точная диагностика помогает не создавать рискованные массовые перенаправления или удаление корректной разметки.
Проверка hreflang после публикации
Проверку начните с получения реальных страниц как пользователь и как робот. Убедитесь, что каждый URL возвращает ожидаемый статус, загружается без авторизации и не перенаправляет в неподходящую локаль.
Проверьте исходный HTML, если используется этот способ, или XML-карту и HTTP-заголовки, если выбраны другие методы.
Затем сверьте содержимое группы: коды локалей, адреса, самоуказание, обратные ссылки и совпадение альтернатив. Проверьте canonical каждой страницы и убедитесь, что он не противоречит независимому существованию локализованных URL.
Дополнительно оцените язык видимого контента: атрибут в коде должен соответствовать фактическому тексту и рынку.
Для автоматизации можно использовать веб-краулер, тесты в сборочном процессе, собственный скрипт или отчёты систем управления поисковой видимостью. Независимо от инструмента, важны не только синтаксические проверки, но и смысловые.
Программа может подтвердить, что URL отвечает кодом 200, но не понять, что это страница другой категории и потому неверная альтернатива.
| Проверка | Что искать | Как интерпретировать проблему |
|---|---|---|
| Статус URL | Страница доступна и возвращает ожидаемый ответ | Ошибочный или редиректящий адрес нужно заменить конечным URL |
| Самоуказание | Текущая страница присутствует в наборе | Неполная группа или ошибка шаблона |
| Взаимность | Все альтернативы ссылаются друг на друга | Данные локализации различаются между версиями |
| Коды | Корректные значения языка и региона | Ошибочная локаль или неправильное преобразование CMS |
| Canonical | У каждой самостоятельной версии ожидаемый канонический адрес | Конфликт с намерением индексировать локальную страницу |
| Индексация | Страница не закрыта случайно от обхода или индексации | Сначала нужно устранить техническое ограничение |
| Смысл соответствия | Страницы решают одну и ту же задачу для разных рынков | Неверно сопоставлены объекты локализации |
При массовой проверке разумно анализировать выборку разных типов URL: товар, категория, статья, главная страница, документ для скачивания и страница с неполным набором переводов. Дополнительно проверьте варианты со слешем, параметрами, кириллическими slug, поддоменами и доменами разных стран.
Небольшая выборка не докажет отсутствие всех ошибок, но поможет выявить системный дефект шаблона.
В отчётах поисковых систем ищите не только уведомления, непосредственно связанные с международной разметкой, но и косвенные признаки: неожиданный выбор региона, исключённые страницы, ошибки сканирования, дубли и расхождение с canonical.
Сопоставляйте данные за период до и после внедрения. Результат оценивают по совокупности сигналов и поведения целевых URL, а не по одному отчёту.
Особенности автоматизации на больших сайтах
При сотнях или тысячах локализованных страниц ручное управление тегами быстро становится ненадёжным. Оптимальная схема - хранить связи в данных о сущности: у новости, товара или документа есть идентификатор, а для каждой локали - собственный статус публикации и URL.
Генератор выдаёт hreflang только для опубликованных и пригодных к индексации вариантов.
Перед релизом система может проверять обязательные условия: URL не пустой, локаль допустима, маршрут уникален, документ существует, страница не помечена как удалённая.
Отдельный тест подтверждает взаимность: если объект A содержит локали X и Y, то страницы обеих локалей формируют согласованный набор. Такие тесты помогают обнаружить ошибку раньше, чем страницы попадут в sitemap.
Для каталога интернет-магазина нужно учитывать изменения ассортимента и региональной доступности.
Товар может быть представлен в нескольких переводах, но отсутствовать на складе в части рынков. Команда должна решить, сохраняется ли страница как полезная карточка с сообщением о недоступности или удаляется из соответствующей локали. От этого решения зависит, должна ли она оставаться в группе.
Кэширование тоже влияет на актуальность. Если новый перевод уже опубликован, но кэш продолжает отдавать старый список hreflang, разные версии временно сообщают поисковику несовпадающие данные.
При выпуске переводов обновляйте страницы, карты сайта и связанные кэшированные данные согласованно, а затем проверяйте их после очистки или обновления CDN.
Полезно назначить владельца процесса. Редакция отвечает за соответствие и качество локализации, разработка - за форматирование и генерацию, SEO-специалист - за спецификацию кодов, группировку и контроль.
Если ответственность не определена, каждый участник может считать, что связь альтернатив поддерживает кто-то другой, и ошибки будут копиться незаметно.
Миграция сайта и смена URL
При смене домена, структуры каталогов или системы локалей обновляют все места, где содержатся hreflang-ссылки: HTML-шаблоны, XML-карты и серверные заголовки.
Недостаточно настроить редиректы старых адресов. Разметка должна сразу указывать на актуальные конечные URL, а не заставлять поисковую систему проходить цепочку перенаправлений.
Перед миграцией сохраните карту соответствий старых и новых страниц по каждой локали. Для каждого старого URL определите новый адрес именно той же версии. Если русская страница переехала, её альтернативой после переноса должен стать новый русскоязычный URL, а не главная страница нового домена.
Это особенно важно при переходе с поддоменов на папки или при объединении сайтов нескольких стран.
План миграции должен предусматривать техническое тестирование до переключения DNS или публикации. Проверьте шаблоны на тестовой среде, затем после запуска обойдите реальные URL и убедитесь, что страницы отвечают, canonical обновлён, редиректы ведут на правильные версии, а связи взаимны.
Старые карты сайта заменяют актуальными, а не просто оставляют рядом без контроля.
Не изменяйте одновременно без необходимости структуру URL, язык страниц, стратегию canonical и правила редиректов. Когда все сигналы меняются разом, сложнее установить источник проблемы, если поисковые системы выбирают неправильные адреса.
По возможности документируйте изменения и отслеживайте основные локали отдельно в течение периода переобхода.
Редакционные и пользовательские аспекты локализации
Технически правильный hreflang приносит пользу только тогда, когда целевая страница действительно отвечает ожиданиям локальной аудитории. Перевод интерфейса может быть точным, но на странице не окажется местных способов доставки, валюты или контактной информации.
Пользователь увидит подходящий язык, однако не получит подходящее предложение - значит, задача локализации выполнена лишь частично.
Перед связкой страниц проверьте не только заголовки и основной текст, но и важные элементы: навигацию, сообщения об ошибках, условия оплаты, доступность товара, юридические уведомления, формы и письма после заказа.
Для медиа проверьте корректность локального контекста, дат, имён и единиц измерения. Для SaaS-сервиса - формат времени, валюту тарифов, интерфейс поддержки и доступность нужных функций в регионе.
Переключатель языка или рынка должен оставаться понятным и видимым. Не заставляйте посетителя искать локаль только через автоперенаправление по IP. Геолокация может ошибаться из-за VPN, мобильного оператора, поездки или корпоративной сети.
Рекомендация сменить версию полезна, если пользователь может отказаться и продолжить просмотр текущей страницы.
Желательно, чтобы при переключении пользователь попадал на эквивалент текущего материала, а не на главную.
Если он читает карточку товара, выбор другой страны должен открыть соответствующую карточку, если она существует. Hreflang помогает описать ту же связь для поисковой системы, а переключатель реализует её в интерфейсе.
Оба механизма должны опираться на согласованный набор локалей.
Статистика, показатели и оценка эффекта
У hreflang нет универсального процента прироста трафика, который можно обещать каждому проекту. Результат зависит от того, насколько заметной была исходная проблема, сколько пользователей попадали на неверную локаль, какова доля запросов по регионам и насколько качественно отличаются версии.
Поэтому корректнее устанавливать базовые показатели до запуска и сравнивать их после того, как поисковые системы обработали изменения.
Для оценки подготовьте выборку важных URL в каждой локали и фиксируйте, какая страница показывается по целевым запросам и регионам.
Сравнивайте показы, переходы, позиции, долю целевых URL в поисковых результатах и поведение пользователей после перехода. В аналитике можно отслеживать отказы, завершение покупки, выбор региона и долю переходов через переключатель, если события настроены корректно.
Рассмотрим условный интернет-магазин, у которого есть русская версия для России и отдельная версия для Казахстана. До настройки пользователи из Казахстана регулярно попадали на российские карточки с рублёвыми ценами. После внедрения можно наблюдать не только общий органический трафик, но и долю сеансов, начавшихся на казахстанских URL, корректность показанной валюты и конверсию в оформление заказа.
Это пример модели измерения, а не обещание конкретного результата.
Для проверки качества самой разметки полезны операционные показатели: количество URL с неразрешёнными ошибками, процент страниц с обратными ссылками, доля URL, которые возвращают 200, число устаревших адресов и полнота групп альтернатив.
Например, команда может задать внутренний целевой уровень - проверить все критичные шаблоны перед релизом и автоматически блокировать публикацию, если новая страница ссылается на несуществующую локаль.
Изменения оценивайте в разумном временном окне: поисковым системам необходимо обнаружить и обработать обновлённые страницы и карты сайта. Сравнивайте сопоставимые периоды и учитывайте сезонность, обновление ассортимента, рекламные кампании, изменения алгоритмов и спроса.
Если сразу после запуска трафик изменился, это не доказывает причинную связь с hreflang без проверки остальных факторов.
Пошаговый план внедрения
Практический процесс начинается с определения рынков и страниц, а заканчивается регулярным контролем. Важно не ограничиваться вставкой тегов: необходимо убедиться, что перевод опубликован, URL правильный, версии связаны в обе стороны и поисковый робот может их обработать.
Ниже приведён рабочий порядок, который можно адаптировать под размер сайта.
Опишите целевые аудитории. Зафиксируйте языки и регионы, для которых действительно существуют отдельные предложения.
Составьте карту локализованных страниц. Свяжите между собой только страницы с одинаковым назначением и соответствующим содержанием.
Проверьте URL и индексируемость. Убедитесь, что страницы отвечают корректно и не закрыты случайными техническими директивами.
Согласуйте canonical. Самостоятельные локализованные страницы обычно должны указывать на собственный канонический адрес.
Выберите метод внедрения. Определите, будет ли источник истины в HTML, XML-карте, HTTP-заголовках или в их документированном сочетании.
Добавьте самоуказание и взаимные связи. На каждой странице опишите все реальные альтернативы, включая саму себя.
Используйте x-default при наличии сценария по умолчанию. Указывайте его на полезный нейтральный URL или селектор локали, а не формально.
Запустите технические и смысловые проверки. Проверяйте коды, ответы сервера, взаимность и соответствие страниц.
Наблюдайте за результатом и обновляйте данные. Встройте проверку новых переводов в процесс публикации и миграций.
Для небольшого сайта основные действия можно выполнить одной командой с доступом к CMS и аналитике. Для крупной платформы потребуется формализованная схема локалей, генерация из данных каталога и автоматические тесты.
Независимо от масштаба, ручная проверка нескольких ключевых URL полезна: она помогает увидеть то, чего не замечает синтаксический валидатор.
Если обнаружена ошибка, исправляйте её в источнике данных или шаблоне, а не только на отдельных страницах.
Массовая проблема обычно возникла из-за общего правила: неверного преобразования кода, формирования URL или фильтрации переводов. Исправление на уровне источника предотвращает повторение дефекта при следующем обновлении сайта.
Краткий контрольный список перед запуском
Для каждого кода используется корректная комбинация языка и, при необходимости, региона.
Все адреса абсолютные, канонические, доступные и ведут непосредственно на конечную страницу.
Каждая страница указывает на себя и на подходящие существующие альтернативы.
Связи одинаковы и взаимны для всех URL одной группы.
Локализованные версии не канонизируются без причины на один общий URL.
В hreflang нет страниц с ошибкой, редиректов, закрытых документов и неподходящих категорий.
x-defaultведёт на реальную страницу, полезную для аудитории без соответствующей локали.HTML, sitemap и HTTP-заголовки не содержат противоречащих друг другу списков.
Для новых переводов, изменения URL и удаления страниц предусмотрен процесс обновления связей.
В итоге настройка hreflang не просто набор тегов, а согласованная модель локализованного сайта. Она начинается с точных соответствий между страницами, продолжается корректной технической генерацией и поддерживается процессами публикации и контроля.
Чем больше рынков и URL, тем важнее автоматические проверки и единый источник данных.
Перед запуском полезно задать себе три вопроса: отвечает ли каждая версия потребностям заявленного языка и региона; можно ли перейти между эквивалентными страницами без потери контекста; и совпадает ли разметка с реальным состоянием URL, canonical и индексации? Если на все три вопроса есть уверенный ответ, hreflang становится понятной подсказкой для поисковых систем и полезной частью международной архитектуры сайта, а не формальной разметкой, которую приходится постоянно исправлять.
Примечание: hreflang является сигналом для поисковых систем, а не гарантией выбора конкретного URL. Итоговое представление страниц зависит также от их доступности, содержания, canonical, качества локализации и других факторов.
