Міжнародне SEO: hreflang і структура сайту
Міжнародне SEO — це робота з версіями сайту для різних мов і регіонів, і головний його інструмент — анотації hreflang. Вони повідомляють Google, які сторінки є локалізованими варіантами одного вмісту. Важливо розуміти, чого hreflang не робить: Google не визначає за ним мову сторінки і не «вгадує» без нього хибно в кожному разі. Нижче — за довідкою Google про локалізовані версії та посібником із мультирегіональних сайтів: правила запису, коди, структура адрес, чого не робити і які популярні твердження не підтверджено.
Навіщо вказувати версії
Google може знайти мовні версії й сам, але довідка радить указувати їх явно: так Пошук точніше добирає версію за мовою чи регіоном. Рекомендовано це в таких випадках: основний вміст однією мовою, а перекладено лише шаблон (навігацію, підвал — як на форумах із користувацьким контентом); невеликі регіональні відмінності в одній мові (наприклад, англійська для США, Великої Британії та Ірландії); повністю перекладений сайт. Локалізовані версії вважаються дублікатами, лише якщо основний вміст лишився неперекладеним (дубльований контент).
Три способи вказати версії
Google підтримує три способи: теги в HTML, HTTP-заголовок і мапа сайту. З погляду Google вони рівнозначні, обирайте зручний. Використовувати всі три можна, але користі в пошуку це не дає, а підтримувати три реалізації складніше.
<head> <link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/page/" /> <link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page/" /> <link rel="alternate" hreflang="en" href="https://example.com/en/page/" /> <link rel="alternate" hreflang="de" href="https://example.com/de/page/" /> <link rel="alternate" hreflang="x-default" href="https://example.com/" /> </head>
- HTML: елементи
<link rel="alternate" hreflang="…">у<head>; набір посилань однаковий у кожній версії й містить посилання на саму сторінку. Не обʼєднуйте hreflang з іншими атрибутами (наприклад,media) в одному елементі. - HTTP-заголовок: підходить для не-HTML файлів, наприклад PDF; заголовок
Linkз усіма версіями, зокрема запитаною. - Мапа сайту: для кожного URL —
<xhtml:link rel="alternate" hreflang="…">з усіма версіями, зокрема самою сторінкою (XML-мапа).
Правила для всіх способів
- Кожна версія перелічує себе й усі решту.
- Звʼязки мають бути взаємними. Якщо дві сторінки не вказують одна на одну, теги ігноруються: так сторонній сайт не може оголосити себе вашою версією. Якщо повний набір підтримувати важко, на деяких сторінках можна пропускати частину мов; але нові версії обовʼязково треба повʼязати в обидва боки з вихідною.
- Адреси повні, з протоколом:
https://example.com/foo, а не//example.com/fooчи/foo. Альтернативи можуть бути й на інших доменах. - Резервна сторінка. Якщо є окремі версії для однієї мови в різних регіонах (
en-IE,en-CA,en-AU), передбачте загальну (en) для решти. Для незіставлених мов, особливо для сторінок вибору мови чи головних з автоперенаправленням, радятьx-default. Довідка каже «розгляньте», а не «без нього Google не знає, що показати».
Коди мов і регіонів
Значення hreflang складається з коду мови за ISO 639-1 і необовʼязкового коду регіону за ISO 3166-1 Alpha 2 через дефіс. Підтримуються лише коди з цих стандартів: наприклад, es-419 не підтримується. Регістр не важливий, але регіон прийнято писати великими літерами (en-GB). Не можна вказувати лише країну: перший код — це мова, і Google не виводить її з країни. Тому для бельгійців: de-BE, nl-BE, fr-BE, а просто be — це білоруська мова. Допустимі й записи лише з мовою (de) та варіанти письма — zh-Hant, zh-Hans. Отже, uk та uk-UA — різні записи: перший для мови незалежно від регіону, другий для користувачів з України.
Як Google визначає мову сторінки
Google не використовує hreflang і атрибут lang для визначення мови сторінки: він дивиться на видимий вміст. Допоможіть йому: одна мова для тексту й навігації на сторінці, без паралельних перекладів. Якщо перекладено лише шаблон, а основний текст лишився однією мовою, користувач може побачити у видачі той самий вміст з різною обвʼязкою.
Структура адрес
Довідка рекомендує окремі адреси для кожної мовної версії, а не підміну мови за cookie чи налаштуваннями браузера. Динамічне перемикання може призвести до того, що Google не знайде всіх версій: Googlebot зазвичай приходить зі США й не задає заголовок Accept-Language. Варіанти структури:
| Варіант | Плюси | Мінуси |
|---|---|---|
| Домен країни (example.de) | чітке геотаргетування; розташування сервера неважливе; сайти легко розділити | дорого, потрібна інфраструктура, суворі вимоги до доменів; лише одна країна |
| Піддомен (de.example.com) | легко налаштувати; сервери можна розміщувати по-різному | користувач не зрозуміє за адресою, мова це чи країна |
| Підпапка (example.com/de/) | легко налаштувати, низьке навантаження підтримки на одному хості | геотаргетування за адресою менш очевидне; один сервер |
Назви піддоменів на кшталт en-gb Google не використовує для визначення аудиторії: цільову аудиторію треба явно вказати hreflang. Докладніше про домени — в уроці про домени та піддомени.
Чого не робити
- Не перенаправляйте автоматично користувача на іншу мовну версію за припустимою мовою: це може завадити користувачам і пошуковим системам бачити всі версії (редиректи). Натомість додайте посилання на інші версії.
- Не використовуйте аналіз IP для підміни вмісту: він ненадійний, а більшість обходів Google йде зі США.
- Не покладайтеся на «автоматичний переклад у масштабі». Політики проти спаму називають зловживанням масштабним контентом, зокрема, створення безлічі сторінок зі скопійованого вмісту, у тому числі з автоматичною обробкою — підміною синонімів, перекладом, — якщо користувачеві вони майже не дають цінності (політики проти спаму, урок). Заборони на будь-який машинний переклад у цьому тексті немає, але цінність для читача потрібна.
- Не вказуйте неіснуючих адрес: посилання мають вести на робочі сторінки без перенаправлення (canonical кожної версії — на саму себе).
Як перевіряти ефект
Відсутність hreflang — не обовʼязково помилка, а наявність — не гарантія. Перевіряйте на даних: за країнами й запитами в Search Console та за сеансами в аналітиці. Зміни вносьте за планом із контролем (SEO-експерименти). Твердження на кшталт «без hreflang Google часто помиляється» та показники на кшталт «CTR 0,5% і відмови 90%» — окремі випадки, а не документація.
Чек-лист
- Для кожної мовної версії окрема адреса; основний вміст перекладено.
- Обрано один спосіб указання версій: HTML, заголовок або мапа сайту.
- Кожна версія перелічує себе й усі решту; звʼязки взаємні; адреси повні.
- Коди: ISO 639-1 + необовʼязковий ISO 3166-1 Alpha 2; регіон окремо не вказується.
- Є загальна або резервна версія (
x-default) для незіставлених мов. - Немає автоперенаправлення за мовою й підміни за IP; є посилання на інші версії.
Помилки
- Вважати, що hreflang визначає мову сторінки.
- Указувати hreflang лише на одній версії або не включати до набору саму сторінку.
- Писати
beзамістьfr-BEчиes-419. - Підключати всі три способи одразу й розходитися в даних.
- Масово генерувати переклади без цінності для читача.
Що далі
Далі — модуль «Дослідження в SEO»: почнемо з SEO-експериментів, щоб перевіряти такі зміни на даних, а не на розповідях.