Статті ·

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 і не спрацьовує — під нього цей код чудово підходить.

Чек-лист перед випуском

  1. коди мов з ISO 639-1: uk, ru, en;
  2. регіон великими літерами, якщо він взагалі потрібен;
  3. кожна сторінка посилається на всі версії, включно з собою;
  4. взаємність працює в обидва боки;
  5. є x-default;
  6. усі URL абсолютні, з протоколом і доменом.