Міжнародне SEO
Hreflang що це і як налаштувати для багатомовного сайту
Hreflang — це сигнал, який підказує Google, яку мовну чи регіональну версію сторінки показати користувачу. Його додають через HTML-теги, HTTP-заголовки або XML-карту сайту.
Автор: Дослідницька команда SEORecheck, SEO-аудиториОпубліковано 8 хв читання
Hreflang — це атрибут (у HTML, HTTP-заголовку або XML-карті сайту), який повідомляє пошуковим системам, які мовні чи регіональні версії сторінки існують, щоб кожен користувач бачив у видачі потрібну. Hreflang не підвищує позиції: він підставляє в результати правильну URL-адресу й прибирає плутанину між перекладами.
Якщо на сайті є англійська, українська та іспанська версії однієї сторінки, саме hreflang пояснює Google, що /pricing, /ua/pricing і /es/pricing — це одна група альтернатив, а не три конкурентні сторінки. У цьому посібнику — коли hreflang потрібен, точний синтаксис, три способи впровадження, вибір структури URL і перевірка.
Що таке hreflang і що він насправді робить?
Google запровадив hreflang у 2011 році для сайтів, які показують той самий контент різними мовами або для різних регіонів. Його підтримують Google та Naver. Bing традиційно більше спирається на метатег content-language та інші сигнали, тож не варто розраховувати, що всі пошуковики читають hreflang однаково.
Коли Google правильно розуміє вашу групу hreflang, він може:
- показати українську URL-адресу користувачу, який шукає українською, навіть якщо в англійської сторінки більше посилань;
- вважати майже однакові регіональні сторінки (наприклад,
en-USіen-GBз різними цінами) альтернативами, а не дублікатами; - обʼєднати сигнали в межах групи, щоб у видачу потрапила правильна версія.
Чого hreflang не робить: це не фактор ранжування, він нічого не перекладає, не змушує Google індексувати сторінку й не скасовує canonical, що вказує на іншу адресу. Google Search Central називає hreflang сигналом, а не директивою, тож помилкові чи суперечливі анотації просто ігноруються.
Коли потрібен hreflang?
Hreflang потрібен, коли у вас є той самий або рівнозначний контент кількома мовами чи для кількох регіонів. Типові випадки:
- Повні переклади: сайт українською з англійською та польською версіями.
- Одна мова, різні ринки: сторінки
en-USіen-GBабоde-DEіde-ATз різною валютою, доставкою чи умовами. - Частково перекладені сайти: перекладено лише шаблон (меню, футер), а основний контент однаковий. За словами Google, це теж підходить.
Hreflang не потрібен одномовному сайту, сторінкам без відповідника іншою мовою і не рятує слабкий автоматичний переклад. Якщо перекладена сторінка не здатна ранжуватися сама по собі, hreflang цього не змінить.
Які коди мов і регіонів використовувати?
Значення hreflang — це код мови за ISO 639-1, за потреби з кодом регіону за ISO 3166-1 Alpha-2 через дефіс. Мова обовʼязкова, регіон — ні. Вказати лише регіон не можна.
| Значення | Що означає | Коректно? |
|---|---|---|
uk |
українська мова | Так |
ua |
це код країни, а не мови | Ні (використовуйте uk) |
uk-UA |
українська для України | Так |
de-AT |
німецька для Австрії | Так |
en |
англійська, будь-який регіон | Так |
en-GB |
англійська для Великої Британії | Так |
en-UK |
«UK» немає в ISO 3166-1 | Ні (використовуйте en-GB) |
pl-PL |
польська для Польщі | Так |
es-419 |
іспанська для Латинської Америки | Google приймає |
UA |
лише регіон | Ні |
x-default |
запасна версія для решти користувачів | Так |
Плутанина uk/ua — найпоширеніша помилка українських сайтів. Папка в URL може називатися /ua/ — це рішення щодо адреси, а не код мови. Але в hreflang має стояти uk або uk-UA. Регістр не важливий, хоча прийнято писати en-GB.
Що таке x-default і коли його використовувати?
x-default вказує Google, яку URL-адресу показувати, коли мова чи регіон користувача не збігаються з жодною оголошеною версією. Зазвичай це сторінка вибору мови або основна міжнародна версія.
Приклад: сайт має українську, англійську та іспанську версії. Користувач шукає німецькою й не підходить під жодну. Якщо x-default веде на англійську головну, Google має чіткий запасний варіант. Без нього Google обере сам — найчастіше нормально, але без вашого контролю.
Додавайте x-default на кожну сторінку групи з однаковою адресою. Це рекомендація, а не вимога, і вона особливо корисна, коли в корені сайту є вибір країни чи мови.
Як налаштувати hreflang: три способи
Google підтримує три рівноцінні способи. Для одного набору сторінок оберіть один — змішування підвищує ризик суперечностей.
Спосіб 1: теги <link> у <head>
Найпоширеніший варіант для HTML-сторінок. Кожна мовна версія перелічує всі версії, включно із собою:
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="uk" href="https://example.com/ua/pricing" />
<link rel="alternate" hreflang="es" href="https://example.com/es/pricing" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
Ті самі чотири рядки мають бути на /pricing, /ua/pricing і /es/pricing. Використовуйте абсолютні URL з протоколом і розміщуйте теги саме в <head>: невалідний елемент (зайвий <div> або незакритий тег, вставлений скриптом) може передчасно «закрити» head, і Google проігнорує все, що нижче.
Спосіб 2: HTTP-заголовок Link
Підходить для не-HTML файлів, наприклад PDF:
Link: <https://example.com/guide.pdf>; rel="alternate"; hreflang="en",
<https://example.com/ua/guide.pdf>; rel="alternate"; hreflang="uk",
<https://example.com/es/guide.pdf>; rel="alternate"; hreflang="es"
Спосіб 3: XML-карта сайту
Найкращий варіант для великих сайтів: розмітка не перевантажує шаблони, а карту легко генерувати з бази даних.
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/ua/pricing</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/pricing"/>
<xhtml:link rel="alternate" hreflang="uk" href="https://example.com/ua/pricing"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/pricing"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/pricing"/>
</url>
<!-- повторіть <url> для /pricing і /es/pricing з тим самим набором -->
</urlset>
Кожна URL-адреса групи потребує власного запису <url> з повним набором альтернатив.
Який спосіб обрати?
| Спосіб | Кому підходить | Головний недолік |
|---|---|---|
HTML <link> |
малі й середні сайти, шаблони CMS | збільшує вагу сторінки; легко зламати плагінами чи JS |
| HTTP-заголовок | PDF та інші не-HTML файли | складно підтримувати й перевіряти |
| XML-карта сайту | великі сайти, багато мов | помилок не видно на сторінці; карту треба синхронізувати |
Самопосилання та зворотні посилання: два правила, які порушують найчастіше
Самопосилання: кожна сторінка має містити hreflang на саму себе. Українська версія вказує hreflang="uk" зі своєю адресою.
Зворотні посилання (взаємність): якщо сторінка A називає сторінку B своєю іспанською альтернативою, B має посилатися назад на A. Односторонні анотації Google ігнорує, бо інакше будь-хто міг би оголосити себе «перекладом» вашої сторінки. На практиці вся група повинна мати однаковий набір тегів hreflang.
Швидкий тест: візьміть будь-яку URL-адресу, випишіть її hreflang, відкрийте кожну альтернативу й переконайтеся, що там той самий набір. Якщо хоч одна адреса робить редирект, віддає 404 або має noindex, пара ламається.
Як поєднати hreflang і canonical?
Кожна мовна версія повинна мати canonical на саму себе і перелічувати інші версії через hreflang:
<!-- На https://example.com/ua/pricing -->
<link rel="canonical" href="https://example.com/ua/pricing" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="uk" href="https://example.com/ua/pricing" />
<link rel="alternate" hreflang="es" href="https://example.com/es/pricing" />
Класична помилка — ставити canonical усіх перекладів на англійську сторінку. Так ви кажете Google, що українська версія — дублікат, який не треба індексувати, і hreflang уже нічого підставляти. URL-адреси в hreflang завжди мають бути канонічними, індексованими й віддавати код 200.
Яка структура URL найкраща для багатомовного сайту?
Hreflang працює з будь-якою структурою, але від неї залежать підтримка, розподіл авторитету та геотаргетинг.
| Структура | Приклад | Переваги | Недоліки |
|---|---|---|---|
| Підпапки | example.com/ua/, example.com/es/ |
авторитет одного домену, найпростіше адмініструвати, один ресурс у Search Console | слабший локальний сигнал, ніж у ccTLD |
| ccTLD | example.com.ua, example.es |
сильний сигнал країни | окремий авторитет для кожного домену, вищі витрати; привʼязка до країни, а не мови |
| Піддомени | ua.example.com, es.example.com |
легко хостити окремо | часто сприймаються як окремі сайти; більше налаштувань |
| Параметри | example.com/?lang=uk |
швидко зробити | Google не рекомендує; ненадійно |
Для більшості бізнесів, які орієнтуються на мови, а не на конкретні країни, підпапки — найпрагматичніший вибір. Так влаштований і SEORecheck: англійська в корені, українська в /ua/, іспанська в /es/. Зверніть увагу: звіт «Міжнародне націлювання» в Google Search Console вже вимкнено, тож привʼязка до країни тепер формується через ccTLD, hreflang, локальний контент і посилання, а не через перемикач у налаштуваннях.
Чи варто перенаправляти користувачів за IP або мовою браузера?
Ні, не автоматично. Google Search Central не радить робити редиректи на основі визначеної мови чи місцезнаходження. Googlebot здебільшого сканує з американських IP і без заголовка Accept-Language, тож автоматичний редирект може повністю приховати від нього українську та іспанську версії. Користувачі теж потрапляють у пастку: українець, який шукає щось із Польщі, навряд чи хоче польську версію.
Кращі варіанти:
- ненавʼязливий банер «Ця сторінка доступна українською»;
- помітний перемикач мов, що веде на відповідну сторінку, а не на головну;
- збереження явного вибору користувача в cookie — але кожна мовна URL-адреса має лишатися доступною напряму.
Які помилки hreflang трапляються найчастіше?
| Помилка | Наслідок | Як виправити |
|---|---|---|
ua замість uk, en-UK замість en-GB |
значення ігнорується | мова за ISO 639-1 + регіон за ISO 3166-1 |
| немає зворотних посилань | пару проігноровано | однаковий набір hreflang на всіх сторінках групи |
| немає самопосилання | група слабшає або ігнорується | додайте саму сторінку |
| canonical веде на іншу мову | переклад не індексується | canonical на себе для кожної версії |
hreflang на редирект, 404 або noindex |
пари розриваються | лише кінцеві URL з кодом 200, що індексуються |
| відносні URL | ціль визначається неправильно | абсолютні адреси з https:// |
| перемикач мов веде на головну | слабка перелінковка між відповідниками | посилання на відповідну сторінку |
теги додає JavaScript пізно або поза <head> |
Google може їх не побачити | виводьте теги в серверному HTML у <head> |
| і теги, і карта сайту з різними значеннями | суперечливі сигнали | один спосіб |
| автоматичний редирект за IP | версії приховані від Googlebot | банери й перемикач |
Як перевірити hreflang на сайті
Практичний аудит hreflang складається з пʼяти кроків:
- Проскануйте сайт краулером, який показує hreflang (Screaming Frog, Sitebulb тощо). Експортуйте кожну URL-адресу з набором hreflang, canonical, кодом відповіді та статусом індексації.
- Перевірте коди: позначте все, що не є валідною мовою ISO (з необовʼязковим регіоном) або
x-default. - Перевірте взаємність і самопосилання: кожна цільова сторінка має повертати такий самий набір. Краулери зазвичай прямо показують «missing return links».
- Перевірте цілі: усі адреси в hreflang мають віддавати 200, мати canonical на себе, не мати
noindexі не бути заблокованими в robots.txt. - Підтвердьте в Google: інструмент перевірки URL у Search Console покаже відрендерений HTML і canonical, обраний Google, для кожної версії. У звіті «Ефективність» порівняйте покази за країнами й сторінками.
Потім перевірте реальну видачу: пошукайте кожною мовою (наприклад, з параметром hl або в профілі браузера з потрібною мовою) і переконайтеся, що зʼявляється правильна URL-адреса. Hreflang — лише частина ширшого технічного SEO-аудиту, а в чек-листі SEO-аудиту зібрано інші перевірки, які варто зробити паралельно.
Головне
- Hreflang підказує Google, яку мовну чи регіональну версію показати; це не фактор ранжування.
- Коди — мова за ISO 639-1 і необовʼязковий регіон за ISO 3166-1:
uk, а неua;en-GB, а неen-UK. - Кожній сторінці потрібні самопосилання та зворотні посилання;
x-default— як запасний варіант. - Оберіть один спосіб: HTML
<link>, HTTP-заголовок або XML-карта сайту. - Кожна мовна версія має canonical на саму себе.
- Не робіть автоматичних редиректів за IP чи мовою браузера — краще перемикач або банер.
- Перевіряйте регулярно: hreflang ламається непомітно, коли змінюються URL.
Перевірте налаштування hreflang
Помилки hreflang рідко виглядають як явний збій — ви просто бачите не ту мову не на тому ринку. Якщо хочете незалежний погляд, замовте безкоштовний попередній SEO-аудит: він покаже SEO-оцінку та кілька реальних проблем із прикладами. Або перегляньте приклад звіту, щоб побачити, як описуються міжнародні й технічні знахідки.