Плагин мультиязычной XML-карты сайта для товаров

Плагин sitemap_market создаёт мультиязычную XML-карту сайта (sitemap) только для товаров модуля market. Для каждого языка генерируется отдельный файл с URL‑адресами категорий и товаров, имеющих перевод в плагине i18n4marketpro.

Опубликовано в: Модули и Плагины для Cotonti

1. Назначение плагина

Плагин sitemap_market создаёт мультиязычную XML-карту сайта (sitemap) только для товаров модуля market. Для каждого языка генерируется отдельный файл с URL‑адресами категорий и товаров, имеющих перевод в плагине i18n4marketpro.
Язык по умолчанию (в вашем случае ua) выводится по адресу без префикса, остальные языки — через языковой префикс (/en/, /ru/, /pl/).


2. Зависимости

Плагин требует наличия:

  • Модуль market (должен быть установлен и активен).
  • Плагин i18n4marketpro (мультиязычные переводы для market).
    Именно из его таблиц (cot_i18n4marketpro_structure и cot_i18n4marketpro_pages) плагин узнаёт, для каких категорий и товаров есть перевод на конкретный язык.

3. Структура плагина

Плагин размещается в папке plugins/sitemap_market/ и содержит:

sitemap_market/
├── sitemap_market.setup.php          # Заголовок и настройки плагина
├── sitemap_market.ajax.php           # Основной обработчик запросов (генерирует XML)
├── inc/
│   └── sitemap_market.functions.php  # Функции: генерация карт, URL, языки
├── lang/
│   └── sitemap_market.ru.lang.php    # Русские подписи к настройкам
└── tpl/
    ├── sitemap_market.tpl            # Шаблон для <urlset> (обычная карта)
    └── sitemap_market.index.tpl      # Шаблон для <sitemapindex> (индексный файл)

Файлы шаблонов не требуют правки, они уже содержат правильную XML-разметку.


4. Установка

  1. Скопируйте папку sitemap_market в plugins/ вашего сайта.
  2. Зайдите в админку Cotonti: Расширения → Плагины.
  3. Найдите в списке Market Sitemap (multilingual) и нажмите Установить.

После установки плагин будет готов к настройке.


5. Настройка плагина

В админке перейдите: Расширения → Плагины → Market Sitemap → Настройки.

Основные параметры:

ПараметрЗначениеОписание
Языки (languages)en,ru,pl,uaСписок языков через запятую. Включает все языки, для которых нужно создавать отдельные карты. Добавьте ua, чтобы индексный файл содержал ссылку и на основной язык.
Язык по умолчанию (default_lang)uaЯзык, для которого в URL не добавляется префикс (например, /market/... вместо /ua/market/...).
Использовать красивые URL (use_pretty_urls)1С этим параметром адреса карт будут вида /sitemap-market.xml и /en/sitemap-market.xml. Если выключить, будут использоваться прямые ссылки с index.php?r=sitemap_market. Рекомендуем оставить 1.
Включать пагинацию категорий (marketCategoryPagination)1Если у категории несколько страниц товаров, все они попадут в карту.
Частота изменения товаров (market_freq)weeklyЗначение <changefreq> для товаров.
Приоритет товаров (market_prio)0.5Значение <priority>.
Макс. ссылок на часть карты (perpage)50000Если товаров больше, карта разделится на несколько файлов (вам это вряд ли понадобится).
Время жизни кеша (cache_ttl)3600Через сколько секунд карта будет пересоздана.

После изменения настроек не забудьте нажать Сохранить.


6. Настройка .htaccess

Чтобы красивые URL работали, добавьте в корневой .htaccess сразу после правила RewriteRule ^sitemap\.xml$ ... следующие строки:

RewriteRule ^sitemap-market\.xml$ index.php?r=sitemap_market [QSA,L]
RewriteRule ^(en|ru|pl|ua)/sitemap-market\.xml$ index.php?r=sitemap_market&l=$1 [QSA,L]

Важно: флаг [QSA] (Query String Append) необходим, потому что языковое правило Cotonti уже добавляет ?l=en, и без QSA оно бы затиралось.
Убедитесь, что эти строки расположены до правила # All the rest goes through standard rewrite gateway.


7. Настройка robots.txt

Добавьте в robots.txt ссылку на индексный файл или отдельные карты. Рекомендуется добавить только индексный файл, чтобы не загромождать файл:

Sitemap: https://myproject.com/index.php?r=sitemap_market&a=index

Или, если вы хотите перечислить все языковые карты напрямую:

Sitemap: https://myproject.com/sitemap-market.xml
Sitemap: https://myproject.com/en/sitemap-market.xml
Sitemap: https://myproject.com/ru/sitemap-market.xml
Sitemap: https://myproject.com/pl/sitemap-market.xml

Однако первый вариант (индекс) проще и предпочтительнее.


8. Как проверять в браузере

После сохранения всех настроек можно сразу открыть следующие адреса (кеш создастся автоматически при первом обращении):

  • Основной язык (ua):
    https://myproject.com/sitemap-market.xml
  • Английская версия:
    https://myproject.com/en/sitemap-market.xml
  • Русская версия:
    https://myproject.com/ru/sitemap-market.xml
  • Польская версия:
    https://myproject.com/pl/sitemap-market.xml
  • Индексный файл (список всех языков):
    https://myproject.com/index.php?r=sitemap_market&a=index

Каждая из этих ссылок покажет XML‑документ с URL‑адресами товаров.
Если вы видите пустой <urlset> или вообще ничего, возможно, для данного языка нет переведённых товаров – проверьте таблицы переводов.


9. Как отдавать Google

  1. Зайдите в Google Search Console.
  2. Выберите нужный ресурс (сайт).
  3. В левом меню перейдите: Индекс → Файлы Sitemap.
  4. Нажмите Добавить новый файл Sitemap.
  5. Вставьте URL индексного файла:
    https://myproject.com/index.php?r=sitemap_market&a=index
  6. Нажмите Отправить.

Google сам прочитает индекс и добавит все языковые подкарты. Можно также добавить каждую карту по отдельности, но это не обязательно.

После отправки проверьте статус – должно появиться «Успешно» и количество обнаруженных страниц.


10. Кеширование и его очистка

Плагин сохраняет сгенерированные XML‑файлы в папке datas/cache/sitemap_market/. Внутри вы увидите:

  • ua.xml – карта для языка по умолчанию.
  • en.xml, ru.xml, pl.xml – карты для других языков.
  • *.count – вспомогательные файлы с количеством записей.
  • sitemap_market_index.xml – индексный файл (если он был запрошен).

Если вы изменили настройки или внесли правки в код плагина, удалите все файлы из этой папки вручную (через FTP или файловый менеджер). При следующем обращении к любой карте кеш пересоздастся автоматически.
В повседневной работе очистка не требуется – только при изменениях.


11. Устранение неполадок

  • Все языковые URL показывают только ua.xml.
    Причина: отсутствует флаг [QSA] в правилах .htaccess (см. раздел 6). Добавьте QSA в обе строки.
  • В URL дублируется языковой префикс (/en/en/market/...).
    Причина: функция sitemap_market_url не удаляет уже добавленный префикс. Убедитесь, что в inc/sitemap_market.functions.php используется правильная версия функции, которая очищает путь от известных префиксов.
  • Для некоторых языков пустой файл.
    Значит, в таблице cot_i18n4marketpro_pages (или ..._structure) нет записей с соответствующей локалью. Проверьте переводы.
  • После изменения настроек карта не обновляется.
    Очистите кеш вручную (удалите содержимое datas/cache/sitemap_market/).

12. Дополнительные замечания

  • Шаблон sitemap_market.index.tpl используется только для страницы с ?a=index и формирует <sitemapindex>. Если вы не планируете использовать индекс, этот шаблон можно не трогать.
  • Плагин не трогает старый плагин sitemap. Вы можете продолжать использовать его для других модулей (страницы, форумы и т.д.).
  • При добавлении нового языка убедитесь, что он присутствует в настройках плагина, в правилах .htaccess (список (en|ru|pl|ua)) и в функции удаления префиксов ($knownLangs в sitemap_market_url).

 

 

Онлайн-инструменты для настройки и отладки карты сайта

Настройка Cloudflare для Googlebot (если не видит sitemap)

Создайте правило безопасности, которое полностью пропускает трафик Googlebot без проверок. Ссылка на создание правила (замените звёздочки на ID вашей зоны): 
https://dash.cloudflare.com/--***--/-**---/security/security-rules/custom-rules/create

Пошаговая инструкция (визуальный конструктор)

  1. Перейдите в раздел Security rules.
  2. Нажмите вкладку Custom rules и кнопку Create rule.
  3. В поле Field выберите Verified Bot.
  4. Оператор оставьте equals.
  5. В поле Value выберите или введите true.
  6. В блоке Choose action выберите Skip.
  7. Отметьте галочками All remaining security features (или минимум WAF Components и Rate Limiting).
  8. Нажмите Deploy.

Готовое выражение для текстового редактора правила

Если вы переключите редактор в режим Edit expression, просто вставьте эту строку:

(cf.verified_bot_category eq "Search Engine Crawler")

Настройка через выпадающие списки (альтернативный способ)

  • Field: Verified Bot Category
  • Operator: equals
  • Value: выберите Search Engine Crawler
  • Choose action: Skip
  • Отметьте WAF (Custom Rules, Managed Rules) и Rate Limiting.
  • Сохраните правило кнопкой Deploy.

После сохранения правила подождите пару минут и повторно отправьте карту сайта в Google Search Console.



Рейтинг на основе отзывов:
Звезд получено: 0
Oтзывов всего: 0
Средняя оценка: 0
5 минут чтения
Владелец: Carbonate Sodium

Отзывы к товарам

Отзывов пока нет


Добавить в корзину

Товар без файла для загрузки

 

Категория расширения
SEO и оптимизация

Обсуждение страницы в Telegram

Автор контента

webitproff

Оффлайн

webitproff

Последняя авторизация: 04.08.2026 15:17

  • Чем могу помочь?

    Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.

  • Разработки на GitHub бесплатно
    • 03.08.2026 13:53
    • 03.08.2026 20:19

    Витрина Market PRO

    CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.