Якщо у вас є кілька версій сторінки різними мовами або для різних регіонів, допоможіть Google ідентифікувати їх. Тоді в результатах пошуку будуть відображатися ті мовні версії ваших сторінок, які найкраще підходять для користувача.
Google може знайти альтернативні версії ваших сторінок, навіть якщо ви не зробите жодних дій, але все ж бажано вказувати їх явно.
Нижче наведено приклади ситуацій, в яких ми рекомендуємо вказувати альтернативні сторінки.
- Перекладено лише шаблон веб-сторінки (наприклад, панель навігації та нижній колонтитул), а основний контент опублікований мовою оригіналу. Такий формат характерний для сторінок, контент яких створюється користувачами (наприклад, повідомлення на форумах).
- На сайті представлені матеріали однією мовою, проте вони трохи відрізняються в залежності від регіону. Так, контент англійською мовою може бути призначений для користувачів з Великобританії, Ірландії та США.
- Вміст сайту повністю перекладено кількома мовами. Наприклад, якщо кожна сторінка має версії німецькою та англійською мовами.
Локалізовані версії сторінки вважаються дублікатами, тільки якщо основний контент залишається неперекладеним.
Методи вказівки альтернативних сторінок
Версії сторінок, призначені для користувачів з різних регіонів, які розмовляють різними мовами, можна вказати трьома способами.
Ці методи є рівноцінними з точки зору Google. Ви можете вибрати той, який найбільше підходить для вашого сайту, або використовувати всі три одночасно. В останньому випадку ви не надасте сайту жодних переваг у Пошуку, але можете зіткнутися з зайвими труднощами при роботі з трьома способами замість одного.
Використовуйте атрибут hreflang, щоб повідомляти Google про те, що певні сторінки є локалізованими варіантами одного й того ж контенту. Роботи Google визначають мову тієї чи іншої сторінки за допомогою спеціальних алгоритмів, а не атрибута hreflang або HTML-атрибута lang.
Загальні рекомендації
- Кожна мовна версія сторінки повинна містити посилання на версії для інших мов, а також на саму себе.
- URL варіантів сторінок повинні бути вказані повністю, включаючи назви протоколів (http або https):
використовуйте форматhttps://example.com/foo, а не//example.com/fooабо/foo. - URL варіантів сторінок можуть знаходитися в різних доменах.
- Якщо у вас є кілька сторінок на одній мові, але для різних регіонів, ми рекомендуємо створити також і загальну URL без прив’язки до місця розташування. Наприклад, якщо у вас є окремі URL-адреси для англомовних жителів Ірландії (
en-ie), Канади (en-ca) та Австралії (en-au), створіть також загальну версію сторінки (en) для користувачів із США, Великої Британії та інших регіонів, де також розмовляють англійською. За бажанням ви можете використовувати як таку загальну версію одну зі сторінок з кодом певного регіону. - Якщо сторінки не посилаються одна на одну, теги будуть проігноровані. Це зроблено для того, щоб на інших сайтах не можна було додати тег, що вказує, що сторінка є варіантом однієї з ваших сторінок.
- Якщо вказання всіх двосторонніх посилань для кожної мови займає багато часу, можна опустити деякі мови на деяких сторінках: Google у будь-якому випадку обробить сторінки, що посилаються одна на одну. Однак нові мовні версії сторінок, за рахунок яких ви збираєтеся розширити аудиторію, повинні взаємно посилатися на основні або вихідні варіанти. Наприклад, якщо ваш сайт спочатку був створений французькою мовою в домені
.fr, то важливіше налаштувати двонаправлену переадресацію між основним доменом.frі новими сторінками, призначеними для мексиканців (.mx) і іспанців (.es), а не між цими іспаномовними сторінками (.mxі.es). - Також можна створити резервну сторінку для мов, яких немає на вашому сайті, наприклад, сторінку для вибору мови/країни або головну сторінку з автоматичною переадресацією. Для цього використовуйте значення
x-default:<link rel="alternate" href="https://example.com/" hreflang="x-default" />
Теги HTML
Додайте елементи <link rel="alternate" hreflang="lang_code"... > у заголовок своєї сторінки, щоб повідомити Google про всі локалізовані варіанти сторінки. Це зручно, якщо у вас немає файлу Sitemap або можливості вказати HTTP-заголовки відповіді для сайту.
В елемент <head> кожного варіанта сторінки потрібно додати набір елементів <link> з посиланнями на всі версії сторінки, включаючи її саму. У всіх версіях сторінки використовується один і той самий набір посилань.Детальніше…
Кожен елемент link повинен мати таку структуру:
<link rel="alternate" hreflang="lang_code" href="url_of_page" />
| Синтаксис | |
|---|---|
lang_ | Підтримуваний код мови та регіону, що відповідає версії сторінки, або тег x-default для мов, які не вказані в атрибуті hreflang сторінки. |
url_ | Повний URL версії сторінки для вказаної мови та регіону. |
Теги <link> повинні знаходитися в правильно сформованому розділі <head> коду HTML. Якщо у вас є сумніви, перевірте код згенерованої сторінки за допомогою валідатора коду HTML. Так ви дізнаєтеся, чи знаходяться теги link всередині елемента <head>. Крім того, не використовуйте поєднання тегів link для створення альтернативних версій документа. Наприклад, не слід поєднувати анотації hreflang з іншими атрибутами, такими як media, в одному тегу <link>.
Приклад
Компанія Example Widgets, Inc володіє сайтом, який призначений для користувачів з Великобританії, Німеччини та США. Регіональні версії сторінок з наступними URL-адресами мають лише деякі відмінності:
| URL з регіональними відмінностями | |
|---|---|
https:/ | Головна сторінка англійською мовою з інформацією про тарифи на міжнародну доставку з США. |
https:/ | Сторінка для клієнтів з Великої Британії з цінами в фунтах стерлінгів. |
https:/ | Сторінка для клієнтів із США з цінами в доларах США. |
https:/ | Головна сторінка німецькою мовою. |
https:/ | Сторінка за замовчуванням, не призначена для певної мови чи регіону. Тут користувачі можуть вибрати свою мову та країну. |
Зверніть увагу, що Google не визначає цільову аудиторію сторінок за субдоменами в URL (en, en-gb,en-us, de). Ви повинні вказати її явно.
Нижче наведено фрагмент коду HTML, який потрібно було б вставити в розділ <head> усіх перерахованих у таблиці вище сторінок. Завдяки цьому фрагменту у користувачів із США та Великої Британії, інших англомовних користувачів і тих, хто розмовляє німецькою, відкривалися б відповідні локалізовані сторінки, а у всіх інших – сторінка за замовчуванням. У результатах пошуку показуватиметься сторінка, що відповідає налаштуванням браузера користувача.
<head>
<title>Widgets, Inc</title>
<link rel="alternate" hreflang="en-gb"
href="https://en-gb.example.com/page.html" />
<link rel="alternate" hreflang="en-us"
href="https://en-us.example.com/page.html" />
<link rel="alternate" hreflang="en"
href="https://en.example.com/page.html" />
<link rel="alternate" hreflang="de"
href="https://de.example.com/page.html" />
<link rel="alternate" hreflang="x-default"
href="https://www.example.com/" />
</head>Заголовки HTTP
Щоб повідомити Google про версії сторінки іншими мовами та для інших регіонів, можна використовувати заголовок HTTP у відповідях на запит GET сторінки. Цей варіант особливо підходить для файлів, формат яких відрізняється від HTML (наприклад, PDF).
Заголовок повинен мати наступний синтаксис:
Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
| Синтаксис | |
|---|---|
<url_ | Повний URL альтернативної версії сторінки, що відповідає регіональним налаштуванням, вказаним у пов’язаному атрибуті hreflang. URL повинен бути взятий у кутові дужки: <і >. Приклад: <https:/ |
lang_ | Підтримуваний код мови та регіону, що відповідає версії сторінки, або значення x-default для мов, які не вказані окремо в атрибутах hreflang на цій сторінці. |
Набір значень <url>, rel="alternate" і hreflang необхідно вказати для кожної версії сторінки, включно із запитуваною. Набори значень розділяються комами, як показано в прикладі нижче. Заголовок Link: однаковий незалежно від версії сторінки. Детальніше…
Приклад
Нижче наведено приклад заголовка Link:, який повертається сайтом, де є три версії PDF-файлу: для англомовних відвідувачів, для німецькомовних швейцарців і німецькомовна версія для користувачів з інших країн.
Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en",
<https://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
<https://de.example.com/file.pdf>; rel="alternate"; hreflang="de"Файл Sitemap
Повідомити Google про те, що на вашому сайті є версії для різних мов або країн, можна за допомогою XML-файла Sitemap. Для цього додайте в нього елемент <loc>, вказавши в ньому URL сторінки, а в дочірніх тегах <xhtml:link> – посилання на всі її мовні та регіональні варіанти, включаючи саму сторінку. Таким чином, якщо у вас є три варіанти сторінки, то в файлі Sitemap буде запис для URL кожного варіанта і в кожному із записів буде три ідентичних дочірніх теги.
Правила щодо файлів Sitemap
- Вкажіть простір імен xhtml наступним чином:
xmlns:xhtml="http://www.w3.org/1999/xhtml"
- Створюйте окремий елемент
<url>для кожного URL, як при роботі з будь-якими файлами Sitemap. - У кожному елементі
<url>повинен бути дочірній елемент<loc>, в якому вказується URL сторінки. - У кожному елементі
<url>повинен бути дочірній елемент<xhtml:link rel="alternate" hreflang="supported_language-code">, в якому перераховуються всі варіанти сторінки, включаючи поточну. Порядок дочірніх елементів<xhtml:link>не має значення, але ви можете дотримуватися певної послідовності, щоб було простіше відстежувати помилки. Дочірні елементи не враховуються в рамках обмеження на кількість URL у файлах Sitemap. - Додавайте файли Sitemap до тих каталогів на сайті, з якими вони співвідносяться. Нагадуємо, що файл Sitemap може містити тільки дочірні URL-адреси з каталогу, в якому він розміщений.
- Наша документація по файлам Sitemap також відноситься до файлів Sitemap з розширеним синтаксисом. Дотримуйтесь загальних рекомендацій щодо файлів Sitemap.
- Детальніше…
Приклад
Нижче наведено приклад для сторінки англійською мовою для англомовних користувачів з усього світу, яка має два варіанти для німецькомовних: для відвідувачів зі Швейцарії та з інших країн. Ось усі URL-адреси, які повинні бути на сайті:
www.example.com/english/page.html– сторінка для англомовних користувачів.www.example.de/deutsch/page.html– сторінка для користувачів, які розмовляють німецькою.www.example.de/schweiz-deutsch/page.html– сторінка для користувачів зі Швейцарії, які розмовляють німецькою.
Нижче наведено файл 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://www.example.com/english/page.html</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://www.example.de/deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="de-ch"
href="https://www.example.de/schweiz-deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://www.example.com/english/page.html"/>
</url>
<url>
<loc>https://www.example.de/deutsch/page.html</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://www.example.de/deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="de-ch"
href="https://www.example.de/schweiz-deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://www.example.com/english/page.html"/>
</url>
<url>
<loc>https://www.example.de/schweiz-deutsch/page.html</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="https://www.example.de/deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="de-ch"
href="https://www.example.de/schweiz-deutsch/page.html"/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://www.example.com/english/page.html"/>
</url>
</urlset>Підтримувані коди мов і регіонів
Значення атрибута hreflang складається з одного або двох (не обов’язково) значень, розділених дефісом. Приклад: en-US. Перша частина атрибута hreflang визначає код мови (у форматі ISO 639-1), друга необов’язкова частина визначає код регіону (у форматі ISO 3166-1 Alpha 2) альтернативного URL. Підтримуються тільки коди мов, перераховані в стандарті ISO 639-1, і коди регіонів, перераховані в стандарті ISO 3166-1 Alpha 2. Інші коди, не вказані в цих стандартах, наприклад es-419, не підтримуються.
Для жителів Бельгії, які розмовляють різними мовами, можна використовувати наступні коди мов і регіонів:
- Правильно (німецька для користувачів з Бельгії):
de-be - Правильно (нідерландська для користувачів з Бельгії):
nl-be - Правильно (французька для користувачів з Бельгії):
fr-be - Некоректно, оскільки перша частина коду визначає мову (
beє мовним кодом Білорусі):be
Щоб спростити розмітку, ви можете вказати лише код мови. Приклад:
de– контент німецькою мовою для будь-якого регіону;en-GB– контент англійською мовою для користувачів з Великої Британії;de-ES– контент німецькою мовою для користувачів з Іспанії.
Якщо у мові є кілька систем письма, то потрібний варіант вибирається з урахуванням коду країни. Наприклад, для користувачів з Тайваню з кодом zh-TW буде автоматично задано китайську мову з традиційною ієрогліфікою. Набір символів також можна задати явним чином за допомогою кодів ISO 15924, як показано нижче:
zh-Hant– китайська (традиційна);zh-Hans– китайська (спрощена).
За необхідності можна вказати код регіону, наприклад так: zh-Hans-US (китайська спрощена для користувачів у США).
Як за допомогою значення x-default налаштувати сторінку для користувачів, для яких немає мовної версії
Зарезервоване значення x-default застосовується, коли на сайті не підтримується мова або регіональний варіант, що збігається з налаштуваннями браузера. Це значення рекомендується використовувати при вказівці резервної сторінки для користувачів, які задали мовні налаштування, що не відповідають жодній з локалізованих версій вашого сайту. Зарезервоване значення x-default було розроблено для сторінок вибору мови та буде працювати з ними найбільш коректно, але ви можете використовувати його і для будь-яких інших сторінок.
Код мови при цьому не вказується, оскільки значення x-default свідчить про те, що сторінка призначена для користувачів, у яких у налаштуваннях браузера задано мову, що не використовується на сайті.
Щоб додати анотацію для елемента hreflang="x-default", додайте додатковий тег link до існуючих анотацій hreflang і вкажіть атрибут href в URL, який ви хочете зробити стартовою сторінкою для користувачів, якщо ваш сайт не перекладено їхньою мовою. Наприклад, впровадити HTML можна таким чином:
<link rel="alternate" href="https://example.com/en-gb" hreflang="en-gb" /> <link rel="alternate" href="https://example.com/en-us" hreflang="en-us" /> <link rel="alternate" href="https://example.com/en-au" hreflang="en-au" /> <link rel="alternate" href="https://example.com/country-selector" hreflang="x-default" />
Усунення несправностей
Поширені помилки
Нижче перераховані найпоширеніші помилки при застосуванні атрибута hreflang.
- Немає зворотних посилань. Якщо сторінка X містить посилання на сторінку Y, то на сторінці Y має бути зворотне посилання. В іншому випадку атрибути
hreflangможуть бути не прочитані або неправильно інтерпретовані. Припустимо, на сторінціhttps://de.example.com/index.htmlє таке посилання:<link rel="alternate" hreflang="en-gb" href="https://en-gb.example.com/index.html" />
У цьому випадку на сторінку
https://en-gb.example.com/index.htmlпотрібно додати посилання з атрибутомhreflang, яке буде вказувати на версію контенту німецькою мовою (de):<link rel="alternate" hreflang="de" href="https://de.example.com/index.html" />
- Неправильно задані мовні коди. У всіх мовних кодах повинна бути вказана мова (у форматі ISO 639-1) і по можливості регіон (у форматі ISO 3166-1 Alpha 2) для альтернативного URL. Не можна вказувати тільки регіон.
- Неправильно задані коди регіонів. Для всіх потрібних регіонів необхідно використовувати офіційно призначені елементи коду у форматі ISO 3166-1 Alpha 2. Якщо використовувати коди, вже зарезервовані в інших цілях, частина анотації з цими кодами не враховуватиметься. Наприклад, коди
EU,UNабоUKв анотаціяхhreflangігноруватимуться в Пошуку Google.
Усунення несправностей з атрибутом hreflang
Для налагодження анотацій з атрибутом hreflang можна використовувати різні сторонні інструменти. Ось деякі з них (Google не перевіряє та не забезпечує їх працездатність).
- Генератор тегів
hreflangвід Aleyda Solis дозволяє створювати та змінювати атрибутиhreflang. - Інструмент тестування тегів
hreflangвід Merkle SEO дозволяє перевіряти атрибутиhreflangна сторінці сайту.