Карта сайта sitemap.xml без мусора: в неё попадают только страницы, которые действительно открываются, — с проверкой адресов, robots.txt и прав доступа, отчётом и автоматической пересборкой.
Модуль собирает sitemap.xml из инфоблоков и статичных страниц сайта и проверяет каждый адрес перед тем, как добавить его в карту. Поисковые системы считают ошибкой адреса в sitemap, которые отдают 404, перенаправляют или закрыты в robots.txt, — модуль такие адреса отсеивает и показывает в отчёте, что и почему не попало в карту.
Какие задачи решает
- В карту попадают страницы удалённых разделов, пустые списки, редиректы и страницы, закрытые для гостей, — модуль проверяет, что сайт действительно обслуживает адрес: есть файл или правило urlrewrite с существующим обработчиком, адрес не закрыт в .access.php, страница отвечает 200.
- Шаблон URL инфоблока не совпадает с тем, как адреса строит компонент на сайте, — модуль это обнаруживает (адреса «не обслуживаются» или не отвечают) и позволяет задать свой шаблон URL для списка, разделов и элементов.
- Карту нужно пересобирать вручную — модуль делает это сам по расписанию и после изменения товаров и статей.
- Ошибки настройки сайта, которые мешают индексации: правило urlrewrite, перехватывающее любой адрес (например, #^# от компонента с пустой папкой ЧПУ), и ответ 200 на несуществующую страницу (soft 404) — модуль предупреждает о них в отчёте.
Возможности
- Профили: одна карта — один профиль (сайт, домен и протокол, имя файла, источники, фильтры, расписание). Для многосайтовых установок — сколько угодно профилей; при установке для каждого сайта создаётся черновой профиль с уже отмеченными инфоблоками.
- Инфоблоки: страница списка, разделы и элементы — у каждой части своя частота изменения (changefreq) и приоритет (priority); фильтр разделов (все / кроме выбранных / только выбранные, с подразделами); пропуск пустых разделов; только товары, доступные к покупке; картинки товаров и статей (image:image); свой шаблон URL.
- Статичные страницы: поиск по файлам сайта — папки с index.php, подключающим шаблон сайта; служебные скрипты, ajax-обработчики, редиректы, закрытые для гостей папки и страницы с robots=noindex пропускаются. Плюс произвольные адреса строками вида «/promo/ 0.8 weekly».
- Приоритет «по вложенности»: главная 1.0, первый уровень 0.8 и ниже с шагом 0.1 (значения настраиваются), минимум для отдельных разделов (например, /catalog/ не ниже 0.6), своя частота и приоритет для любой страницы.
- Фильтры: маски исключений в синтаксисе robots.txt (*, $), учёт правил robots.txt для выбранного робота (*, Yandex, Googlebot).
- Формат по протоколу sitemaps.org: lastmod из дат изменения, до 50 000 адресов и 50 МБ на файл; при превышении или по настройке «файл на источник» — части и индексный файл. Кириллические домены — в punycode, адреса — в percent-encoding. Файл заменяется атомарно: поисковик никогда не получит недописанную карту.
- Генерация из админки с индикатором прогресса короткими шагами (без таймаутов на больших каталогах) и автоматически агентом: по расписанию (от 1 часа до недели) и через 10 минут после изменения элементов и разделов инфоблоков профиля.
- Отчёт после каждой генерации: сколько адресов дал каждый источник, сколько и по какой причине пропущено — с примерами адресов.
- По желанию дописывает директиву Sitemap: в robots.txt.
- Права доступа: просмотр профилей и отчётов или полная настройка — отдельно для групп пользователей.
Особенности и ограничения
- Требования: PHP 8.2 и выше, главный модуль 22.0 и выше, модуль «Информационные блоки», расширение PHP dom (есть в BitrixVM и на большинстве хостингов). Библиотеки сторонних разработчиков не используются.
- Для проверки ответов сервера сайт должен быть доступен с самого сервера по своему домену (HTTPS-сертификат проверяется). Запросы идут только на домены сайта из его настроек. Если сайт закрыт паролем, проверка ответов автоматически отключается, остальные проверки работают.
- Адреса, которые обслуживает маршрутизация D7 или правила веб-сервера (а не файлы и urlrewrite.php), не проходят проверку «сайт обслуживает адрес» — для таких сайтов её можно выключить в профиле.
- Рекомендуем выполнять агенты через cron: тогда большие каталоги генерируются целиком за один запуск, а не по 8 секунд на хитах посетителей.
- Модуль не передаёт данные сайта третьим лицам. Код открыт, закодированных частей нет.
- Модуль прошёл проверку по методике marketplace-security-skills 1С-Битрикс: security-journal.json со статусом ready_for_submission.