Совместимость модуля - 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/pl/ - версия сайта на польском языке
- https://opencart.com/en/ - версия сайта на английском языке
Пример формирования ссылок на внутренние страницы, например категория:
- https://opencart.com/modules/ - категория на основном языке
- https://opencart.com/pl/modules/ - категория на польском языке
- https://opencart.com/en/modules/ - категория на английском языке
Пример формирования ссылок на товары: url товаров могут содержать категории и подкатегории:
- https://opencart.com/category/subcategory/product - страница товара на основном языке
- https://opencart.com/pl/category/subcategory/product - страница товара на польском языке
- https://opencart.com/en/category/subcategory/product - страница товара на английском языке
Или url товаров могут быть без категорий:
- https://opencart.com/product - страница товара на основном языке
- https://opencart.com/pl/product - страница товара на польском языке
- https://opencart.com/en/product - страница товара на английском языке
Особенности модуля Мультиязык для SEO PRO OpenCart 3.0 и 2.3:
- добавляет языковые префиксы в URL
- ссылки на основной язык сайта без префикса
- разрешает прописывать одинаковые SEO URL для разных языков
- добавляет атрибуты связи - hreflang, чтобы обозначить альтернативные версии страниц на различных языках
- возможность указать собственные префиксы в url для каждого языка
- заголовок, описание, мета-теги для главной страницы на разных языках
- разные лого для разных языков
- правильное индексирование страниц разных языковых версий
- работает с любыми языками
Префикс может содержать любую строку, например краткий код страны /ua/ или /ukr/ или код языка /uk/ или префикс с указанием региона - /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>
Не забудьте обновить кэш модификаторов и кэш шаблон после редактирования шаблона.
Зачем нужно делать переключатели языков ссылками?
Некоторые 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";