Ваш сайт отлично ранжируется в Германии, но Google упорно показывает русскую версию немецким пользователям. Или английская страница появляется в Украине вместо украинской. Знакомо? Это классическая проблема отсутствия или неправильной настройки hreflang. Мы сталкивались с такими кейсами десятки раз — и каждый раз трафик восстанавливался на 20–40%. На одном проекте с 12 языками (более 5000 страниц) мы нашли 340 ошибок возвратных ссылок и 60 неверных кодов. После исправления трафик из Европы вырос на 35% за 2 месяца, а клиент сэкономил 1.2 млн рублей в год на контекстной рекламе. По оценкам, 90% мультиязычных сайтов имеют хотя бы одну критическую ошибку hreflang, что приводит к потере до 40% потенциального трафика.
Почему hreflang критичен для мультиязычного SEO?
Представьте интернет-магазин с версиями для России (ru-RU), Украины (ru-UA) и Казахстана (ru-KZ). Без hreflang Google не понимает, какую страницу показывать пользователю в Алматы. В итоге — низкий CTR, высокий bounce rate. Hreflang решает эту задачу, привязывая каждую страницу к конкретному языку и региону. Это особенно важно для сайтов с одинаковым контентом на разных языках — без hreflang они воспринимаются как дубли. Согласно исследованию, сайты с правильно настроенным hreflang получают на 30% больше органического трафика. Hreflang-аудит в 2 раза эффективнее для решения дублей, чем использование только canonical.
Какие коды языков и регионов использовать?
| Язык | Код ISO 639-1 | Пример региона | Код ISO 3166-1 alpha-2 |
|---|---|---|---|
| Русский | ru | Россия | RU |
| Английский | en | США | US |
| Украинский | uk | Украина | UA |
| Немецкий | de | Германия | DE |
| Французский | fr | Франция | FR |
Типичная ошибка: код ua для украинского языка (это код страны, а не языка). Правильно — uk. Также не используйте eng (трёхбуквенный), только двухбуквенные коды.
Как избежать типичных ошибок hreflang?
| Ошибка | Причина | Исправление |
|---|---|---|
| Отсутствие самоссылки | Страница не ссылается на себя | Добавить <link rel="alternate" hreflang="ru" href="..."> на себя |
| Неправильные коды | Неверный ISO-код (например, ua вместо uk) |
Использовать uk для украинского языка, en для английского |
| Конфликт canonical и hreflang | URL отличаются по протоколу или слешу | Обеспечить полное совпадение URL |
| hreflang на noindex-страницах | Страница закрыта от индексации | Удалить hreflang или убрать noindex |
Каждая страница должна включать самоссылку. Если canonical ведёт на https://example.com/ru/, а hreflang на http://example.com/ru/ — конфликт. URL должны совпадать полностью.
Как провести hreflang-аудит самостоятельно?
- Соберите все URL сайта с помощью краулера (например, Screaming Frog).
- Экспортируйте отчёт Hreflang Pages и отфильтруйте ошибки: Missing Return Links, Incorrect Language Codes, Non-Canonical Return Link.
- Проверьте взаимность ссылок — каждая языковая версия должна ссылаться на все остальные, включая себя.
- Убедитесь, что страницы с noindex не содержат hreflang.
- Исправьте найденные ошибки: добавьте недостающие ссылки, поправьте коды, синхронизируйте canonical и hreflang.
Мы используем аналогичный подход, но автоматизируем его с помощью Python-скриптов. Пример скрипта выше.
Что такое x-default и когда он необходим?
x-default — это резервная страница для пользователей, чей язык или регион не указан. Типичные сценарии:
- Страница выбора языка.
- Английская версия как дефолтная для незнакомых рынков.
- Если нейтральной версии нет, x-default можно опустить — поисковик сам выберет наиболее подходящую.
Выбор структуры URL: подпапки, поддомены или ccTLD
Выбор структуры URL влияет на SEO и управляемость. Подпапки (example.com/ru/) сохраняют ссылочный вес и просты в обслуживании — это баланс между SEO и удобством. Поддомены (ru.example.com) дают гибкость в аналитике и разделении кода, но размывают авторитет домена. ccTLD (.ru) даёт сильный геосигнал, но требует отдельных настроек для каждого домена, дороже и сложнее в управлении. Для большинства проектов мы рекомендуем подпапки как оптимальный вариант.
Как мы проводим аудит hreflang
Наш подход — комплексный: от автоматизированного краулинга до ручной валидации. Используем Screaming Frog с фильтрами: Missing Return Links, Incorrect Language Codes, Non-Canonical Return Link. Для клиента с 12 языками (более 5000 страниц) мы нашли 340 ошибок возвратных ссылок и 60 неверных кодов. После исправления трафик из Европы вырос на 35% за 2 месяца.
Для автоматической проверки взаимности пишем Python-скрипт. Он собирает hreflang с каждой страницы и проверяет, есть ли обратная ссылка.
Пример Python-скрипта для аудита hreflang
import requests, time from bs4 import BeautifulSoup from urllib.parse import urljoin def fetch_hreflang(url): try: resp = requests.get(url, timeout=10, headers={'User-Agent': 'HreflangAudit/1.0'}) 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): hreflang_map = {} errors = [] for url in urls: hreflang_map[url] = fetch_hreflang(url) time.sleep(0.5) 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, 'lang': lang, 'target': alt_url}) continue target_alternates = hreflang_map[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, 'lang': lang, 'target': alt_url}) return errors Также проверяем через Google Search Console International Targeting — раздел Language. Там видны критические ошибки, которые заметил Googlebot.
Что входит в аудит hreflang
- Полный отчёт по всем языковым версиям с детальным списком ошибок (отсутствие самоссылок, неверные коды, конфликты canonical).
- Рекомендации по исправлению каждой ошибки с примерами кода.
- Настройка автогенерации hreflang для sitemap или сборки (под ваш стек).
- Консультация инженера по оптимизации мультиязычной структуры.
- Повторная проверка после внедрения правок.
Сроки и стоимость
Аудит hreflang на сайте до 5 языков и 500 страниц занимает 2–3 рабочих дня. Реализация правок и настройка автогенерации — ещё 3–5 дней. Точный срок и стоимость рассчитываем индивидуально после предварительного анализа. Свяжитесь с нами — оценим ваш проект бесплатно. Закажите hreflang-аудит, и вы увидите реальные результаты в Search Console уже через месяц. Получите консультацию — наши инженеры помогут разобраться даже в самой запутанной конфигурации.







