seo·matrix
← Все статьи

Многоязычный GEO и hreflang для AI-ответов

· 9 мин чтения · Автор Михаил Кузьмицкий

GEOhreflangmultilingualAI

Markdown-версия ↗

Спойлер в одну строку для нетерпеливых: чтобы движок цитировал нужную языковую версию страницы, нужны взаимная связка hreflang, честная локализация вместо машинного дубля и стабильные имена сущностей, а ниже — про то, почему машинный перевод без локализации хуже, чем его отсутствие.

Задача

Смотрю связку hreflang у одного трёхъязычного сайта (пример из практики, к нему вернусь ниже): русская страница ссылается на английскую и испанскую, английская — на русскую, а испанская не ссылается ни на кого, потому что при переезде шаблон потерял пару строк. Один тег — и хорошо написанная испанская версия конкурирует сама по себе, как ничья. А вся работа с языками тут ровно про одно: чтобы движок взял в ответ ту версию страницы, какую надо.

Когда одна тема вышла на трёх языках, выбор решают три вещи: связка между версиями, язык и место самого вопроса, а также то, есть ли у каждой версии свой смысл, а не тень английской страницы. Сделаешь верно — вопрос на испанском выведет испанскую страницу, сделаешь плохо — три версии тихо спорят за одну цитату, или модель пересказывает перевод, которого ты не писал.

Многоязычный GEO и hreflang для AI-ответов

Этот сайт выходит сразу на трёх языках, так что всё описанное ниже я проверяю на себе, и не всё из этого проходило с первого раза.

Чем это отличается от обычной многоязычности

Классический вопрос звучит так: какой адрес Google покажет испаноязычному человеку? Вопрос про ИИ-ответы жёстче: из какого языкового тела движок вытянет предложение и припишет ли он его нужной локали, потому что единица борьбы сместилась от ссылки в списке к куску текста, а у куска есть язык.

Почему это хуже, чем просто плохая позиция? Потому что модель, которая тянет определение с твоей английской страницы, чтобы ответить на русский запрос, не оставляет тебе даже клика, который можно было бы перенаправить, — ссылку в выдаче хотя бы видно!

Отсюда двусторонняя задача: сделать каждую локаль независимо читаемой и цитируемой — и одновременно сделать связь между локалями явной, чтобы движок понимал, что это один материал, а не три тонких дубля.

Как движок выбирает вариант

Опубликованного правила тут нет, но наблюдаемые входы, кажется, те же, что у обычного извлечения, примерно в таком порядке.

СигналЧто говорит моделиГде живёт
Язык запросана каком языке отвечатьсам вопрос человека
Связка hreflangкакие адреса — та же страница на других языкахшапка страницы или карта сайта
Атрибут языка и текстреальный язык этого документасама страница
Локальные сущностичто вариант правда про эту темузаголовки, тело, разметка
Региональные подсказкикакой региональный вариант подходитhreflang, домен, адрес

Язык запроса главенствует: спросили по-испански — ответят по-испански, а всё остальное определяет, найдёт ли движок твою испанскую страницу или переведёт английскую на лету. Связка hreflang тут работает как карта, а содержимое по локалям — как то, что делает каждый узел этой карты достойным отдельной цитаты.

hreflang: правила не поменялись

Штука эта старше ИИ-ответов, но делает ровно то, что нужно: она заявляет, что вот эти адреса — одна и та же страница на разных языках. Движок трактует их как одну концепцию с несколькими языковыми лицами, а не как дубли, дерущиеся между собой.

Правила остались прежними, и их четыре.

Взаимность. Если английская версия ссылается на испанскую, испанская обязана ссылаться обратно, а односторонняя связь просто игнорируется.

Самоссылка. Каждая страница обязана перечислять саму себя в своей же связке, иначе группа собирается неполной.

Правильные коды. Язык и, если нужно, регион через дефис — не выдуманные сокращения и не подчёркивание вместо дефиса.

Один запасной вариант. Ровно один на всю связку, и он отвечает за те языки, которых ты не публиковал вовсе.

Отдавать всё это можно в шапке страницы, в карте сайта или в заголовках ответа, но выбрать стоит что-то одно и дальше держаться этого выбора. Мой чекер существует ровно потому, что самый частый провал — сломанный обратный тег, молча выбрасывающий целую локаль из связки!

Тихий провал: каннибализация между языками

Обычную каннибализацию — две страницы на одном языке за один запрос — все знают, я разбирал её отдельно, а вот межъязыковая версия коварнее.

Бывает она, когда версии — это почти одинаковые машинные переводы без связки между собой: движку они кажутся несколькими тонкими страницами на одну тему, уверенность размывается между ними, и ни одна не становится уверенной цитатой.

Лечение тут не в удалении — тебе нужны все три языка. Лечение в том, чтобы связать их взаимной разметкой и сделать каждую локаль по существу самостоятельной страницей.

Сущности вместо переведённых строк

Сущность — это то, что движок узнаёт вне зависимости от слова: продукт, фирма, место. В разных языках у одной сущности разные внешние формы, но резолвиться они должны в один и тот же узел, и работают тут два правила.

Первое: держи имена собственные и канонические названия продуктов стабильными между локалями, чтобы сущность пережила перевод, — локализуется обычно проза вокруг них, а не они сами.

Второе: локализуй вспомогательные сущности. Цитируй источники на языке варианта, бери региональные примеры, ссылайся на местные сервисы, и тогда страница будет правда про тему на этом языке, а не эхом английской. Это та же дисциплина фактов-связок, применённая по локалям.

Как это сделано у меня

Этот пост существует на трёх языках, и каждый из них — реальная локализация, а не прогон через переводчик. Каждая версия ссылается на блог и инструменты своей локали, все три делят один служебный ключ, и сборка сама связывает их в общую группу.

Последнее — ленивая победа, и я её рекомендую: выводи связку из модели контента, а не поддерживай руками. Переводишь пост, сохраняешь тот же ключ, обратные теги генерируются сами и не разъезжаются со временем, и это, пожалуй, единственное место в многоязычности, где лень окупается целиком!

Что чинить первым

Список из семи пунктов пугает, поэтому дам порядок по цене и отдаче.

Что обходится дороже всего? Сломанная связка: один тег чинится за час, а даёт больше, чем месяц работы над текстами, потому что без него движок просто не знает, что у страницы есть братья на других языках.

Что идёт следом? Атрибут языка в коде — тоже минутная правка и тоже из тех, что ломаются молча: тема поставила английский по умолчанию, и вся русская версия читается движком как английская!

А что откладывать можно? Локализацию источников и примеров. Это правильная работа, но долгая, и до неё имеет смысл добираться, когда техника уже в порядке.

Есть ли смысл вообще, если языков только два? Есть, и даже больший: с двумя языками цена одной ошибки выше, потому что выпадение одной локали означает потерю половины корпуса, а не трети.

Отдельно про порядок публикации: лучше выпустить один язык хорошо, чем три плохо, потому что две пустые локали не добавляют охвата, зато размывают уверенность движка и тянут вниз ту версию, которая была написана всерьёз.

Чек-лист

  • У каждой локализованной страницы взаимная связка со ссылкой на саму себя.
  • Коды языков по стандарту, регион указывается только когда он важен.
  • Ровно один запасной вариант на связку.
  • Атрибут языка совпадает с реальным языком страницы.
  • Каждая локаль — настоящая локализация, а не голый машинный дубль.
  • Имена собственные стабильны, вспомогательные сущности и источники локализованы.
  • Внутренние ссылки остаются внутри локали.
Сколько локалей выпадает из связки из-за одного сломанного обратного тега (иллюстративно)
Взаимная связка 3 яз.
Нет одного тега 1 яз.

источник: внутренние аудиты, 2026

Дело тут не в точных числах, а в форме: один недостающий обратный тег схлопывает трёхъязычную группу до того варианта, который движок случайно нашёл, и обнуляет весь смысл публикации на трёх языках.

Как это выглядит на живом сайте

Возвращаюсь к примеру из начала, потому что он объясняет всё лучше схем.

У сайта три языка: русская версия висит на своём адресе, английская на своём, испанская на третьем, и тексты при этом неплохие — каждый из них писали руками, а не гнали через переводчик.

Смотрю связку: русская страница ссылается на английскую и испанскую, английская ссылается на русскую, а испанская не ссылается ни на кого, потому что при переезде шаблон потерял пару строк.

Что в такой ситуации видит движок? Пару из двух связанных страниц и одну отдельную, ничью, поэтому испанская версия конкурирует сама по себе и почти всегда проигрывает, хотя текст в ней ровно такой же хороший.

Сама правка занимает примерно час, а результат становится виден через месяц, когда страницы переобойдут. Никакой магии тут нет, и это, пожалуй, самый частый случай из всех, что я видел, — обидно частый!

Про порядок языков

Ещё один вопрос, который решают на старте и потом жалеют: с какого языка начинать, если ресурсов хватает только на один?

Ответ у меня простой и не самый модный: начинать надо с того языка, на котором ты сам можешь писать хорошо и быстро, а не с того, где рынок больше. Слабый текст на большом рынке проигрывает сильному тексту на малом, и никакая связка это не выправит.

Второй язык имеет смысл добавлять тогда, когда первый уже даёт цитаты и понятно, что именно в нём работает: тогда ты переносишь не текст, а рабочую схему, и это заметно дешевле, чем угадывать заново.

И третий язык стоит брать только при живом спросе, который видно в цифрах, а не в мечтах. Пустая локаль стоит денег каждый месяц и не приносит ничего, кроме гордости за три флажка в шапке сайта (выскажу субъективное: гордость эта, наверное, самая дорогая из всех).

Коротко

Вся работа сводится к тому, чтобы ответы брали нужную версию и звали её по имени: язык запроса решает язык ответа, а связка и содержимое по локалям решают, какая именно из твоих страниц его заполнит.

Взаимная разметка со ссылкой на саму себя связывает локали в одну концепцию вместо конкурирующих дублей, а каннибализация между языками растёт из голых машинных дублей без связки.

Держи имена собственные стабильными, локализуй вспомогательные сущности и выводи разметку из модели контента, чтобы она не дрейфовала со временем.

Три флажка в шапке — это красиво, а три обратных тега — это работает.

Источники

  • Google Search Central, «Tell Google about localized versions of your page» — канонические правила hreflang: взаимность, запасной вариант, размещение.
  • Google Search Central, «Managing multi-regional and multilingual sites» — гайд по таргетингу на язык и регион.
  • BCP 47 / RFC 5646 — стандарт языковых тегов, который используют hreflang и атрибут языка.
  • Aggarwal et al., «GEO», KDD ‘24 — arXiv:2311.09735: цитируемость зависит от извлекаемости фрагмента, которую максимизирует чистое содержимое каждой локали.

Частые вопросы

Влияет ли hreflang на AI-ответы?

Не как фактор ранжирования, а как сантехника. hreflang заявляет, что твои языковые версии — это одна и та же страница, и движок ответов трактует их как одну концепцию с несколькими языковыми лицами, а не как тонкие дубли. Именно это позволяет ему достать твою испанскую страницу под испанский запрос, а не переводить английскую на лету.

Как AI-движок ответов выбирает языковой вариант?

Язык запроса главенствует: спросили по-испански — получишь по-испански. Ниже движок использует твой hreflang-кластер, чтобы найти нужный URL, язык и контент самой страницы для подтверждения, и региональные подсказки (x-default, es-MX, ccTLD), чтобы выбрать между региональными вариантами. Чистый контент на каждой локали делает вариант достойным цитаты.

Могут ли языковые версии каннибализировать друг друга в AI-ответах?

Да — когда это почти идентичные машинные переводы без связывающего hreflang. Движку они кажутся несколькими тонкими страницами на одну тему, уверенность размывается между ними, и ни одна не становится уверенной цитатой. Лечение — не удалять, а реципрокный hreflang плюс реальная локализация, чтобы каждая локаль была самостоятельной страницей.

Помогла статья?
Запустить SEO/GEO с seo·matrix → или заявка без Telegram →

Комментарии

  • …

Комментарии модерируются.