Оптимізація SEO для багатомовного сайту (hreflang audit)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Оптимізація SEO для багатомовного сайту (hreflang audit)
Середня
~2-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

Оптимізація SEO для мультиязичного сайту (hreflang audit)

Мультиязичний сайт без правильно налаштованого hreflang — джерело систематичних SEO-проблем. Google показує російську версію німецьким користувачам, англійська сторінка ранжирується в Україні замість української, дублюючи переводи з'їдають crawl budget. Hreflang — це атрибут, який сообщает поисковику: "для користувачів з мовою X та регіоном Y користуй цю версію сторінки".

Синтаксис hreflang

<link rel="alternate" hreflang="ru" href="https://example.com/ru/about/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<link rel="alternate" hreflang="uk" href="https://example.com/uk/about/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/about/" />

Три місці для розміщення:

  1. <head> кожної сторінки
  2. HTTP Link: заголовок (для PDF, non-HTML)
  3. XML Sitemap

Критичне правило: hreflang повинен бути взаємним. Якщо сторінка A посилається на B через hreflang, B обов'язано посилатися назад на A.

Поширені помилки

1. Відсутність самоссилки. Кожна сторінка повинна містити hreflang на саму себе:

<!-- На /ru/about/ -->
<link rel="alternate" hreflang="ru" href="https://example.com/ru/about/" />
<!-- + посилання на всі інші мовні версії -->

2. Неправильні коди мов. Використовується ISO 639-1 (мова) та ISO 3166-1 alpha-2 (регіон):

ru          → російська (без регіону)
ru-RU       → російська, Росія
uk          → українська
en-US       → англійська, США
en-GB       → англійська, Велика Британія

3. Змішування www/non-www, http/https. Повинна відповідати canonical версії.

4. hreflang на noindex-сторінки. Google рекомендує цього не робити.

Аудит: виявлення помилок

Screaming Frog: Crawl → Reports → Hreflang → перевірити missing return links та неправильні коди.

Python-скрипт для валідації:

import requests
from bs4 import BeautifulSoup
from collections import defaultdict

def fetch_hreflang(url: str) -> dict:
    try:
        resp = requests.get(url, timeout=10)
        soup = BeautifulSoup(resp.text, 'html.parser')
        links = soup.find_all('link', rel='alternate')
        return {
            link.get('hreflang'): link.get('href')
            for link in links
            if link.get('hreflang')
        }
    except:
        return {}

def audit_hreflang(urls: list[str]) -> list[dict]:
    hreflang_map = {}
    errors = []

    for url in urls:
        hreflang_map[url] = fetch_hreflang(url)

    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({
                    'type': 'missing_page',
                    'source': url,
                    'target': alt_url
                })
                continue
            target_alternates = hreflang_map.get(alt_url, {})
            back_links = [v for v in target_alternates.values() if v == url]
            if not back_links:
                errors.append({
                    'type': 'missing_return_link',
                    'source': url,
                    'target': alt_url
                })

    return errors

Перевірка через GSC: Search Console → International Targeting → Language показує помилки hreflang виявлені Googlebot.

Hreflang у Sitemap

Для великих сайтів (1000+ сторінок) утримувати hreflang в кожному <head> складно. Використовувати sitemap:

<?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://example.com/ru/about/</loc>
    <xhtml:link rel="alternate" hreflang="ru"      href="https://example.com/ru/about/"/>
    <xhtml:link rel="alternate" hreflang="en"      href="https://example.com/en/about/"/>
    <xhtml:link rel="alternate" hreflang="uk"      href="https://example.com/uk/about/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/about/"/>
  </url>

</urlset>

x-default використання

x-default вказує сторінку для користувачів чия мова/регіон не співпадає ні з одним hreflang. Використовується для:

  • Сторінки вибору мови
  • Англійська як дефолтна для невідомих ринків
  • Можна пропустити якщо немає нейтральної версії

Структури URL для мультиязичних сайтів

Структура Приклад SEO
Поддомен ru.example.com Чистіше розділення, складніше
Підпапка example.com/ru/ Простіше, ділить авторитет домену
ccTLD example.ru Сильний геосигнал, дорого

Підпапка (/ru/, /en/) — рекомендується для більшості проектів.

Тривалість

Аудит hreflang на існуючому сайті (до 5 мов, 500 сторінок) — 2–3 дні: краулинг, аналіз помилок, звіт. Виправлення + налаштування автогенерації в шаблоні/sitemap — 3–5 днів. Повторна перевірка через 4 тижні — включена.