Статті ·
Hreflang для українських сайтів: uk чи ua і чому це має значення
Найпоширеніша помилка двомовних сайтів — код ua замість uk. Розбираємо правильну розмітку, вимогу взаємності й те, чому Google мовчки ігнорує неправильні теги.
Коротка відповідь: uk. ua — це код країни Україна, а не мови. Мова українська за стандартом ISO 639-1 позначається як uk.
Помилка настільки поширена, що трапляється приблизно на кожному другому українському сайті з двома мовними версіями. Найгірше — Google про неї не повідомляє: він просто ігнорує теґи з невідомим кодом, і вся розмітка перестає працювати мовчки.
Правильні варіанти
uk— українська мова, будь-яка країна;uk-UA— українська мова для України;ru— російська мова;en— англійська;x-default— версія за замовчуванням для всіх інших мов.
Регіон, якщо він потрібен, пишеться великими літерами через дефіс: uk-UA, не uk-ua.
Головна помилка не в коді
Навіть із правильними кодами розмітка часто не працює через відсутність взаємності. Правило Google просте: якщо сторінка А посилається на Б, то Б мусить посилатися на А. Якщо зворотного посилання немає, ігнорується вся група, а не одна сторінка.
Типовий випадок: українську версію зробили першою і прописали на ній посилання на російську. Потім зробили російську — і забули додати теґи туди. Формально розмітка є, а працює вона як відсутня.
Кожна сторінка посилається й сама на себе
Друга за поширеністю помилка. У блоці мають бути всі версії, включно з поточною:
<!-- цей блок стоїть на КОЖНІЙ сторінці групи, однаковий --> <link rel="alternate" hreflang="uk" href="https://site.ua/storinka" /> <link rel="alternate" hreflang="ru" href="https://site.ua/ru/stranica" /> <link rel="alternate" hreflang="x-default" href="https://site.ua/storinka" />
Саме однаковий: на українській сторінці, на російській, скрізь. Це зручно — блок можна згенерувати один раз і вставити в шаблон.
Навіщо x-default
Він каже Google, що показати користувачу, чия мова не збігається з жодною вашою версією. Без нього пошук вирішує сам. Для українського сайту логічно ставити x-default на українську версію.
Часті питання
Hreflang впливає на позиції?
Прямо — ні. Він не піднімає сайт. Він вирішує іншу задачу: показати потрібну мовну версію потрібному користувачу і не дати версіям конкурувати між собою як дублям.
Чи потрібен hreflang, якщо версія одна?
Ні. Одна мова — розмітка не потрібна взагалі.
Куди його ставити
Три рівноцінні варіанти: у <head>, у HTTP-заголовках або в sitemap. Найпростіший і найнадійніший — <head>.
Чи можна змішувати способи
Краще не треба. Якщо частина версій оголошена в head, а частина в sitemap, помилку потім майже неможливо знайти очима.
Як перевірити
Генератор hreflang робить дві речі: збирає правильний блок для вставки й перевіряє взаємність на живих сторінках — заходить на кожну й дивиться, чи всі версії оголошені у відповідь.
Коди звіряються зі справжнім переліком ISO 639-1, тому ua він позначить як помилку й підкаже правильний варіант. Регулярний вираз «дві малі літери», яким таку перевірку роблять найчастіше, саме на ua і не спрацьовує — під нього цей код чудово підходить.
Чек-лист перед випуском
- коди мов з ISO 639-1:
uk,ru,en; - регіон великими літерами, якщо він взагалі потрібен;
- кожна сторінка посилається на всі версії, включно з собою;
- взаємність працює в обидва боки;
- є x-default;
- усі URL абсолютні, з протоколом і доменом.