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

Дата публікації: 16.05.2026 22:55

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


Що таке hreflang і коли він справді потрібен

Атрибут hreflang — це HTML-директива для пошукових систем (передусім Google та Yandex), яка вказує зв'язок між кількома версіями однієї сторінки, що відрізняються мовою або регіоном. Google не «здогадується» про правильну версію сам — без hreflang він вибирає довільно, і часто помиляється.

Атрибут впроваджений Google ще у 2011 році, але за нашими спостереженнями навіть у 2025–2026 роках більшість мультимовних сайтів мають критичні помилки у його реалізації. Наслідки: неправильна версія сторінки в SERP, канібалізація між мовними версіями, падіння CTR.

Коли hreflang необхідний:

  • Кілька мовних версій сайту — наприклад, українська, російська та англійська на різних URL
  • Один контент, різні регіони — англійська для США (en-US) та Великої Британії (en-GB) з різними цінами чи умовами
  • Субдомени або піддиректорії для мовua.site.com vs site.com/en/
  • Дублікати контенту між мовами — коли одна версія частково перекладена, а решта однакова

Коли hreflang НЕ потрібен: якщо ваш сайт монолінгвальний і орієнтований на одну країну — hreflang лише додасть зайвої складності без користі.

Схема роботи hreflang: розподіл пошукового трафіку між мовними версіями Google читає hreflang site.com/ua/ lang="uk" Украина (UA) site.com/ru/ lang="ru" Россия (RU) site.com/en/ lang="en" Global (EN) Користувач з UA Користувач з RU Глобальний юзер
Hreflang спрямовує кожну аудиторію до правильної мовної версії сторінки

Синтаксис: мова vs мова+регіон

Значення атрибуту hreflang формується за стандартом ISO 639-1 (мова) та ISO 3166-1 alpha-2 (регіон). Розрізнити, коли вказувати тільки мову, а коли — мову з регіоном, критично важливо.

Тільки мова (без регіону)

Використовуйте, якщо контент однаковий для всіх носіїв цієї мови незалежно від країни:

<!-- Одна версія для всіх україномовних користувачів -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/">

<!-- Одна версія для всіх іспаномовних -->
<link rel="alternate" hreflang="es" href="https://site.com/es/">

Мова + регіон (рекомендовано для e-commerce)

Застосовуйте, коли контент відрізняється залежно від країни: ціни, валюта, умови доставки, правовий текст:

<!-- Англійська для США -->
<link rel="alternate" hreflang="en-US" href="https://site.com/en-us/">

<!-- Англійська для Великої Британії -->
<link rel="alternate" hreflang="en-GB" href="https://site.com/en-gb/">

<!-- Іспанська для Мексики -->
<link rel="alternate" hreflang="es-MX" href="https://site.com/es-mx/">

<!-- Іспанська для Іспанії -->
<link rel="alternate" hreflang="es-ES" href="https://site.com/es-es/">
Практична порада: Для більшості українських B2B та SaaS сайтів достатньо коду мови без регіону (uk, ru, en). Регіональне розмежування виправдане лише тоді, коли контент реально різний для різних країн.
Код Що означає Коли використовувати
uk Українська мова (всі регіони) Єдина україномовна версія
ru Російська мова (всі регіони) Єдина російськомовна версія
en Англійська мова (всі регіони) Глобальна англійська без регіоналізації
en-US Англійська для США Окремі ціни, умови для US-ринку
en-GB Англійська для Великої Британії Британська орфографія, фунти стерлінгів
x-default Версія за замовчуванням Для аудиторій без конкретної мовної версії

Три способи впровадження: порівняння

Google підтримує три методи реалізації hreflang. Вибір залежить від типу сайту, CMS та наявності доступу до серверних налаштувань. У нашій практиці налаштування hreflang для мультимовних сайтів найпоширеніша помилка — це змішування різних методів на одному сайті, що призводить до конфліктів і ігнорування тегів Googlebot'ом.

Метод Де розміщується Переваги Недоліки Найкраще для
HTML <head> Тег <head> кожної сторінки Просто налаштувати, підтримується всіма CMS Збільшує розмір HTML, складно масштабувати на 10 000+ сторінок Сайти до 1 000 сторінок, WordPress, OpenCart
HTTP Header Заголовок HTTP-відповіді сервера Єдиний варіант для PDF та не-HTML файлів Вимагає доступу до серверних налаштувань (Apache/Nginx), складно дебажити PDF-каталоги, файлові ресурси
XML Sitemap Файл sitemap.xml Не навантажує HTML, легко масштабувати, зручно для великих сайтів Потребує підтримки у боку CMS/генератора sitemap, помилки важче відловити Великі e-commerce, порнтали 10 000+ сторінок

Метод 1: HTML <head>

Найпоширеніший метод. Теги додаються в секцію <head> кожної сторінки:

<head>
  <!-- Українська версія -->
  <link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">
  <!-- Російська версія -->
  <link rel="alternate" hreflang="ru" href="https://site.com/ru/page/">
  <!-- Англійська версія -->
  <link rel="alternate" hreflang="en" href="https://site.com/en/page/">
  <!-- Версія за замовчуванням -->
  <link rel="alternate" hreflang="x-default" href="https://site.com/page/">
</head>

Метод 2: HTTP Header

Використовується для нон-HTML ресурсів. Приклад конфігурації для Nginx:

location /catalog.pdf {
  add_header Link '<https://site.com/ua/catalog.pdf>; rel="alternate"; hreflang="uk",
                   <https://site.com/en/catalog.pdf>; rel="alternate"; hreflang="en",
                   <https://site.com/catalog.pdf>; rel="alternate"; hreflang="x-default"';
}

Метод 3: XML Sitemap

Оптимальний вибір для великих сайтів. Структура файлу sitemap.xml:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://site.com/ua/page/</loc>
    <xhtml:link rel="alternate" hreflang="uk"
                href="https://site.com/ua/page/"/>
    <xhtml:link rel="alternate" hreflang="ru"
                href="https://site.com/ru/page/"/>
    <xhtml:link rel="alternate" hreflang="en"
                href="https://site.com/en/page/"/>
    <xhtml:link rel="alternate" hreflang="x-default"
                href="https://site.com/page/"/>
  </url>
  <url>
    <loc>https://site.com/ru/page/</loc>
    <xhtml:link rel="alternate" hreflang="uk"
                href="https://site.com/ua/page/"/>
    <xhtml:link rel="alternate" hreflang="ru"
                href="https://site.com/ru/page/"/>
    <xhtml:link rel="alternate" hreflang="en"
                href="https://site.com/en/page/"/>
    <xhtml:link rel="alternate" hreflang="x-default"
                href="https://site.com/page/"/>
  </url>
</urlset>
Порівняльна матриця трьох методів впровадження hreflang HTML head HTTP Header XML Sitemap Складність: Низька Висока Середня Масштаб: до 1000 стор. будь-який 10 000+ стор. Потребує CMS: Ні (будь-яка) Сервер/хостинг Генератор sitemap Дебаг: Простий (View Source) Складний (curl) Середній (GSC) Рекомендація SEO-Factory: для сайтів до 1000 сторінок - HTML head; понад 1000 - XML Sitemap
Порівняння трьох методів впровадження hreflang за ключовими параметрами

Обов'язкові правила: зворотні посилання та x-default

Два правила, без яких hreflang не працює коректно, незалежно від методу впровадження.

Правило 1: зворотні (bidirectional) посилання

Кожна мовна версія повинна посилатися на всі інші версії, включаючи саму себе. Якщо українська сторінка посилається на англійську, то англійська сторінка також повинна посилатися на українську. Відсутність зворотного посилання — і Google ігнорує весь набір.

<!-- Правильно: КОЖНА сторінка містить посилання на ВСІ версії -->

<!-- На UA-сторінці (/ua/page/) -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">  <!-- само-посилання -->
<link rel="alternate" hreflang="ru" href="https://site.com/ru/page/">
<link rel="alternate" hreflang="en" href="https://site.com/en/page/">
<link rel="alternate" hreflang="x-default" href="https://site.com/page/">

<!-- На EN-сторінці (/en/page/) - ТА САМА МНОЖИНА тегів! -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">
<link rel="alternate" hreflang="ru" href="https://site.com/ru/page/">
<link rel="alternate" hreflang="en" href="https://site.com/en/page/">  <!-- само-посилання -->
<link rel="alternate" hreflang="x-default" href="https://site.com/page/">

Правило 2: атрибут x-default

Тег x-default вказує сторінку для користувачів, чий браузер/регіон не відповідає жодній з вказаних мовних версій. Зазвичай це головна сторінка або мовний вибір:

<!-- x-default = сторінка мовного вибору або головна (EN) -->
<link rel="alternate" hreflang="x-default" href="https://site.com/">
Важливо: x-default не обов'язково має збігатися з однією з мовних версій. Це може бути окрема лендінг-сторінка з вибором мови — site.com/choose-language/.

Hreflang і canonical: як вони взаємодіють

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

Canonical каже Google: «Ця сторінка є основною версією, якщо є дублікати». Hreflang каже: «Ці сторінки — це переклади одного контенту для різних аудиторій».

Ключове правило: canonical повинен вказувати на себе (self-referencing), якщо сторінка є частиною hreflang-групи. Тобто кожна мовна версія має canonical на саму себе.

<!-- ПРАВИЛЬНО: canonical вказує на поточну (свою) сторінку -->
<!-- На UA-сторінці (site.com/ua/page/) -->
<link rel="canonical" href="https://site.com/ua/page/">
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">
<link rel="alternate" hreflang="en" href="https://site.com/en/page/">

<!-- НЕПРАВИЛЬНО: canonical з однієї мовної версії вказує на іншу -->
<!-- На UA-сторінці (site.com/ua/page/) -->
<link rel="canonical" href="https://site.com/en/page/">  <!-- ПОМИЛКА! -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">
<link rel="alternate" hreflang="en" href="https://site.com/en/page/">
Якщо canonical на UA-сторінці вказує на EN-версію, Google сприймає UA-версію як дублікат і виключає її з індексу — hreflang перестає працювати для цієї пари.

Топ-7 помилок з прикладами коду

За нашим досвідом аудитів мультимовних сайтів — 9 з 10 проєктів мають хоча б одну з цих помилок. Деякі — одразу кілька:

Помилка 1: Відсутність зворотних посилань

<!-- ПОМИЛКА: Тільки UA-сторінка посилається на EN, але EN не посилається на UA -->
<!-- UA-сторінка: -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/">
<link rel="alternate" hreflang="en" href="https://site.com/en/">

<!-- EN-сторінка: -->
<link rel="alternate" hreflang="en" href="https://site.com/en/">
<!-- Немає тегу hreflang="uk" -- Google ІГНОРУЄ весь набір! -->

Помилка 2: Неправильний код мови

<!-- ПОМИЛКА: Неіснуючі або некоректні коди -->
<link rel="alternate" hreflang="ua" href="...">   <!-- Правильно: "uk" -->
<link rel="alternate" hreflang="rus" href="...">  <!-- Правильно: "ru" -->
<link rel="alternate" hreflang="eng" href="...">  <!-- Правильно: "en" -->

<!-- ПРАВИЛЬНО: -->
<link rel="alternate" hreflang="uk" href="...">
<link rel="alternate" hreflang="ru" href="...">
<link rel="alternate" hreflang="en" href="...">

Помилка 3: Посилання на редиректи або недоступні URL

<!-- ПОМИЛКА: hreflang вказує на URL з редиректом 301 -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page">
<!-- Якщо цей URL редиректить на site.com/ua/page/ (з слешем) -- Google ігнорує тег -->

<!-- ПРАВИЛЬНО: фінальний URL без редиректів -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">

Помилка 4: Не всі версії у наборі

<!-- ПОМИЛКА: Є 3 мовні версії, але hreflang вказаний лише для 2 -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">
<link rel="alternate" hreflang="en" href="https://site.com/en/page/">
<!-- Пропущено hreflang="ru" -- RU-версія не отримає правильного розподілу трафіку -->

Помилка 5: Відсутність x-default

<!-- ПОМИЛКА: Немає тегу x-default -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/">
<link rel="alternate" hreflang="ru" href="https://site.com/ru/">
<link rel="alternate" hreflang="en" href="https://site.com/en/">
<!-- Що покаже Google японцю? Результат непередбачуваний -->

<!-- ПРАВИЛЬНО: -->
<link rel="alternate" hreflang="x-default" href="https://site.com/en/">

Помилка 6: Змішування методів впровадження

<!-- ПОМИЛКА: hreflang в HTML head + той самий hreflang у Sitemap одночасно -->
<!-- Це не заборонено, але призводить до конфліктів, якщо значення різняться -->
<!-- Завжди використовуйте ОДИН метод для всього сайту -->

Помилка 7: Canonical на іншомовну версію

<!-- ПОМИЛКА: UA-сторінка з canonical на EN-версію -->
<link rel="canonical" href="https://site.com/en/page/">  <!-- UA-сторінка -->
<link rel="alternate" hreflang="uk" href="https://site.com/ua/page/">
<!-- Google виключить UA з індексу, hreflang буде проігнорований -->

<!-- ПРАВИЛЬНО: self-referencing canonical -->
<link rel="canonical" href="https://site.com/ua/page/">  <!-- Вказує на себе! -->
Топ-7 помилок hreflang та їх частота зустрічальності Частота помилок hreflang (% сайтів з помилкою) Немає зворотних посилань 78% Неправильні коди мов 61% URL з редиректами 54% Неповний набір версій 48% Немає x-default 67% Змішування методів 32% Canonical конфлікт 41% 0% 20% 40% 60% 80%
Дані на основі аудитів 80+ мультимовних сайтів, SEO-Factory 2024–2025

Діагностика: Screaming Frog, GSC, hreflang Testing Tool

Навіть якщо hreflang впроваджено правильно на папері, помилки можуть проникнути через CMS-оновлення, деплойні скрипти або неуважність розробника. Регулярна діагностика — обов'язкова частина технічного SEO-аудиту.

Google Search Console (GSC)

  1. Зайдіть до GSC → ІндексуванняСторінки
  2. Фільтруйте за статусом "Виключено" → шукайте причину "Альтернативна сторінка з hreflang вказана правильно"
  3. Перейдіть до НалаштуванняSitemap → перевірте, чи GSC не повертає помилок при обробці sitemap з hreflang
  4. У розділі Покращення перевіряйте сигнали про конфлікти мовних версій

Screaming Frog SEO Spider

  1. Запустіть краулінг сайту в режимі Spider
  2. Перейдіть до Hreflang → вкладка All — побачите всі знайдені теги
  3. Вкладка Errors покаже: відсутні зворотні посилання, мертві URL, неправильні коди мов
  4. Вкладка Unconfirmed — теги, для яких Screaming Frog не зміг підтвердити зворотне посилання (потребує додаткової перевірки)
  5. Збережіть звіт Reports → Hreflang для фіксації стану
Лайфхак: В Screaming Frog увімкніть режим Store HTML — тоді інструмент зберігає HTML кожної сторінки і може перевіряти hreflang навіть у сторінках з JavaScript-рендерингом.

Google Hreflang Tags Testing Tool (Merkle)

Безкоштовний онлайн-інструмент від Merkle (hreflang.org) дозволяє перевірити окремі URL або завантажити список. Інструмент показує:

  • Missing return links — відсутність зворотних посилань
  • Invalid language/region codes — невалідні коди
  • Non-200 URLs — недоступні сторінки у наборі
  • No x-default — відсутність дефолтної версії

Перевірка через curl (для HTTP Header методу)

# Перевірити hreflang у HTTP-заголовках:
curl -I https://site.com/en/page/

# Очікуваний вивід у заголовку Link:
# Link: <https://site.com/ua/page/>; rel="alternate"; hreflang="uk",
#        <https://site.com/en/page/>; rel="alternate"; hreflang="en",
#        <https://site.com/>; rel="alternate"; hreflang="x-default"

Кейс: мультимовний сайт після виправлення hreflang

Наш клієнт — виробник промислового обладнання з сайтом на 3 мови (UA/RU/EN). До звернення до SEO-Factory сайт мав понад 2 300 сторінок з hreflang-тегами, але через помилку у CMS-шаблоні зворотні посилання були відсутні у 67% випадків. Додатково: canonical на UA-версіях вказував на EN-версії (помилка при міграції з попереднього сайту).

Виявлені проблеми (Screaming Frog + GSC):

  • 1 541 сторінка з відсутніми зворотними hreflang-посиланнями
  • 312 сторінок з canonical-конфліктом (UA → EN)
  • Код мови ua замість правильного uk на всіх сторінках
  • Відсутній x-default на всіх URL

Хід виправлення (6 тижнів):

  1. Тиждень 1–2: Виправлення шаблону CMS — автоматична генерація повного набору hreflang для всіх сторінок, зміна коду uauk
  2. Тиждень 3: Виправлення canonical на всіх UA-сторінках (self-referencing), додавання x-default
  3. Тиждень 4: Оновлення XML Sitemap, повторна подача у GSC
  4. Тижні 5–6: Моніторинг індексації у GSC, дообробка помилок, що залишились

Результати через 3 місяці після виправлення:

Метрика До виправлення Після виправлення Зміна
Органічний трафік (UA-версія) 2 140 сес./міс. 3 890 сес./міс. +82%
Органічний трафік (EN-версія) 890 сес./міс. 1 650 сес./міс. +85%
Проіндексовано UA-сторінок 68% 96% +28 п.п.
Середній CTR у пошуку (UA) 3.2% 5.7% +2.5 п.п.
Помилки hreflang у GSC 1 853 14 -99%

Ключовий висновок з цього проєкту: помилки hreflang безпосередньо впливають на індексацію, а не лише на розподіл трафіку. Коли Google не розуміє мовну структуру сайту — він частково виключає сторінки з індексу взагалі. Якщо ваш сайт не отримує очікуваного трафіку з міжнародного пошуку, замовте технічний SEO-аудит — ми перевіримо hreflang у першу чергу.

Часова шкала: динаміка зростання трафіку після виправлення hreflang Динаміка органічного трафіку після виправлення hreflang 0 1000 2000 3000 4000 Міс.-3 Міс.-2 Міс.-1 Виправлення Міс.+1 Міс.+2 Міс.+3 UA-версія EN-версія +82% +85%
Зростання органічного трафіку UA та EN версій після виправлення hreflang (реальні дані клієнта SEO-Factory)

Часті запитання

Чи потрібен hreflang, якщо сайт лише на одній мові, але з різними регіонами?

Так, потрібен. Наприклад, якщо ви маєте англомовну версію для США та Великої Британії, додайте hreflang en-US та en-GB з різними URL. Без цього Google може показувати британцям американську версію з іншими цінами або умовами.

Чи обов'язковий атрибут x-default?

Технічно x-default не є обов'язковим, але Google рекомендує його додавати. Він вказує сторінку для користувачів, чия мова або регіон не збігаються з жодним з ваших hreflang-варіантів. Зазвичай це головна або мовна-нейтральна версія.

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

Google переіндексовує hreflang-теги протягом 2–6 тижнів після внесення змін. У великих сайтах (10 000+ сторінок) цей процес може тривати до 2 місяців. Прискорити можна через повторне подання Sitemap у Google Search Console.

Чи може hreflang конфліктувати з canonical-тегом?

Так, конфлікт виникає, коли canonical вказує на сторінку іншої мови. Правило просте: canonical завжди повинен вказувати на себе (self-referencing), а hreflang — на всі мовні версії. Якщо canonical веде на іншомовну сторінку, Google проігнорує hreflang.

Маєте мультимовний сайт? Перевіримо hreflang безкоштовно

У більшості мультимовних сайтів є критичні помилки hreflang, які блокують зростання міжнародного трафіку. Команда SEO-Factory проведе технічний аудит і виявить всі проблеми з мовними тегами, canonical та структурою URL.

Замовити просування мультимовного сайту або зв'язатися для безкоштовної консультації щодо hreflang-помилок.

Seo Factory
Матеріали на сайті SEO-FACTORY створюються командою спеціалістів у сфері SEO-просування, інтернет-маркетингу, контекстної реклами та веб-аналітики. Основна мета проєкту — публікувати практичні та зрозумілі матеріали, які допомагають бізнесу, власникам сайтів і digital-фахівцям краще розуміти сучасні алгоритми Google, принципи SEO та інструменти онлайн-просування. Автори блогу регулярно працюють із комерційними проєктами в Україні та на міжнародних ринках, тестують SEO-стратегії, аналізують зміни пошукових алгоритмів, досліджують поведінкові фактори, лінкбілдинг, AI-пошук, контент-маркетинг та Google Ads. Завдяки цьому матеріали базуються не лише на теорії, а й на реальному практичному досвіді. У статтях SEO-FACTORY використовуються: актуальні дані та дослідження ринку; власні спостереження та практичні кейси; аналіз оновлень Google і SEO-трендів; рекомендації щодо технічної оптимізації сайтів; сучасні підходи до зростання органічного трафіку. Проєкт орієнтований на створення експертного контенту без шаблонних порад і зайвої «води». Основний акцент робиться на практичній користі, зрозумілій подачі та сучасних методах digital-маркетингу