Нічого не знайдено

Спробуйте інший пошуковий запит

Популярні запити:

Додати в кошик

Кошик

У вас поки немає покупок

Переглянути маркетплейс

Налаштування мультимовності в OpenCart: hreflang, x-default і мовні префікси в URL

Чому Google індексує лише одну мову вашого OpenCart-магазину і як це виправити через мовні префікси, hreflang і x-default.

7 хв читання
6
0
Налаштування мультимовності в OpenCart: hreflang, x-default і мовні префікси в URL

Багатомовний магазин на OpenCart рідко падає в видачі через очевидні причини. Частіше відбувається інше: товари перекладено, мови підключено, перемикач працює, а в Google індексується лише одна мовна версія, друга наче не існує. Причина майже завжди одна — неправильна URL-структура та відсутність SEO-розмітки для мов. Розберемо, як це лагодиться на OpenCart 3.x (логіка та сама і для 2.x).


1. Чому стандартний OpenCart псує SEO мультимовного магазину

OpenCart за замовчуванням перемикає мову через сесію та cookie, а не через URL. Тобто українська й англійська версії товару живуть за однією адресою, а яку саме показати — вирішує cookie відвідувача.

Для пошуковика це катастрофа. Googlebot заходить без вашого cookie, бачить одну мову (зазвичай дефолтну) і другу просто не знаходить — для неї немає окремого URL, який можна було б проіндексувати. На практиці це виглядає так: у Search Console сотні сторінок основної мови та майже порожньо по другій, хоча контент перекладено повністю.

Висновок простий: кожна мовна версія сторінки має жити за власною унікальною адресою. Без цього решта налаштувань не має сенсу.


2. Мовний префікс в URL

Найзручніший спосіб дати кожній мові свій URL — мовний префікс у шляху:


https://example.com/uk/product/...
https://example.com/en/product/...
https://example.com/pl/product/...

Теоретично можна рознести мови по піддоменах (en.example.com) чи окремих доменах (example.com.ua + example.com), але це дорожче в підтримці й має сенс хіба для великих міжнародних проєктів з окремими командами. Для звичайного магазину префікс у шляху — оптимальний варіант.

Окремо треба вирішити, що робити з основною мовою.


Тут два робочі підходи:


A. Префікс для всіх мов, включно з основною

/ua/product/...
/en/product/...


B. Основна мова без префікса, решта — з префіксом

/product/...        ← українська (default)
/en/product/...     ← англійська

Варіант B виглядає чистіше для основного ринку і його зазвичай і обирають. Але він складніший: треба коректно віддавати дефолтну мову без префікса й не плодити дублі (щоб та сама українська сторінка не відкривалася водночас і за /, і за /ua/). Головне правило — обрати один підхід і витримати його на всьому сайті, без винятків для окремих сторінок.

Чистий OpenCart 3 мовних префіксів у SEO URL не вміє взагалі. Потрібен модуль, який вбудовує мовний сегмент у роутинг: визначає мову з URL, віддає правильну локаль і генерує всі внутрішні посилання вже з префіксом.


3. Розмітка hreflang

hreflang каже пошуковику, яка версія сторінки призначена для якої мови чи регіону. Без нього Google може показати англійцю українську сторінку або вирішити, що дві мовні версії — це дублі, і залишити в індексі лише одну.

У <head> кожної сторінки додається повний набір посилань на всі її мовні версії — включно з самою цією сторінкою:


html

<link rel="alternate" hreflang="uk" href="https://example.com/" />
<link rel="alternate" hreflang="en" href="https://example.com/en" />
<link rel="alternate" hreflang="pl" href="https://example.com/pl" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />


Чотири правила, на яких ламається 90% впроваджень:

  • Двосторонність. Якщо українська сторінка вказує на англійську як альтернативу, англійська зобов'язанавказувати назад на українську. Односторонні посилання Google ігнорує мовчки — помилки ви не побачите, просто не спрацює.
  • Абсолютні URL. Тільки повна адреса з https://. Відносні шляхи (/en/...) не працюють.
  • Самопосилання. Сторінка мусить містити hreflang і на саму себе, інакше кластер вважається неповним.
  • Однакові набори. На всіх сторінках кластера набір альтернатив має бути ідентичним.


Щодо кодів мов: за стандартом це ISO 639-1 (ukenpl). Регіон додається через дефіс лише за потреби: en-gben-uspl-pl. Важливо не плутати — у hreflang мова обов'язкова, а регіон опційний. Запис hreflang="ua" помилковий, бо ua — це код країни, а не мови; українська завжди uk.

Регіональні варіанти потрібні тоді, коли одна мова таргетує кілька країн з різним контентом — наприклад, англійська для США та Британії з різними цінами. Для типового українського магазину достатньо простих ukenplбез регіонів.


4. Значення x-default

x-default — це версія сторінки для всіх, чию мову ви явно не передбачили. Канадець із французькою мовою браузера, бразилець, відвідувач із Азії — якщо для їхньої мови немає окремого hreflang, Google покаже саме x-default.


html

<link rel="alternate" hreflang="x-default" href="https://example.com/" />

Сюди ставлять або міжнародну версію (часто англійську), або основну мову магазину, або окрему сторінку вибору мови. Для магазину з прицілом тільки на Україну x-default можна навести на українську головну — і цього достатньо. Елемент не обов'язковий формально, але без нього ви віддаєте Google на відкуп рішення «що показати всім іншим», а він вгадує не завжди.


5. Canonical і hreflang разом

Це місце, де найчастіше все ламається, бо два теги виконують протилежні задачі й легко конфліктують.

canonical каже «це головна версія серед дублів». hreflang каже «це інша мовна версія, не дубль». Якщо переплутати — Google послухає canonical і викине мовні версії з індексу.

Правило: canonical кожної мовної сторінки вказує сам на себе. Українська сторінка — canonical на українську, англійська — на англійську. hreflang при цьому перелічує всі мови.


html

<!-- на сторінці /en/desktops -->
<link rel="canonical" href="https://example.com/en/desktops" />
<link rel="alternate" hreflang="uk" href="https://example.com/desktops" />
<link rel="alternate" hreflang="en" href="https://example.com/en/desktops" />

Типова помилка — поставити canonical усіх мовних версій на українську «оригінальну» сторінку. Логіка «це ж переклад одного товару» здається розумною, але для Google це прямий сигнал «англійська та польська — копії, не індексуй їх». Результат: трафік лише з однієї мови.


6. Sitemap і перемикач мов

XML-карта сайту може дублювати hreflang через xhtml:link — це додатковий канал, яким Google знаходить мовні зв'язки, особливо корисний на великих каталогах, де краулер доходить не до кожної сторінки.


xml

<url>
  <loc>https://example.com/en/desktops</loc>
  <xhtml:link rel="alternate" hreflang="uk" href="https://example.com/desktops"/>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/desktops"/>
</url>

Перемикач мов теж впливає на SEO сильніше, ніж здається. Дві поширені помилки: перемикач веде всіх на головну (замість тієї ж сторінки в іншій мові) і змінює лише cookie, не змінюючи URL. Правильний перемикач веде на мовний еквівалент поточної сторінки й змінює саме адресу — тоді кожен клік формує валідне внутрішнє посилання, яке бачить пошуковик.


7. Готове рішення: модуль «SEO мультимова PRO»

Зробити все вищеописане на чистому OpenCart означає лізти в роутер, контролери та шаблони і ризикувати при кожному оновленні. Модуль SEO мультимова PRO закриває ці задачі без правок системного коду.


Що він дає по суті цієї статті:

  • Мовні URL з префіксами (/ua/.../en/.../pl/...) — кожна мова отримує власну адресу, яку Google може проіндексувати окремо. Можна задати й однакові SEO URL для різних мов: вони залишаться унікальними завдяки префіксу, без ручного дублювання.
  • Основна мова без префікса (підхід B з розділу 2) — налаштовується гнучко, аж до варіанта з префіксами для всіх мов.
  • Повне керування hreflang і x-default, включно з регіональними варіантами (pl-plen-gb) — рівно те, про що йшлося в розділах 3–4, але без ручного редагування шаблонів.
  • Мовні sitemap з альтернативами та мовні мета-теги title/description/keywords для головної.
  • Popup вибору мови і коректне перенаправлення нового відвідувача на основну мову без 301-редіректа — тобто без шкоди для індексації.
  • Підтримка мультимагазинів, регіонів і міст, мультимагазин у підпапках, шорткоди, прив'язані до мов і регіонів.


Технічно важливо, що модуль не змінює системний код OpenCart, не використовує ioncube і не звертається до сервера розробника — якщо той недоступний, магазин працює далі. Сумісність широка: OpenCart 1.5.x, 2.x, 3.x та збірки на кшталт ocStore, PHP від 5.6 до 8.4, будь-яка тема, зверстана за стандартами OpenCart.

Окремо варто згадати опцію «Налаштування згідно закону України» 🇺🇦. Це болюча тема для магазинів, які роблять українську основною мовою постфактум: наївний підхід вбиває старі позиції. Модуль робить перехід коректно — українська отримує префікс /ua/..., а старі сторінки без префікса лишаються в індексі, тож переіндексація не обнуляє накопичений трафік. Алгоритм перенаправлення враховує контекст: чи зайшов користувач уперше, чи прийшов із пошуку на немовну сторінку, чи свідомо перемкнув мову сам.

Модуль підтримує OpenCart 2.0.3–3.0.5, має документацію та демо, ліцензія — на один домен.


8. Чек-лист перед запуском

  1. Кожна мовна версія сторінки має власний унікальний URL з префіксом.
  2. Обрано єдину URL-стратегію (префікс для всіх / основна без префікса) і витримано на всьому сайті.
  3. hreflang стоїть на всіх сторінках, двосторонній, з абсолютними URL і самопосиланням.
  4. Доданий x-default.
  5. canonical кожної сторінки вказує сам на себе, а не на іншу мову.
  6. Перемикач мов веде на еквівалентну сторінку і змінює URL, а не cookie.
  7. Sitemap містить мовні альтернативи.
  8. hreflang перевірено краулером (Screaming Frog, Sitebulb) або валідатором — звіт International Targeting у Search Console Google закрив ще 2022 року, тож покладатися на нього вже не можна.


Підсумок

SEO мультимови в OpenCart тримається на трьох речах: окремий URL для кожної мови, коректний hreflang з x-default і canonical, що вказує сам на себе. Помилка в будь-якому з трьох пунктів зводить нанівець усю роботу над перекладом. Стандартний OpenCart дає лише перемикання мови без жодної з цих можливостей, тож для магазину, який має ранжуватися в кількох мовах, ці задачі бере на себе модуль SEO мультимова PRO — без правок системного коду й з підтримкою всіх актуальних версій OpenCart.

OCTemplates

OCTemplates

OCTemplates — команда розробників та дизайнерів з України з досвідом у веброзробці з 2002 року. З 2015 року спеціалізуються на шаблонах та модулях для OpenCart: швидких, SEO-оптимізованих і готових до роботи в реальних умовах e-commerce. Продукти OCTemplates використовують тисячі інтернет-магазинів у Європі, Азії, Північній Америці та Австралії. Кожен покупець отримує не лише готове рішення, а й технічну підтримку та консультації з налаштування магазину.

стаття
1
переглядів
6
вподобань
0
підписників
0

Рекомендовані товари

від markimax

SEO мультимова PRO

SEO мультимова PRO до opencart - потужний модуль оптимізації до пошукових систем в багатьох мовах. Покращить видимість вашого магазину у пошукових системах.

1
продажів
708 ₴

Схожі статті

Email маркетинг для e-commerce Маркетинг

Email маркетинг для e-commerce

Як побудувати ефективну email стратегію для інтернет-магазину: автоматизація, сегментація та найкращі практики.

Email-маркетинг E-commerce Конверсія
6,721 6 19 хв
15 січ 2026

Коментарі (0)

Відповідь для

Увійдіть, щоб залишити коментар

Увійти

Коментарів поки немає

Будьте першим, хто залишить коментар до цієї статті!

Ми використовуємо cookies

Ми використовуємо cookies та схожі технології для покращення вашого досвіду, аналізу трафіку та показу персоналізованої реклами. Детальніше — у нашій Політиці cookies.