Если клиенты пишут тебе по-польски, по-украински и по-английски, а сайт существует в трёх версиях, hreflang — это разметка, которая говорит Google: это варианты одного и того же содержания, а не три разных сайта. Без неё поисковик может показать украиноязычному посетителю польскую версию, и твой украинский текст останется практически невидимым, хотя он есть.
На этой странице: что hreflang делает на самом деле (и чего не делает), три способа его настроить, ошибки, которые чаще всего ломают всю конфигурацию, и способ самому проверить свой сайт, а не гадать.

Фирма в Варшаве говорит на трёх языках, а сайт — на одном
Ресепшен отвечает на звонки по-польски, по-украински и по-английски — потому что именно эти люди звонят. Сайт обычно отстаёт: одна польская версия, иногда английская подстраница с переведённым меню, а украинская версия — если вообще существует — висит отдельно, без технической связи с остальными.
Результат двойной. Во-первых, клиент, который ищет по-украински, часто вообще не попадает на твой сайт, потому что у Google нет сигнала о существовании украинской версии и о том, чему она соответствует. Во-вторых, даже если он попадает на сайт, он может увидеть версию не на своём языке, потому что без правильной настройки поисковик выбирает страницу по своим сигналам, а не по твоему замыслу. Анализ сайтов варшавских фирм показывает: именно такие технические пробелы, а не нехватка контента, чаще всего объясняют, почему клиенты не оставляют заявок — они попадают на сайт, но не на ту версию, которая отвечает на их вопрос на их языке.
Что hreflang реально говорит Google (и чего не делает)
Hreflang — это аннотация, которая сообщает Google о существовании языковых или региональных вариантов одной и той же страницы, чтобы поисковик мог показать посетителю версию, подходящую под его язык или регион. Это вся его работа — hreflang не переводит текст, не улучшает его качество и не заменяет сам перевод.
Google не определяет язык страницы по hreflang или атрибуту lang
Это самое частое неверное предположение: hreflang не сообщает Google, на каком языке написана страница. Google определяет язык страницы собственными алгоритмами, анализируя реальный текст, а не декларацию в коде. Отсюда практическое следствие: если пометить страницу как hreflang="uk", а текст на ней остаётся польским, hreflang это не исправит. Прежде чем заниматься разметкой, убедись, что содержание действительно на заявленном языке — не наполовину, не только в меню.
Три способа настройки — достаточно одного
Google принимает три метода передачи информации о языковых версиях. Не нужно использовать все сразу — достаточно одного, применённого последовательно по всему сайту.
Теги в head
Самый популярный способ для HTML-страниц: в разделе head каждой языковой версии размещается набор тегов link rel="alternate" hreflang="...", по одному на каждую версию, включая ту, на которой находишься. Это хорошо работает для десятка-другого страниц — при большем числе код head начинает разрастаться.
HTTP-заголовки и карта сайта
Для файлов без раздела head — например, PDF — информацию о языковых версиях можно передать HTTP-заголовком в ответе сервера. Третий путь — прописать связи hreflang прямо в XML-карте сайта: удобно при большом количестве страниц, потому что обновляется один файл вместо кода каждой страницы отдельно. Выбор метода зависит от того, кто ведёт сайт день за днём: для корпоративного сайта на одном движке проще всего держаться тегов в head.
Правила, обязательные при любом способе

Каким бы способом ты ни пользовался, действуют одни и те же технические правила, описанные Google Search Central:
- каждая языковая версия должна перечислять саму себя и все остальные версии — не только указывать на другие, но и декларировать себя;
- адреса должны быть полными, вместе с протоколом
https://— относительные пути не работают; - код языка записывается в формате ISO 639-1 (например,
pl,uk,en), а регион — опционально — в формате ISO 3166-1 Alpha 2 (например,pl-PL, когда нужно различить именно регион, а не только язык).
Для трёх версий — польской, украинской и английской — это значит, что в коде польской страницы должны стоять три тега: один указывает на неё саму, второй — на украинскую версию, третий — на английскую. Точно такой же набор повторяется в коде украинской и английской версий.
x-default — страница для языков, которые ты не перечислил
Значение x-default в атрибуте hreflang указывает страницу, которую Google должен показать посетителям с языками, не охваченными ни одной из перечисленных версий — например, посетителю, который пишет по-немецки, если у тебя есть только pl, uk и en. Чаще всего x-default ведёт на страницу выбора языка или на версию фирмы по умолчанию — обычно польскую.
x-default не обязателен, но без него посетители за пределами трёх поддерживаемых языков попадают в поисковик без чёткого указания, какую версию им показать, — а это увеличивает риск, что они окажутся на случайной подстранице вместо главной. Это тот же тип проблемы, что и с доступностью сайта и онлайн-заказа: посетитель попадает на сайт, но не может легко найти то, зачем пришёл.
Частые ошибки, которые ломают hreflang
Настройка hreflang хрупкая: одного пропущенного элемента в одной версии достаточно, чтобы обесценить всё остальное.
Отсутствие обратных ссылок
Это ошибка номер один по документации Google: если страница X указывает на страницу Y как на свой языковой вариант, страница Y обязана указывать обратно на X. Если это отсутствует хотя бы для одной пары версий, Google может проигнорировать аннотации — не только для этой неполной пары, а потенциально для всего набора. Типичный сценарий: добавляешь новую украинскую версию и прописываешь в ней ссылки на польскую и английскую, но забываешь обновить уже существующие польскую и английскую версии, чтобы они тоже указывали на новую украинскую. Итог: новая версия так и не начинает технически работать так, как должна.
Вторая типичная проблема — hreflang указывает на адрес, которого уже нет или никогда не было, например после смены структуры адресов сайта без обновления разметки. Google натыкается на ошибку 404 вместо обещанной языковой версии и начинает относиться ко всему набору с недоверием.
Перевод только меню — это дубль контента
Частое сокращение пути: перевести навигацию, подвал и кнопку «заказать», а остальной текст оставить по-польски, посчитав это достаточным для «английской версии». С точки зрения поисковика это вообще не отдельная языковая версия — это почти идентичный текст по другому адресу, то есть дублирующийся контент, явление, против которого предостерегает руководство Google по SEO, рекомендуя сокращать такие повторы и использовать описательные адреса URL.
rel="canonical" и когда его применять
Для дублирующихся или очень похожих страниц Google позволяет указать предпочитаемый канонический адрес, в том числе через rel="canonical". Это инструмент для другой задачи, чем hreflang: canonical говорит «это одно и то же содержание, учитывай только этот адрес», а hreflang говорит «это разные языки одного содержания, показывай каждому его версию». Перепутать их — например, поставить canonical с украинской версии на польскую при том, что тексты реально различаются, — может скрыть украинскую версию из результатов вместо того, чтобы её продвинуть.
Что переводить обязательно, а что можно отложить
Не каждая страница требует полного перевода с первого дня, но несколько элементов обязательны в тот момент, когда ты вообще заявляешь языковую версию: описания услуг, которые клиент должен понять до обращения, цены или принцип их формирования, контактные данные и условия оказания услуги. Если это остаётся по-польски на «английской» странице, это не английская версия — это страница с английским заголовком.
Писать этот текст сразу на трёх языках, а не пришивать перевод потом, — задача копирайтинга на всю страницу (Копирайтинг): заголовки, предложение и призывы к действию согласованы в каждой версии, а не отдельные абзацы, отправленные переводчику без контекста остальной страницы. Та же проблема рассогласования видна в данных, которые читают ИИ-ассистенты — расхождение между версиями вредит на любом языке, независимо от отрасли. Согласованное описание фирмы в каждой версии поддерживает и GEO / AI-видимость: системы, читающие сеть, видят одну историю о фирме, а не три разные. Стоит также следить, чтобы массовое создание новых языковых страниц без реального содержания не превратилось в проблему, о которой предупреждает Google в рекомендациях о генерации контента в большом масштабе — страница без ценности для пользователя на этом языке не поможет, даже с технически правильным hreflang.
Сделай сам: таблица страниц и проверка обратных ссылок
Прежде чем считать настройку готовой, проведи простейший аудит: таблицу, где строки — ключевые страницы, а столбцы — языковые версии.
| Страница | pl | uk | en | x-default |
|---|---|---|---|---|
| Главная | ✓ | ✓ | ✓ | ведёт на pl |
| Услуги / предложение | ✓ | ✓ | ✓ | ведёт на pl |
| Цены | ✓ | ✓ | — | ведёт на pl |
| Контакты | ✓ | ✓ | ✓ | ведёт на pl |
Пустая клетка означает одно из двух: либо версии на этом языке не существует и ей не нужен hreflang вовсе, либо она существует, но кто-то забыл добавить её в набор взаимных ссылок — и вот этот второй случай ломает всё.
Сколько ссылок нужно проверить, легко посчитать формулой: число взаимных ссылок = N × (N-1), где N — число языковых версий одной страницы. Для трёх версий (pl, uk, en) каждая версия указывает на остальные две, значит N-1 = 2, а направленных пар для проверки 3 × 2 = 6, то есть: pl-uk, pl-en, uk-pl, uk-en, en-pl, en-uk. Для четырёх версий это было бы уже 4 × 3 = 12 направлений — поэтому при добавлении новой языковой версии стоит пересмотреть всю таблицу, а не просто дописать строку.
Последний шаг — одна строка во внутренней инструкции: кто обновляет все языковые версии, когда меняется цена или состав услуги. Без этого регулярно возникает ситуация, когда польская версия уже с новой ценой, а английская и украинская — со старой. Тот же вопрос ответственного стоит закрыть и при автоматизации процессов в компании в целом — hreflang лишь одно из многих мест, где отсутствие владельца задачи тихо портит результат.
Как это выглядит, когда систему строит сама себя
Публикация новой страницы выглядит иначе, когда hreflang — не ручной чек-лист:
- 01польская версия готова
- →02версии uk и en подключены
- →03система строит ссылки сама
- →04проверка идёт при публикации
Надёжнее всего, когда hreflang для каждой пары строится автоматически из одного источника, а обратные ссылки проверяются до публикации, чтобы описанная выше ошибка не попадала на живую страницу. Правильный hreflang не обещает позиций — это устранение технического препятствия, которое всё равно не зависит от качества текста. Если ты строишь Сайты и магазины на нескольких языках, UI/UX-дизайн переключателя языка тоже важен — посетитель должен легко попасть в свою версию, а не только поисковик, а отдельный Лендинг под кампанию на каждом языке требует той же дисциплины, что и главная страница. Видимость самих переведённых страниц в выдаче — это уже задача SEO и карт (SEO и карты). Посмотри, как это работает, в услуге Сайты и магазины, пройди оценку — какие звонки и заявки теряются у тебя из-за языковых версий — или спроси про конкретный сайт.
Частые вопросы
Нужен ли отдельный домен для каждой языковой версии?
Нет. Hreflang работает независимо от того, живут ли языковые версии на отдельных доменах, поддоменах (en.firma.pl) или в подпапках (firma.pl/en/) — единственное условие: у каждой версии должен быть полный, постоянный URL и правильно перечисленные остальные версии.
Что такое x-default и когда его стоит добавить?
x-default — это значение hreflang, указывающее страницу для посетителей с языком, не охваченным ни одной из перечисленных версий. Стоит добавить его, если у тебя, скажем, три версии (pl, uk, en), но идёт трафик и из других стран — x-default отправит их на страницу выбора языка или версию по умолчанию вместо случайной подстраницы.
Определит ли Google сам, что моя страница на украинском?
Google определяет язык страницы, анализируя само содержание, а не тег hreflang или атрибут lang в коде. Значит, если страница должна быть украинской, текст на ней действительно должен быть украинским — сам тег этого не заменит.
Что будет, если я уберу одну языковую версию с сайта?
Тогда нужно убрать ссылки на неё со всех остальных версий, которые раньше на неё указывали. Оставленная мёртвая ссылка hreflang на уже несуществующую страницу — одна из типичных ошибок, из-за которых Google может начать игнорировать весь набор аннотаций.
Достаточно ли перевести только меню и кнопку заказа?
Нет — с точки зрения поисковика это всё ещё в основном тот же текст по другому адресу, то есть дубль, а не отдельная языковая версия. Обязательно переводить минимум описания услуг, цены, контактные данные и условия — иначе у заявленной версии нет реального содержания, которое можно показать.
Как проверить, что hreflang на моём сайте вообще работает?
Самый простой способ без внешних инструментов — открыть исходный код каждой языковой версии и вручную проверить, что она перечисляет саму себя и все остальные версии с полными адресами — ровно как в таблице из раздела «Сделай сам» выше. Достаточно одной отсутствующей обратной ссылки, чтобы вся пара перестала работать.