hreflang — це атрибут, який повідомляє Google, якою мовою та для якого регіону написана конкретна сторінка, щоб пошуковик показував користувачу правильну мовну версію. Якщо сайт має кілька версій (наприклад, українську та російську), без hreflang Google може плутати їх між собою, склеювати або видавати не ту версію в результатах. Налаштовується трьома способами: тегом у розділі head, HTTP-заголовком або через файл sitemap.
Коротко
- hreflang вказує Google мову та регіон сторінки. Це підказка (hint), а не жорстка команда — пошуковик враховує її разом з іншими сигналами.
- Атрибут має бути взаємним: якщо сторінка А посилається на Б, то Б зобовʼязана посилатися на А. Односторонні звʼязки ігноруються.
- Три способи впровадження: HTML-тег у head, HTTP-заголовок (для PDF та інших не-HTML файлів), sitemap (зручно за великої кількості URL).
- Кожна сторінка має посилатися й сама на себе — це обовʼязковий self-reference.
- Для українських сайтів із версіями UA та RU hreflang знімає ризик канібалізації мов у видачі.
Що таке hreflang і навіщо він потрібен
Атрибут rel=”alternate” hreflang=”x” зʼявився, щоб розвʼязати задачу: сторінка має кілька мовних або регіональних версій, і пошуковик повинен показати кожному користувачу відповідну. Мешканець Львова, який шукає українською, має потрапляти на UA-сторінку; користувач, який шукає російською, — на RU-версію того самого матеріалу.
Важливо розуміти: hreflang не піднімає позиції сам по собі. Він не про ранжування, а про те, яку саме з версій, що вже ранжуються, Google покаже конкретному користувачу. Опосередковано це покращує поведінкові метрики — людина одразу бачить сторінку своєю мовою, рідше повертається у видачу, — і це вже впливає на загальний результат.
Часте запитання — чим hreflang відрізняється від canonical. Canonical каже «це та сама сторінка, індексуй ось цю». hreflang каже «це різні, але еквівалентні версії для різних мов — індексуй усі, але показуй потрібну». Змішувати їх не можна: canonical мовної версії має вказувати на саму себе, а не на версію іншої мови.


Синтаксис hreflang: приклади коду
Спосіб 1. Теги в розділі head
Найпоширеніший варіант. У head кожної сторінки перелічуються всі її мовні версії, зокрема й вона сама:
<link rel=”alternate” hreflang=”uk” href=”https://example.com/ua/hreflang” />
<link rel=”alternate” hreflang=”ru” href=”https://example.com/hreflang” />
<link rel=”alternate” hreflang=”en” href=”https://example.com/en/hreflang” />
<link rel=”alternate” hreflang=”x-default” href=”https://example.com/ua/hreflang” />
Код мови — за стандартом ISO 639-1, за потреби через дефіс додається регіон за ISO 3166-1 Alpha-2, наприклад en-US або en-GB. Ключова пастка: українська мова — це uk, а не ua. Код «ua» стосується країни Україна як регіону, але не мови. Російська — ru.
Значення x-default вказує сторінку «за замовчуванням» — її побачать користувачі, чия мова не збіглася з жодною з версій. Зазвичай це головна мовна версія або сторінка вибору мови.
Спосіб 2. HTTP-заголовок
Для файлів без розділу head (PDF, документи) hreflang передається у HTTP-відповіді сервера:
Link: <https://example.com/ua/file.pdf>; rel=”alternate”; hreflang=”uk”,
<https://example.com/file.pdf>; rel=”alternate”; hreflang=”ru”
Спосіб 3. Через sitemap
За великої кількості сторінок зручніше описати звʼязки в XML-карті сайту — тоді не треба правити head кожної сторінки. Для одного URL перелічуються всі його версії через елементи xhtml:link:
<url>
<loc>https://example.com/ua/hreflang</loc>
<xhtml:link rel=”alternate” hreflang=”uk” href=”https://example.com/ua/hreflang”/>
<xhtml:link rel=”alternate” hreflang=”ru” href=”https://example.com/hreflang”/>
<xhtml:link rel=”alternate” hreflang=”en” href=”https://example.com/en/hreflang”/>
</url>
Оберіть один спосіб і дотримуйтесь його на всьому сайті — дублювати hreflang у head і в sitemap одночасно не потрібно.
Структура URL багатомовного сайту: домени, папки, піддомени
До налаштування hreflang треба вирішити, як узагалі розділяти мови на рівні адрес. Є чотири підходи — у кожного свій баланс між SEO-вагою, вартістю та зручністю.
| Підхід | Приклад | Плюси | Мінуси |
| Окремі домени (ccTLD) | site.ua / site.pl | Максимальний геосигнал; чіткий поділ | Дорого; вага доменів нарощується окремо |
| Піддомени | uk.site.com | Гнучкість; окреме налаштування | Вага передається гірше, ніж усередині домену |
| Підпапки | site.com/ua/ | Уся посилальна вага в одному домені; дешево | Один сервер/гео за замовчуванням |
| Параметри URL | site.com/?lang=uk | Технічно просто | Google не рекомендує; гірше індексується |
Для більшості проєктів, зокрема українських, оптимальні підпапки: уся посилальна вага накопичується на одному домені, а мови розділені прозоро й дешево. Окремі домени виправдані, коли потрібен сильний геотаргетинг під різні країни та є бюджет вести кілька сайтів. Параметрів URL для мов краще уникати.
Особливий випадок України: UA та RU на одному сайті
Український ринок майже завжди двомовний: одну й ту саму послугу шукають і українською, і російською. Логічно тримати обидві версії — але саме тут виникає канібалізація мов. Якщо UA- та RU-версії живуть за одним URL (або Google не розуміє, що це мовні пари), вони починають конкурувати одна з одною за ті самі запити: пошуковик не знає, яку показувати, і просідають обидві.
Правильна звʼязка для двомовного сайту: (1) у кожної версії — свій окремий URL (наприклад, RU в корені, UA в папці /ua/); (2) взаємний hreflang між парою uk ↔ ru; (3) self-canonical у кожної версії; (4) перекладено весь контент, а не лише меню. Тоді Google бачить дві еквівалентні сторінки під різні мови й перестає їх плутати. Докладніше про саму проблему конкуренції сторінок — у матеріалі про дублі та канібалізацію.
Типові помилки hreflang
- Код «ua» замість «uk». Найчастіша помилка на українських сайтах: для української мови потрібен uk.
- Немає зворотного посилання. Сторінка А вказує на Б, а Б на А — ні. Google ігнорує такий односторонній звʼязок повністю.
- Немає self-reference. Сторінка не перелічує саму себе серед версій — набір hreflang вважається неповним.
- hreflang на неканонічні URL. Посилання ведуть на редиректи, сторінки з параметрами або noindex замість чистих канонічних адрес.
- Конфлікт із canonical. canonical мовної версії вказує на версію іншої мови — тоді hreflang «ламається».
- Відносні URL. У href потрібні абсолютні адреси з протоколом https, а не /page.
- Неузгоджені пари. На різних сторінках кластера перелічені різні набори версій — звʼязки рвуться.
Як перевірити hreflang
Після впровадження обовʼязково перевірте розмітку — помилки в hreflang майже завжди «тихі» й не видно оком. Що використати:
- Google Search Console — відстежує помилки індексації та покриття мовних версій; сюди ж надходять попередження про проблеми розмітки. Як її підключити й читати звіти — в окремій інструкції з Search Console.
- Валідатори hreflang — онлайн-сервіси перевіряють взаємність посилань і коректність кодів мови на конкретному URL.
- Кравлери (Screaming Frog та аналоги) — вивантажують усі hreflang по сайту й підсвічують відсутність зворотних посилань і self-reference масово.
hreflang — частина технічного фундаменту сайту нарівні з robots.txt, sitemap і канонічними тегами; їх логічніше перевіряти в комплексі (про це — у матеріалі про технічне SEO). Якщо мовних версій кілька й ви не впевнені, що звʼязки налаштовані правильно, розумніше замовити технічний SEO-аудит: він виявить і биті пари hreflang, і конфлікти з canonical, і помилки індексації разом.
Багатомовність і міжнародне SEO — лише один шар просування; як посилання та зовнішня оптимізація впливають на результат загалом, розібрано в опорному посібнику що таке лінкбілдинг.
Підсумок і наступний крок
Правильний hreflang — це взаємні посилання між усіма версіями, коректні коди мови (uk, а не ua), self-reference на кожній сторінці та окремі чисті URL під кожну мову. Помилки тут не роняють сайт миттєво, але місяцями «зʼїдають» трафік через канібалізацію та показ не тієї версії. Якщо у вас двомовний або багатомовний сайт і є сумніви в налаштуванні — замовте технічний SEO-аудит, щоб перевірити hreflang, структуру URL та індексацію за всіма мовами одразу.Ціни орієнтовні й залежать від ніші, обсягу та конкуренції — точну вартість розрахуємо за вашим проєктом.