Logo
Hreflang для мультимовного сайту: як налаштувати без типових помилок

Hreflang для мультимовного сайту: як налаштувати без типових помилок

Hreflang підказує Google, яку мовну або регіональну версію сторінки кому показувати: користувачу з українським інтерфейсом дати /ua/, з англійським /en/. Без цієї розмітки мультимовний сайт часто ранжується «не тією» версією: у видачі для Польщі спливає українська сторінка, а англійська взагалі не сприймається як окрема. Нижче розбираємо, що атрибут hreflang робить насправді, три способи його прописати, які коди мов і регіонів коректні, і де мультимовні сайти зазвичай ламають розмітку.

SEO-спеціаліст перевіряє теги hreflang мультимовного сайту в коді сторінки на екрані ноутбука

Що робить hreflang і чого він не робить

Атрибут hreflang зв'язує між собою сторінки з однаковим змістом різними мовами або для різних країн. Google читає цей зв'язок і для кожної країни чи мови інтерфейсу підставляє у видачу найдоречнішу версію. Ключове слово тут «підставляє»: усі версії вже мають бути проіндексовані, hreflang лише допомагає вибрати одну з них під конкретного користувача.

Чого hreflang не робить, і саме тут найбільше плутанини:

  • Не перенаправляє. Це не редирект і не заміна автоматичного вибору мови на сайті. Людина зайде туди, куди клікнула.
  • Не перекладає і не оцінює якість перекладу. Якщо на сторінці /en/ лишився український текст, Google це побачить, а hreflang нічим не допоможе.
  • Не збирає версії в одну для ранжування. Кожна сторінка ранжується сама по собі, розмітка тільки прибирає конкуренцію між ними за одного користувача.
  • Не замінює canonical. Це два різні сигнали, і працюють вони лише разом і без суперечностей.

Практичний висновок простий. Якщо у вас одна мова і один ринок, hreflang не потрібен зовсім. Він потрібен, коли є хоча б дві мовні версії або одна мова для кількох країн з різними цінами чи доставкою (en-US і en-GB, наприклад).

Три способи вказати hreflang: який обрати

Google приймає розмітку з трьох джерел, і всі три рівноцінні. Вибирати треба один спосіб на весь сайт, бо змішування дає конфлікти, які потім важко знайти.

Тег link у head сторінки

Найпоширеніший варіант для сайтів на CMS. На кожній версії сторінки в <head> перелічують усі версії, включно з нею самою:

<link rel="alternate" hreflang="uk" href="https://site.ua/ua/dostavka/" />
<link rel="alternate" hreflang="ru" href="https://site.ua/dostavka/" />
<link rel="alternate" hreflang="en" href="https://site.ua/en/delivery/" />
<link rel="alternate" hreflang="x-default" href="https://site.ua/ua/dostavka/" />

Плюс: видно в коді, легко перевірити очима. Мінус: на сайті з 20 000 сторінок і п'ятьма мовами кожна сторінка отримує п'ять-шість рядків, тому це має генерувати CMS, а не руки.

HTTP-заголовок Link

Для файлів без HTML, наприклад PDF-каталогів, у відповіді сервера віддають заголовок:

Link: <https://site.ua/ua/catalog.pdf>; rel="alternate"; hreflang="uk", <https://site.ua/en/catalog.pdf>; rel="alternate"; hreflang="en"

Рідкісний спосіб, налаштовується на рівні сервера. Для звичайних сторінок ним не користуються.

Розмітка в sitemap.xml

Кожен <url> у карті сайту доповнюють елементами <xhtml:link> зі списком усіх версій. Приклад для однієї сторінки:

<url><loc>https://site.ua/ua/dostavka/</loc><xhtml:link rel="alternate" hreflang="uk" href="https://site.ua/ua/dostavka/"/><xhtml:link rel="alternate" hreflang="en" href="https://site.ua/en/delivery/"/></url>

Плюс: HTML сторінок не «пухне», усе лежить в одному файлі, який зручно генерувати й перевіряти скриптом. Мінус: карта росте, і на великих каталогах її доводиться дробити на кілька файлів. Ми в Query для магазинів з десятками тисяч сторінок частіше обираємо саме sitemap, для невеликих сайтів послуг зручніше link у head.

x-default і взаємність: два правила, без яких розмітка не працює

Взаємність означає: якщо сторінка A вказує на сторінку B як на англійську версію, то сторінка B має вказувати на A як на українську. Односторонній зв'язок Google ігнорує повністю, і це найчастіша причина, чому «hreflang прописали, а нічого не змінилось». Перевіряти треба саме пари, а не окремі сторінки.

x-default каже, яку версію показувати тим, чия мова й країна не збігаються з жодною з перелічених. Для українського сайту з uk/ru/en логічно віддавати в x-default або англійську версію (для іноземців), або сторінку вибору мови, якщо вона є. Ставити x-default на українську теж припустимо: тоді невизначені користувачі побачать основну версію. Головне, щоб x-default був один і вів на реальну сторінку з кодом 200.

Які коди мов і регіонів писати

Мова записується за ISO 639-1 (дві літери), регіон за ISO 3166-1 Alpha-2 після дефіса. Регіон без мови вказувати не можна: hreflang="UA" невалідний, потрібно uk-UA. Найбільше помилок роблять з українською: її код uk, а не ua. Значення ua це домен, а не мова, і Google його не розпізнає.

КодЩо означаєКоли доречний
ukУкраїнська, будь-яка країнаСтандарт для української версії
uk-UAУкраїнська для УкраїниЛише за наявності іншої української версії
ruРосійська, будь-яка країнаВерсія без прив'язки до країни
enАнглійська, будь-яка країнаОдна англійська для всіх
en-GB, en-USАнглійська для Британії / СШАРізні ціни, валюта, доставка
x-defaultВерсія «для всіх інших»Один раз у кожному наборі

Якщо у вас одна англійська версія, пишіть просто en. Дописувати регіон «про запас» не варто: en-US звужує аудиторію, і британський користувач формально під неї не підпадає, хоча Google і намагається підбирати найближчу мову.

Залиште заявку

Вкажіть ваше ім'я та email, наші менеджери зв'яжуться з Вами найближчим часом
Надсилаючи форму, ви погоджуєтесь з політикою конфіденційності.

Типові помилки hreflang і як їх виправити

За нашими спостереженнями, на більшості сайтів, що приходять на технічну оптимізацію, розмітка або є з помилками, або її немає взагалі. Помилки повторюються від сайту до сайту.

ПомилкаЧим загрожуєЯк виправити
Немає зворотного посиланняGoogle ігнорує паруОдин список версій для всіх сторінок
Веде на неканонічну сторінкуСигнали суперечатьЛише канонічні URL
Відносні URLРозмітка неваліднаАбсолютні адреси з доменом
Конфлікт із canonicalВерсія зникає з видачіКожна версія канонічна сама на себе
Різні мови на одному URLGoogle не пов'язує версіїОдна мова = одна адреса
Код ua замість ukВерсія без розміткиЗамінити код у шаблоні
Веде на noindex, 404, редиректПара розпадаєтьсяПеревіряти версії перед виводом
Перекладу немає, hreflang єПосилання на неіснуючеЛише реально перекладені сторінки
Маркетолог порівнює мовні версії сторінки сайту на двох моніторах в офісі

Як перевірити, що hreflang працює

  1. Подивіться код сторінки або sitemap і переконайтесь, що набір версій однаковий на кожній з них.
  2. Прогоніть сайт краулером (Screaming Frog, Sitebulb, Serpstat Audit): вони показують відсутні зворотні посилання, невалідні коди й hreflang на неканонічні адреси одним звітом.
  3. У Google Search Console окремого звіту hreflang давно немає, але «Перевірка URL» покаже, яку версію Google вважає канонічною і чи індексується сторінка. Якщо канонічна не та, що ви очікували, шукайте конфлікт із canonical.
  4. Наберіть запит у Google з VPN або через параметри &gl=gb&hl=en і подивіться, яка версія у видачі. Це найчесніший тест.

Офіційні вимоги і приклади для всіх трьох способів зібрані в документації Google про локалізовані версії. Якщо валідатор і документація розходяться, правий Google.

Мультимовний сайт для України: uk, ru, en

Типова конфігурація українського бізнесу: українська основна, російська для частини аудиторії, англійська для експорту або іноземних клієнтів. Кілька практичних рекомендацій, які ми даємо в таких проєктах.

  • Українську робіть основною без префікса або з /ua/, але послідовно на всьому сайті. Змішана структура, де частина сторінок з префіксом, а частина без, руйнує розмітку.
  • Російську версію позначайте ru без регіону. ru-UA виправданий лише тоді, коли є ще ru-версія для іншої країни.
  • Англійська версія має бути перекладена насправді, з локалізованими цінами і контактами. Автопереклад з половиною українських рядків Google бачить, і така версія скоріше шкодить. Якщо власного ресурсу немає, англомовні тексти простіше замовити одразу, ніж переробляти потім.
  • x-default віддавайте на англійську, якщо розраховуєте на іноземців, або на українську, якщо сайт для внутрішнього ринку.
  • Неперекладені сторінки виключайте з набору hreflang замість того, щоб ставити посилання на українську під виглядом англійської.

З чого почати

  1. Виписати всі мовні версії і переконатись, що кожна живе на власному URL з кодом 200 і canonical на себе.
  2. Обрати один спосіб розмітки: link у head для невеликих сайтів, sitemap для великих каталогів.
  3. Згенерувати набори з однієї бази, щоб взаємність була гарантована, а не «за пам'яттю».
  4. Додати x-default і перевірити коди: uk, а не ua.
  5. Прогнати краулером, виправити помилки, за три-чотири тижні перевірити видачу по країнах.

Hreflang не додає позицій, він прибирає втрати. Коли правильна версія показується правильному користувачу, росте CTR і зникають відмови «не та мова». Для сайту з двома-трьома мовами це один-два дні роботи розробника і півдня на перевірку, і ця інвестиція окупається стабільно.

Інші статті

Інші послуги

Зв'яжіться з нами
Месенджери