Hreflang українська і польська версії: як налаштувати правильно

Замість вступу
У попередній статті про 7 помилок SEO українського бізнесу в Польщі я писала, що hreflang — одна з найчастіших технічних проблем. У 7 із 10 двомовних сайтів, які я аудитую, hreflang або відсутній, або з помилками.
Ця стаття — глибше. Як налаштувати правильно, з нуля. З прикладами коду і помилками, які я бачу найчастіше.
Якщо ви розробник або SEO-спеціаліст — це робочий гайд. Якщо ви засновник — прочитайте, щоб розуміти, що замовляти у виконавців і як перевіряти результат.
Коротко
Hreflang — це HTML-тег, який каже Google: «ця сторінка для української аудиторії, ця — для польської». Налаштовується трьома способами: через <link> у <head>, через HTTP-заголовки або через XML sitemap. Для двомовного сайту UA+PL потрібно три обов’язкові речі: правильні коди мов (uk-UA, pl-PL, не ua-UA), зворотні зв’язки між усіма версіями, тег x-default. Перевірка — через Google Search Console, Screaming Frog або онлайн-чекери. Час налаштування: 1–7 днів роботи розробника.
Що таке hreflang простими словами
Hreflang — це HTML-тег, який каже Google: «ця сторінка призначена для користувачів, які говорять цією мовою і живуть у цій країні».
Три приклади:
- сторінка для українців в Україні → hreflang=”uk-UA”
- сторінка для поляків у Польщі → hreflang=”pl-PL”
- сторінка для всіх англомовних → hreflang=”en”
Без hreflang Google може показати польську сторінку українцеві в Києві, або українську — полякові у Кракові. Користувач фруструється, повертається у пошук. Google це фіксує: bounce rate росте, dwell time падає, ранжування просідає.
Я бачила випадки, коли просте налаштування hreflang давало +20–30% органічного трафіку за 60 днів — без жодних інших змін на сайті. Це не правило, це спостереження. Але повторюється.
Як працює hreflang технічно
Google виконує три кроки:
- Знаходить hreflang-теги на сторінці.
- Будує внутрішню карту «одна сторінка — багато мовних версій».
- Підбирає правильну версію для конкретного користувача за його мовою браузера, IP-локацією і регіоном Google-акаунту.
Ключова умова: усі версії мають hreflang-теги, які посилаються одна на одну. Це називається «зворотні зв’язки» (return tags).
Якщо хоча б одна версія не має зворотного зв’язку — Google вважає налаштування зламаним і ігнорує його повністю.
3 способи реалізації — який обрати
Спосіб 1 — Через <link> у <head>
Найпоширеніший варіант. Додаєте теги в <head> кожної сторінки:
<link rel="alternate" hreflang="uk-UA" href="https://example.com/uk/" />
<link rel="alternate" hreflang="pl-PL" href="https://example.com/pl/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />Переваги: просто, видно в коді, легко перевірити. Недоліки: треба ставити на КОЖНІЙ сторінці. На великих сайтах — багато роботи.
Раджу для сайтів до 100 сторінок або з шаблонізованим CMS (WordPress, Webflow), де теги генеруються автоматично.
Спосіб 2 — Через HTTP-заголовки
Для не-HTML файлів (PDF, JPG) це єдиний спосіб. Веб-сервер додає заголовок:
Link: <https://example.com/uk/document.pdf>; rel="alternate"; hreflang="uk-UA",
<https://example.com/pl/document.pdf>; rel="alternate"; hreflang="pl-PL"Переваги: працює для будь-яких типів файлів. Недоліки: потрібен доступ до конфігурації сервера, складніше перевірити з браузера.
Раджу, тільки якщо у вас багато PDF/файлових ресурсів, які мають мовні версії.
Спосіб 3 — Через XML sitemap
Найкращий варіант для великих сайтів. У sitemap.xml кожен URL має xhtml:link з мовними версіями:
<url>
<loc>https://example.com/uk/</loc>
<xhtml:link rel="alternate" hreflang="uk-UA" href="https://example.com/uk/" />
<xhtml:link rel="alternate" hreflang="pl-PL" href="https://example.com/pl/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
</url>Переваги: централізовано, легко керувати, не треба міняти HTML кожної сторінки. Недоліки: потрібен генератор sitemap, який підтримує hreflang (більшість сучасних CMS — підтримує).
Раджу для сайтів від 500 сторінок.
Покроково: налаштування для UA+PL+EN
Припустімо, у вас сайт з трьома мовами:
- Українська: example.com/uk/
- Польська: example.com/pl/
- Англійська: example.com/en/
Крок 1 — Визначити структуру URL
Найпопулярніший варіант — мовні папки: /uk/, /pl/, /en/. Альтернативи: субдомени (uk.example.com), окремі домени (example.ua, example.pl). У 80% випадків я раджу папки — простіше керувати, легше нарощувати авторитет одного домену.
Це окрема тема — деталі будуть у наступній статті про архітектуру двомовного сайту.
Крок 2 — Використати правильні коди мови і регіону
- uk-UA — українська для України
- pl-PL — польська для Польщі
- en — англійська (без регіону, для всіх англомовних) або en-US, en-GB для конкретних ринків
Найчастіша помилка, яку я бачу: писати ua-UA замість uk-UA. UA — це код регіону (Україна), а uk — код мови (українська). Це різні стандарти: мови за ISO 639-1, регіони за ISO 3166-1 Alpha 2.
Крок 3 — Додати x-default
x-default — це fallback-версія для всіх інших користувачів. Зазвичай це або англійська, або сторінка вибору мови:
<link rel="alternate" hreflang="x-default" href="https://example.com/" />Без x-default Google не знає, що показувати, наприклад, користувачеві з Німеччини, який не підпадає під UA/PL/EN.
Крок 4 — Перевірити зворотні зв’язки
Кожна мовна версія має посилатися на всі інші. Тобто на /uk/ сторінці мають бути 4 теги: uk-UA, pl-PL, en, x-default. На /pl/ — ті ж 4 теги. І так далі.
Якщо хоча б один зворотний зв’язок відсутній — Google ігнорує всю конфігурацію.
Крок 5 — Викласти і відправити на індексацію
Через Google Search Console → Sitemaps → надсилаєте sitemap.xml. Google починає враховувати hreflang за 7–30 днів. Перші зміни в ранкінгах бачите через 30–60 днів.
5 типових помилок, які я бачу в аудитах
Помилка 1 — Неправильні коди мов
ua-UA замість uk-UA. ru-RU там, де має бути pl-PL (наслідок копіпасту з російських гайдів). en-EN замість en-US або просто en.
Помилка 2 — Відсутність зворотних зв’язків
UA-сторінка посилається на PL. А PL — на UA не посилається. Google вважає налаштування зламаним і ігнорує його повністю.
Помилка 3 — Hreflang веде на сторінку, якої не існує (404)
Часта помилка після реструктуризації сайту. URL змінилися, hreflang залишився старий. Перевіряти потрібно після КОЖНОГО релізу, який зачіпає URL.
Помилка 4 — Дублікат hreflang на тій же сторінці
Два чи більше тегів з hreflang=”uk-UA” на одній сторінці, кожен веде на різний URL. Google не знає, який вибрати, ігнорує обидва.
Помилка 5 — Hreflang є, а контент той самий
Українська і польська сторінки мають однаковий текст (наприклад, обидві українською). Google помічає це, вважає сторінки дублікатами і ігнорує hreflang. Я бачила такі кейси, коли «польська версія» виявлялася просто копією української з кнопкою-перемикачем мови, але без реального польського контенту.
Як перевірити, що hreflang працює
Три інструменти, якими я користуюся:
- Hreflang Tags Checker (безкоштовний, онлайн) — перевіряє одну сторінку, показує всі hreflang-теги і помилки.
- Screaming Frog SEO Spider (платно, але є безкоштовна версія до 500 URL) — сканує весь сайт, знаходить hreflang-помилки масово. Розділ «Hreflang» у звіті.
- Google Search Console → International Targeting — показує помилки hreflang з боку Google. Це найважливіше джерело, бо саме Google вирішує, як інтерпретувати ваші теги.
Раджу починати з GSC: якщо там нема помилок — швидше за все все ок. Якщо є — починаєте розбирати в Screaming Frog для деталей.
FAQ — поширені запитання
Якщо ваш сайт уже зламаний
Якщо після перевірки знайшли проблеми — не панікуйте, але і не відкладайте. Hreflang-помилки накопичуються. Чим довше Google їх бачить, тим більше довіри до сайту втрачається.
Орієнтир по часу виправлення:
- сайт до 100 сторінок: 1–2 робочих дні розробника
- 100–1000 сторінок: 3–7 днів
- більше — потрібен генератор у CMS або переписаний sitemap
Після виправлення відновлення індексації займає 14–30 днів. Перші зміни в трафіку бачите через 30–60 днів.
📡 Спостереження з практики: найбільші стрибки трафіку від виправлення hreflang я бачу на сайтах, де він був, але з помилками. Тобто Google уже пробував інтерпретувати — а коли отримує правильну конфігурацію, реагує швидше, ніж на «новий» hreflang.
Якщо є питання — пишіть, дивлюся, кажу, що бачу.
— Ірина, Be Visible

