Налаштування hreflang для багатомовного сайту

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування hreflang для багатомовного сайту
Середня
від 1 робочого дня до 3 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування hreflang для багатомовних сайтів

hreflang повідомляє Google, яка версія сторінки призначена для якої мови та регіону. Без правильного hreflang пошукові машини показують неправильні мовні версії користувачам — російська версія ранжується в Німеччині, англійська — в Росії.

Синтаксис тегів

<!-- На кожній мовній версії сторінки додайте ВСІ альтернативи -->
<link rel="alternate" hreflang="ru"    href="https://example.ru/products/laptop">
<link rel="alternate" hreflang="en"    href="https://example.com/products/laptop">
<link rel="alternate" hreflang="uk"    href="https://example.ua/products/laptop">
<link rel="alternate" hreflang="de"    href="https://example.de/products/laptop">
<link rel="alternate" hreflang="x-default" href="https://example.com/products/laptop">

x-default — версія за замовчуванням для користувачів, чия мова не збігається з жодною вказаною, або для сторінки вибору мови.

Регіональна специфіка

Коли потрібно розділяти за країною, а не тільки за мовою:

<link rel="alternate" hreflang="ru-RU" href="https://example.ru/products/laptop">
<link rel="alternate" hreflang="ru-UA" href="https://example.ua/ru/products/laptop">
<link rel="alternate" hreflang="ru-KZ" href="https://example.kz/products/laptop">
<link rel="alternate" hreflang="en-US" href="https://example.com/products/laptop">
<link rel="alternate" hreflang="en-GB" href="https://example.co.uk/products/laptop">

Реалізація у Laravel

// config/locales.php
return [
    'ru' => ['hreflang' => 'ru', 'domain' => 'example.ru'],
    'en' => ['hreflang' => 'en', 'domain' => 'example.com'],
    'uk' => ['hreflang' => 'uk', 'domain' => 'example.ua'],
    'de' => ['hreflang' => 'de', 'domain' => 'example.de'],
];

// У контролері
public function show(string $slug): View
{
    $page = Page::where('slug->ru', $slug)
        ->orWhere('slug->en', $slug)
        ->firstOrFail();

    $hreflangs = $this->buildHreflangs($page);

    return view('page', compact('page', 'hreflangs'));
}

protected function buildHreflangs(Page $page): array
{
    $locales = config('locales');
    $hreflangs = [];

    foreach ($locales as $locale => $config) {
        $slug = $page->getTranslation('slug', $locale);
        if ($slug) {
            $hreflangs[$config['hreflang']] = 'https://' . $config['domain'] . '/' . $slug;
        }
    }

    $hreflangs['x-default'] = $hreflangs['en'] ?? reset($hreflangs);

    return $hreflangs;
}
@foreach ($hreflangs as $lang => $url)
    <link rel="alternate" hreflang="{{ $lang }}" href="{{ $url }}">
@endforeach

Hreflang у XML Sitemap

Альтернатива тегам у <head> — вказати у sitemap. Зручніше для великих сайтів:

<url>
    <loc>https://example.ru/products/laptop</loc>
    <xhtml:link rel="alternate" hreflang="ru" href="https://example.ru/products/laptop"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/products/laptop"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/products/laptop"/>
</url>

Типові помилки

  • Односторонній специфікування — якщо сторінка A посилається на B як альтернативу, сторінка B повинна посилатися назад на A
  • Неіснуючі URL — hreflang з 404 або редиректом ігнорується
  • Різний контент — однаковий контент з різними мовами hreflang сприймається як дублікати
  • Неправильний код мови — тільки ISO 639-1 для мови та ISO 3166-1 Alpha-2 для країни

Перевірка

Google Search Console → Coverage → перевірте помилки hreflang. hreflang Tags Testing Tool (Merkle SEO) дозволяє перевірити коректність тегів на сторінці.

Час налаштування: 1–2 дні для багатомовного сайту з кількома доменами.