Сумісність модуля - OpenCart: 2.3.x.x, 3.0.0.0, 3.0.0.2, 3.0.1.0, 3.0.1.1, 3.0.1.2, 3.0.2.0, 3.0.3.0, 3.0.3.1, 3.0.3.2, 3.0.3.3, 3.0.3.4, 3.0.3.5, 3.0.3.6, 3.0.3.7, 3.0.3.8, 3.0.3.9, 3.0.4.0,
- ocStore: 2.3.x.x, 3.0.2.0, 3.0.3.7
РозробникОфіційний партнер OpenCart- Професійна допомога від автора модуля
- Ліцензія не обмежена по часу
- Ключ ліцензії надається автоматично
- Безкоштовний ключ на тестовий домен
- Модуль піддається доробкам
- Періодичне оновлення модуля
- Безкоштовна техпідтримка
Префікси мови в URL OpenCart
Мультимова SEO Pro - це доповнення до модуля SEO Pro, яке дозволить налаштувати мультимовні URL з префіксами мов на OpenCart 3.0.x.x и 2.3.x.x і ocStore таких ж версій. Також цей модуль додає в код сторінки перелінковку hreflang для сповіщення пошукових систем про інші мовні версії сторінок. Головне призначення - формування правильного мультимовного ЧПУ на OpenCart.
DEMO AdminDEMO Live
demo/demo
Характеристики модуля
- Працює швидше ніж аналоги
- Додає префікси мови в URL
- Додає атрибут hreflang
- Дозволяє задати локалізацію x-default
- Додає мультимовні мета-теги і SEO опис для головної сторінки
- Дозволяє встановити різні лого для різних локалізацій сайту
- Відповідає рекомендаціям Google для мультимовних сайтів
Також модуль дозволяє прописувати однакові SEO URL для різних мов, при цьому посилання буде відрізнятися тільки мовним префіксом.
У модулі можна додати мультимовні мета-теги, а також h1-заголовок і seo-опис для головної сторінки сайту. А ще можна зробити різні логотипи для кожної локалізації сайту.
Модуль працює тільки при наявності SEO Pro і не буде працювати без ввімкненого режиму ЧПУ і SEO Pro в настройках магазину.
SEO Pro - це модуль для правильного формування URL посилань в OpenCart. В збірці ocStore цей модуль вже є вмонтований в систему. А для OpenCart його потрібно встановлювати додатково. Знайти SEO Pro OpenCart можна на веб-сервісі Github або інших платформах.
Модуль сумісний з OpenCart та ocStore 2.3.x.x і 3.0.x.x та PHP 5.6 - 8.x
Переваги модуля "Мультимова SEO Pro" перед аналогами:
- Швидкість роботи: модуль не навантажує сайт зайвими запитами, обробниками URL і бібліотеками, як це роблять аналоги.
- Однакові SEO URL: ваші URL будуть відрізнятись лише префіксами мови на початку адреси. Звісно також можна робити й різні SEO URL.
- Повна відповідність рекомендаціям Google щодо багатомовних веб-сайтів: додає атрибути hreflang на всі сторінки, можна вибрати локалізацію для x-default, мультимовні сторінки доступні ботами без переадресацій.
- Можливість встановити різні лого для різних мов.
- Можна встановити безкоштовне доповнення для popup-вікна вибору мови при першому відвідуванні веб-сайту
Hreflang в OpenCart
Роботу цього модуля можете побачити на цьому сайті, всі мультимовні посилання тут сформовані SEO Pro з його допомогою.
Приклад формування посилань на головну сторінку:
- https://opencart.com/ - основна версія сайту (в даному випадку українською мовою, у вас може бути інша)
- https://opencart.com/ru/ - версія сайту російською мовою
- https://opencart.com/en/ - версія сайту англійською мовою
Приклад формування посилань на внутрішні сторінки, наприклад категорія:
- https://opencart.com/modules/ - сторінка на основній мові - українській
- https://opencart.com/ru/modules/ - сторінка російською мовою
- https://opencart.com/en/modules/ - сторінка англійською мовою
Приклад формування посилань на товари: url товарів можуть включати категорії і підкатегорії:
- https://opencart.com/category/subcategory/product - сторінка товару на основній мові - українській
- https://opencart.com/ru/category/subcategory/product - сторінка товару російською мовою
- https://opencart.com/en/category/subcategory/product - сторінка товару англійською мовою
Або url товарів можуть бути без категорій:
- https://opencart.com/product - сторінка товару на основній мові - українській
- https://opencart.com/ru/product - сторінка товару російською мовою
- https://opencart.com/en/product - сторінка товару англійською мовою
Особливості модуля Мультимова для SEO Pro OpenCart:
- додає мовні префікси в URL
- посилання на основну мову сайту без префікса
- дозволяє прописувати однакові SEO URL для різних мов
- додає атрибути hreflang, щоб позначити альтернативні версії сторінок на різних мовах
- можливість прописати власні мовні префікси в url
- заголовок, опис, мета-теги для головної сторінки на різних мовах
- різні лого для різних мов
- забезпечує правильне індексування сторінок різних мовних версій
- працює з будь-якими мовами
Префіксом URL може бути будь-яка текстова фраза, наприклад, код країни /ua/ або код мови /uk/ або /ukr/ або код з указанням регіону - /uk-ua/ (мультирегіон).
Кодом hreflang може бути лише iso-2 код мови або код мови та регіону через дефіс, наприклад "uk" або "uk-ua", але в жодному разі не код країни, як от "ua".
Відповідність до Закону про мову і старий сайт проіндексований іншою мовою: є можливість зберегти старі URL, відповідати Закону і не втратити позиції у пошуковій видачі. Для цього можна додати спливаюче вікно вибору мови при першому відвідуванні сайту. Це вікно завжди буде відображатися українською мовою, а контент сайту позаду буде розмитий. Таким чином ваш сайт буде відкриватися українською по замовчуванні і клієнт зможе вибрати зручну йому мову. Не буде жодних автоматичних переадресацій (редиректів). Щоб отримати готове безкоштовне доповнення до модуля, після покупки модуля зверніться у підтримку. Приклад роботи на скріншоті нижче:
Інструкція щодо інсталяції модуля:
- Спочатку потрібно встановити базове ЧПУ розширення SEO Pro (тільки для OpenCart). На збірках ocStore це розширення присутнє і встановлювати його додатково не потрібно. Коли SEO PRO встановлено, потрібно перейти в розділ Система : Настройки : редагування магазин : вкладка Сервер. увімкнути "ЧПУ" та вибрати "Тип ЧПУ" - SEO Pro.
- Завантажити наш модуль в адмін-панелі в розділі "Розширення" : "Установка розширень".
- Перейти у розділ "Модифікатори" та оновити кеш.
- Перейти в розділ "Розширення" : "Розширення" : "Модулі" та включити модуль "Мультимовність для SEO Pro".
- Редагувати модуль. Включити статус модуля, прописати префікси і hreflang, додати інші настройки по необхідності і зберегти.
- У розділі Дизайн : SEO URL додати порожні записи для головної сторінки для кожної мови. Тобто для шляху (роута) common/home ключ SEO URL має бути порожнім.
- Перевірити роботу модуля.
- Бінго!
Скріншоти модуля Мультимова SEO Pro
FAQ: Мультимова SEO Pro
При переході в пошук по сайту встановлюється мова по замовчуванні. Як виправити?
Відкрийте файл /catalog/view/javascript/common.js
Знайдіть рядок:
var url = $('base').attr('href') + 'index.php?route=product/search';
Потрібно замінити його на:
var url = (($('#logo a').length) ? $('#logo a').attr('href') : $('#logo').data('href')) + 'index.php?route=product/search';
Якщо у вас збірка ocStore і ЧПУ закінчується без слеша /, тоді цей рядок у вас має виглядати так:
var url = (($('#logo a').length) ? $('#logo a').attr('href') : $('#logo').data('href')) + '/index.php?route=product/search';
Збережіть файл.
Скиньте кеш браузера.
Як додати нову мову на сайт?
Щоб додати ще одну мову на OpenCart скористайтеся нашою
інструкцією на прикладі додавання української мови.
Як дозволити однакові SEO URL для різних мов в Opencart 3.0?
Починаючи з версії 2.1 така опція винесена в настройки модуля, достатньо увімкнути там параметр "Однакові SEO URL".
Завантажте і встановіть доповнення: allow_same_seo_url_lang_oc3.ocmod.zip
Оновіть кеші.
Для чого потрібно робити одинакові SEO URL для різних мов?
Це не обов'язково робити. Ніякого ефекту для SEO просування це не має. Але так прийнято, так зручно, так зрозуміліше, адже вручну змінивши префікс (код мови) в URL ви побачите цю ж сторінку на іншій мові, а якщо SEO URL у вас будуть різні, змінивши тільки префікс в URL отримаєте 404 помилку. Це суто естетика.
Помилка 404 при перемиканні мови. Як вирішити?
Швидше за все ви використовуєте застарілу версію SEO Pro, де існувала така проблема. Це можливо лише на OpenCart (не в ocStore). Потрібно оновити модуль SEO Pro до найновішої актуальної версії. Завантажити робочу версію SEO Pro можна з
нашого форку на github
Якщо у вас Nginx сервер - потрібно підлаштувати його конфіг, тому що коли посилання не ЧПУ - сервер бачить, що в корені сайту немає папки з назвою префікса (наприклад /ua/) і віддає помилку 404, а не дає обробити url скриптом сайту, тобто в SEO Pro.
Рішення: в конфігу nginx знайти конструкцію:
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
і перед нею додати:
if (!-e $request_filename) {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
Зазвичай конфігураційний файл називається nginx.conf і розташований у каталозі /usr/local/nginx/conf або /usr/local/etc/nginx або /etc/nginx або /etc/httpd/nginx.conf
Ви можете попросити техпідтримку вашого сервера/хостинга допомогти вирішити цю проблему, надавши їм цю інструкцію.
На головній сторінці дублюється префікс або в url присутнє index.php?route=... Як виправити?
В адмінці відкрийте розділ Дизайн : SEO URL та відфільтруйте записи по фільтру "Запит" = "common/home".
Всі такі записи в полі Ключ мають бути порожні, як на скріншоті нижче:
Якщо у вас там щось прописано, наприклад слеш "/" або код мови - потрібно редагувати та очистити поле Ключ.
Увага! Система не дозволяє створювати порожній SEO URL.
Щоб вирішити цю проблему, потрібно встановити фікс allow_empty_seo_url.ocmod.zip або редагувати SEO URL через базу даних у таблиці "oc_seo_url".
Щоб система дозволила додавати порожні SEO URL - в настройках модуля необхідно увімкнути параметр "Однакові SEO URL".
Якщо у вас є записи не для всіх мов - потрібно для кожної мови створити SEO URL-запис, де запит = "common/home" і ключ = порожнє значення (як на скріншоті вище).
Після будь-яких маніпуляцій із SEO URL потрібно скинути системний кеш, щоб оновився кеш ЧПУ SEO PRO. Кеш SEO PRO автоматично скидається при збереженні налаштувань модуля "Мультимова SEO Pro", тому можна просто перезберегти налаштування модуля.
Як зробити перемикачі мови посиланнями (ссилками)?
Для виводу перемикачів мови посиланнями - додайте в шаблон common/header.twig такий код:
<ul class="list-inline">
{% for hreflang in hreflangs %}
{% if hreflang.code == code %}
<li><a class="active">{{ hreflang.code[:2]|upper }}</a></li>
{% else %}
<li><a href="{{ hreflang.href }}">{{ hreflang.code[:2]|upper }}</a></li>
{% endif %}
{% endfor %}
</ul>
Якщо потрібно змінити текст на посиланнях, наприклад відображати там назву мови, тоді у коді вище замість {{ hreflang.code[:2]|upper }} потрібно вставити {{ hreflang.name }}
Якщо ж потрібно вивести посилання у вигляді випадаючого списку, тоді код трансформуємо так:
<ul class="list-inline">
<li class="dropdown">
{% for hreflang in hreflangs %}
{% if hreflang.code == code %}
<a class="dropdown-toggle" data-toggle="dropdown">{{ hreflang.name }}<span class="caret"></span></a>
{% endif %}
{% endfor %}
<ul class="dropdown-menu dropdown-menu-right">
{% for hreflang in hreflangs %}
{% if hreflang.code == code %}
<li><a class="active">{{ hreflang.name }}</a></li>
{% else %}
<li><a href="{{ hreflang.href }}">{{ hreflang.name }}</a></li>
{% endif %}
{% endfor %}
</ul>
</li>
</ul>
Не забудьте оновити кеш модифікаторів і кеш шаблону після редагування шаблона.
Навіщо робити перемикач мов html посиланнями?
Деякі SEO-шники радять, щоб зі сторінки були посилання на її версії іншими мовами. Тому радять робити перемикач мов не js-скриптом, як по замовчуванні реалізовано, а html посиланнями. Це технічний момент.
Чи можна вказати мовні версії сторінок (hreflang) лише одним із способів?
Мовні версії сторінок (hreflang) можна передавати тільки одним із способів (теги HTML, заголовки HTTP або файл Sitemap) і цього має бути достатньо, щоб пошукові системи зв'язали ці сторінки. Про це, зокрема, говориться в документації Google https://developers.google.com/search/docs/advanced/crawling/localized-versions
Але якщо ви передаєте hreflang кількома способами одночасно - це не є помилкою, навпаки, адже ви передаєте більше інформації про контент і це мало б позитивно впливати на просування. Тільки в такому випадку потрібно прослідкувати, щоби передані кількома методами дані були ідентичними.
Як скопіювати SEO URL з однієї мови в іншу?
Скопіювати всі SEO URL записи з однієї мови в іншу можна за допомогою наступного mySQL запита, який можна виконати у вкладці SQL в панелі керування базою даних phpmyadmin:
CREATE table `temp_seo_url` AS SELECT * FROM `oc_seo_url` WHERE language_id = "1";
UPDATE `temp_seo_url` SET language_id = "2";
UPDATE `temp_seo_url` SET seo_url_id = 0;
INSERT INTO `oc_seo_url` SELECT * FROM `temp_seo_url`;
DROP TABLE `temp_seo_url`;
Тут language_id = "1" - id мови з якої будемо копіювати, а language_id = "2" - куди будемо вставляти. Вставте тут id потрібних вам мов.
Також перед цим запитом можна виконати ще один запит на видалення всіх SEO URL нової мови, які ви вже додали вручну:
DELETE FROM `oc_seo_url` WHERE language_id = "2";