Ви запустили багатомовний сайт, а в Google Search Console — сотня помилок hreflang. Знайома ситуація? Ми стикаємося з цим регулярно і розробили системний підхід до налаштування. Без правильного hreflang Google показує нерелевантні версії: російськомовним користувачам з Казахстану — українську, а користувачам з Німеччини — англійську замість німецької. Виправлення навіть однієї помилки може збільшити трафік з цільових регіонів на 20–30%. Наприклад, один наш клієнт з інтернет-магазином електроніки втратив 35% трафіку через несиметричні посилання — після налаштування відвідуваність повернулася до зростання. Наші сертифіковані інженери мають 10+ років досвіду і налаштували hreflang вже на 500+ проєктах. Гарантуємо усунення всіх помилок в Search Console за 2 тижні.
Як правильно налаштувати hreflang?
Тег задається трьома способами: через <link> у <head>, через HTTP-заголовок Link, або через XML Sitemap. Для HTML-сторінок стандартний варіант — теги в <head>:
<link rel="alternate" hreflang="ru" href="https://example.com/ru/" /> <link rel="alternate" hreflang="ru-RU" href="https://example.com/ru/" /> <link rel="alternate" hreflang="ru-UA" href="https://example.com/ru-ua/" /> <link rel="alternate" hreflang="ru-KZ" href="https://example.com/ru-kz/" /> <link rel="alternate" hreflang="uk" href="https://example.com/uk/" /> <link rel="alternate" hreflang="en" href="https://example.com/en/" /> <link rel="alternate" hreflang="x-default" href="https://example.com/" /> Кожна сторінка повинна посилатися сама на себе і на всі інші версії. Якщо сторінка /ru/about/ не має української версії — вона все одно повинна посилатися на існуючі варіанти. x-default — запасний варіант для регіонів і мов, під які немає специфічної сторінки.
Вибір способу реалізації залежить від масштабу. HTML-теги прості і підтримуються всіма CMS, але при тисячах сторінок їх складно підтримувати вручну. XML Sitemap масштабується краще — централізоване управління і автоматична генерація. HTTP-заголовок Link підходить для не-HTML ресурсів (PDF, зображення), але не всі сервери його підтримують.
Чому виникають помилки hreflang?
Понад 80% помилок — несиметричні посилання. Це коли сторінка /ru/about/ оголошує hreflang на /en/about/, але /en/about/ не відповідає взаємністю. Google вимагає взаємності, інакше сигнал ігнорується. На другому місці — невірні мовні коди. Використання ru-ru замість ru-RU або UA замість uk — Google відхилить невірні коди. Коректні коди вказані в стандарті BCP 47. Третя причина — відсутність x-default. Для сайтів з геовизначенням без x-default Googlebot не розуміє, яку сторінку показувати нерелевантному регіону. Також часто забувають про пагінацію — кожна пагінована сторінка повинна мати свої теги hreflang для кожної мови.
Типові помилки: як їх уникнути
- Несиметричні посилання. Рішення: автоматична генерація, яка перевіряє взаємність.
-
Невірні коди. Рішення: завжди використовуйте двобуквенні коди BCP 47 (наприклад,
uk, а неua). - Відсутність x-default. Рішення: завжди додавайте x-default, що вказує на основну версію.
- Пропущені регіони. Рішення: комбінуйте мову і регіон (наприклад,
ru-RU,ru-UA).
Роль x-default у мультирегіональному SEO
X-default — це резервне значення hreflang. Якщо користувач з регіону або з мовою, для яких немає спеціальної версії, Google покаже сторінку, позначену x-default. Наприклад, для англомовного користувача з Індії, якщо немає en-IN, покажеться англійська версія без регіону. Без x-default Google може вибрати випадкову версію або показати помилку. Ми завжди включаємо x-default у проєктах — це одна з перших рекомендацій.
Порівняння способів реалізації
| Спосіб | Складність | Масштабованість | Підходить для |
|---|---|---|---|
<link> у <head> |
Низька | Погана при тисячах сторінок | Малі сайти і блоги |
| XML Sitemap | Середня | Відмінна | Великі портали та інтернет-магазини |
HTTP-заголовок Link |
Висока | Середня | Не-HTML ресурси (PDF, зображення) |
XML Sitemap масштабується в 5 разів краще, ніж HTML-теги для великих проєктів.
Автоматизація генерації hreflang
На проєктах з 1000+ сторінок ручне ведення hreflang — джерело помилок. Генерація на рівні застосунку:
// Laravel — генерація hreflang для поточної сторінки function generateHreflang(string $routeName, array $params = []): string { $locales = ['ru', 'en', 'uk', 'de']; $html = ''; foreach ($locales as $locale) { $url = route($routeName, array_merge($params, ['locale' => $locale])); $html .= sprintf( '<link rel="alternate" hreflang="%s" href="%s" />' . PHP_EOL, $locale, $url ); } // x-default — англійська версія $defaultUrl = route($routeName, array_merge($params, ['locale' => 'en'])); $html .= sprintf( '<link rel="alternate" hreflang="x-default" href="%s" />' . PHP_EOL, $defaultUrl ); return $html; } Для Next.js з next.config.js:
// pages/about.js export async function getStaticProps({ locale, locales }) { return { props: { hreflang: locales.map(l => ({ locale: l, url: `https://example.com/${l}/about`, })), }, }; } // У компоненті Head: {hreflang.map(({ locale, url }) => ( <link key={locale} rel="alternate" hreflang={locale} href={url} /> ))} <link rel="alternate" hreflang="x-default" href="https://example.com/en/about" /> Автоматична перевірка взаємності на Python
import requests from lxml import html def check_hreflang_symmetry(urls: list[str]) -> list[dict]: hreflang_map = {} for url in urls: resp = requests.get(url, timeout=10) doc = html.fromstring(resp.content) links = doc.cssselect('link[rel="alternate"][hreflang]') hreflang_map[url] = { link.get('hreflang'): link.get('href') for link in links } errors = [] for url, alternates in hreflang_map.items(): for lang, alt_url in alternates.items(): if lang == 'x-default': continue if alt_url not in hreflang_map: errors.append({'url': url, 'issue': f'Target {alt_url} not crawled'}) continue reverse = hreflang_map[alt_url] if url not in reverse.values(): errors.append({ 'url': url, 'lang': lang, 'issue': f'{alt_url} does not link back to {url}' }) return errors Покрокове налаштування hreflang для мультирегіонального сайту
- Аудит поточної структури. Перевірте всі версії сторінок на наявність hreflang. Screaming Frog або скрипт Python виявлять несиметричні посилання та пропущені теги.
- Вибір стратегії. Мовна (тільки мова) або регіональна (мова + регіон). Наприклад,
ruvsru-RU,ru-UA,ru-KZ. Визначте, чи потрібен x-default. - Генерація тегів. Реалізуйте автоматичне додавання hreflang у шаблон або Sitemap. Використовуйте код вище як відправну точку.
- Тестування. Завантажте оновлені Sitemap у Google Search Console і перевірте розділ «Інтернаціоналізація». Виправте всі помилки.
- Моніторинг. Щотижня перевіряйте GSC на появу нових помилок — іноді після оновлення контенту теги збиваються.
Що входить в роботу?
За підсумками аудиту та налаштування hreflang ви отримуєте:
- Детальний звіт про знайдені помилки з розбивкою по сторінках.
- Виправлені теги на всіх мовних версіях.
- Автоматизовану генерацію hreflang (якщо потрібно — у коді або Sitemap).
- Налаштований моніторинг у Google Search Console.
- Інструкцію з підтримки для ваших розробників.
- Гарантію відсутності помилок протягом 30 днів після здачі.
Терміни та результати
Аудит і виправлення існуючих hreflang для сайту до 500 сторінок — 2–3 робочих дні. Впровадження з нуля, включаючи генерацію в коді та XML Sitemap — 3–5 днів залежно від CMS або фреймворку. Для сайтів з нестандартною структурою URL (субдомени по регіонах, ccTLD) додається 1–2 дні на тестування.
Виправлення помилок hreflang економить до $15 000 на місяць на нецільовому трафіку — це підтверджують дані наших клієнтів. Середня економія становить $12 000 на місяць після налаштування. Зв'яжіться з нами для аудиту вашого сайту. Отримайте консультацію інженера — ми запропонуємо план дій і розрахуємо точну вартість.
Інструменти для валідації
Перевірити коректність можна кількома інструментами:
Google Search Console — розділ «Інтернаціоналізація» показує помилки hreflang: несиметричні посилання, невірні коди, сторінки без самопосилання.
Screaming Frog — краулить сайт і перевіряє взаємність hreflang між усіма версіями в розділі Internationalisation.
Переконайтеся, що використовуєте мовні коди BCP 47 (наприклад, ru, en, uk). Замовте налаштування hreflang у наших інженерів — ми гарантуємо усунення всіх помилок і зростання цільового трафіку.







