pdoSitemap — создание XML карты сайта в MODX

pdoSitemap Дополнения

Сниппет pdoSitemap предназначен для быстрой генерации XML карты сайта (sitemap.xml) для поисковых систем Google, Яндекс и других. Он автоматически собирает все опубликованные ресурсы сайта и формирует корректный sitemap согласно протоколу sitemaps.org. Основное преимущество pdoSitemap заключается в высокой скорости работы благодаря использованию библиотеки pdoTools и возможности гибкой настройки приоритетов и частоты обновления страниц.

Карта сайта (sitemap.xml) — это специальный файл который содержит информацию о страницах веб-сайта, времени их последнего обновления, частоте изменений и приоритете относительно других страниц. Это помогает поисковым роботам эффективнее индексировать контент, особенно на больших сайтах с тысячами страниц.

Что такое sitemap.xml и зачем он нужен

Файл sitemap.xml выполняет несколько важных функций для SEO оптимизации сайта:

  • Ускоряет индексацию новых страниц поисковыми системами;
  • Помогает роботам находить страницы глубокой вложенности;
  • Указывает приоритет индексирования разных разделов;
  • Сообщает частоту обновления контента;
  • Облегчает работу с большими сайтами (интернет-магазины, порталы).

По стандарту в один файл sitemap.xml рекомендуется добавлять не более 50 тысяч ссылок. Если количество страниц превышает это число, нужно создать несколько карт и объединить их в индексный файл.

pdoSitemap — параметры карты сайта

Параметр Значение по умолчанию Описание
&sitemapSchema http://www.sitemaps.org/schemas/sitemap/0.9 Схема XML для карты сайта
&forceXML 1 Принудительно отдавать страницу как XML
&priorityTV TV-параметр для указания приоритета страницы
&tpl Чанк для одного URL в карте
&tplWrapper Обертка для всей XML карты
&sortby menuindex Поле для сортировки ресурсов
&sortdir ASC Направление сортировки
&limit 0 Ограничение количества URL (0 = без ограничений)
&offset 0 Пропуск ресурсов от начала
&depth 10 Глубина выборки дочерних ресурсов
&parents 0 Родительские контейнеры для включения
&resources Конкретные ID ресурсов
&context текущий Контексты для выборки
&showHidden 0 Включать скрытые от меню
&showUnpublished 0 Включать неопубликованные
&showDeleted 0 Включать удаленные
&hideContainers 0 Исключить контейнеры
&where Дополнительные условия SQL
&scheme Схема генерации URL
&checkPermissions Проверять права доступа (замедляет работу)
&showLog 0 Вывести отладочную информацию

Примеры использования

Простейший вызов для генерации карты всего сайта:

[[!pdoSitemap]]

Обратите внимание что вызов должен быть некешируемым через восклицательный знак.

Генерация карты только из определенных контейнеров:

[[!pdoSitemap? &parents=`10` ]]

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

[[!pdoSitemap? &parents=`10,-17,-27` ]]

Карта из нескольких контекстов:

[[!pdoSitemap? &context=`web,catalog` ]]

Примеры для разных контекстов

Карта только для основного контекста:

[[!pdoSitemap? &context=`web` &checkPermissions=`list` ]]

Карта для нескольких контекстов одновременно:

[[!pdoSitemap? &context=`web,catalog,blog` &showHidden=`1` ]]

Исключение определенных шаблонов:

[[!pdoSitemap? &templates=`1,3,5,-8` ]]

Вызов через Fenom

Использование шаблонизатора Fenom для более чистого синтаксиса:

{'!pdoSitemap' | snippet : [
'parents' => '0',
'checkPermissions' => 'list',
'context' => 'web',
'showHidden' => '1'
]}

Несколько карт для больших сайтов

Если страниц больше 50 тысяч, создайте несколько карт.

Карта категорий (sitemap-categories.xml)

[[!pdoSitemap? &parents=`10` &depth=`1` &hideContainers=`0` ]]

Карта товаров (sitemap-products.xml)

[[!pdoSitemap? &parents=`10` &class=`msProduct` &loadModels=`minishop2` ]]

Индексный файл (sitemap.xml)

Создайте главный файл со ссылками на все карты:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  [[!pdoResources?
  &parents=`0`
  &resources=`100,101,102`
  &tpl=`@INLINE 
  <sitemap>
    <loc>[[++site_url]][[~[[+id]]]]</loc>
    <lastmod>[[+editedon:date=`%Y-%m-%dT%H:%M:%S+00:00`]]</lastmod>
  </sitemap>`
  ]]
</sitemapindex>

Создание ресурса sitemap.xml

Пошаговая инструкция по созданию карты сайта в MODX Revolution:

Шаг 1. Создание ресурса

Создайте новый ресурс в корне сайта со следующими параметрами:

  • Заголовок страницы: Sitemap
  • Псевдоним (URL): sitemap.xml
  • Шаблон: пустой или минимальный без HTML разметки
  • Опубликован: Да (поставить галочку)
  • Не показывать в меню: Да (поставить галочку)

Шаг 2. Настройка типа содержимого

Перейдите на вкладку «Настройки ресурса» и установите:

  • Тип содержимого: XML
  • Content Type: text/xml

Это критически важно для корректного отображения XML карты в браузере.

Шаг 3. Добавление сниппета

В поле «Содержимое» ресурса вставьте вызов сниппета:

[[!pdoSitemap? &checkPermissions=`list` ]]

Параметр &checkPermissions=list проверяет права доступа пользователей к ресурсам.

Шаг 4. Сохранение и проверка

Сохраните ресурс и проверьте результат в браузере по адресу:

https://ваш-сайт.ru/sitemap.xml

Вы должны увидеть корректный XML файл со списком всех страниц сайта.

Настройка приоритетов через TV

Для гибкого управления приоритетами страниц создайте TV-параметр:

Создание TV priority

  1. Создайте новый TV-параметр с именем priority
  2. Тип ввода: Текстовое поле или Список
  3. Значение по умолчанию: 0.5
  4. Возможные значения: 0.1, 0.3, 0.5, 0.7, 0.9, 1.0
  5. Привяжите к нужным шаблонам

Использование в pdoSitemap

[[!pdoSitemap? &includeTVs=`priority` &tvPrefix=`` &priorityTV=`priority`]]

Теперь приоритет каждой страницы будет браться из TV-параметра.

Настройка частоты обновления

Создайте TV-параметр changefreq со значениями:

  • always — постоянно
  • hourly — ежечасно
  • daily — ежедневно
  • weekly — еженедельно
  • monthly — ежемесячно
  • yearly — ежегодно
  • never — никогда

Использование в сниппете:

[[!pdoSitemap? &includeTVs=`changefreq` &tvPrefix=`` &changefreqTV=`changefreq` ]]

Отладка и логирование

Просмотр лога выборки для отладки:

[[!pdoSitemap?
&resources=`-27`
&parents=`-17,10`
&context=`web,catalog`
&showLog=`1`
&forceXML=`0`
]]

Параметр &showLog=1 выводит подробную информацию о выборке, а &forceXML=0 отключает принудительный XML режим для удобства чтения.

Регистрация в поисковых системах

Добавление в Google Search Console

  1. Откройте Google Search Console
  2. Выберите ваш сайт
  3. Перейдите в раздел «Карты сайта» (Sitemaps)
  4. Нажмите «Добавить файл Sitemap»
  5. Введите URL: sitemap.xml
  6. Нажмите «Отправить»

Google начнет периодически сканировать вашу карту.

Добавление в Яндекс.Вебмастер

  1. Откройте Яндекс.Вебмастер и войдите в аккаунт
  2. Выберите ваш сайт из списка
  3. Перейдите в «Индексирование» → «Файлы Sitemap»
  4. Нажмите «Добавить sitemap»
  5. Введите полный URL: https://ваш-сайт.ru/sitemap.xml
  6. Нажмите «Добавить»

Убедитесь что статус файла отображается как «Добавлен».

Автоматическое уведомление поисковиков

Добавьте ссылку на карту в robots.txt:

User-agent: * Sitemap: https://ваш-сайт.ru/sitemap.xml

Это позволит поисковым роботам автоматически находить вашу карту сайта.

Оптимизация производительности

Для больших сайтов используйте кеширование:

[[pdoSitemap? &parents=`0` &cacheTime=`86400` ]]

Кеш на 24 часа (86400 секунд) существенно ускорит загрузку карты.

Ограничьте глубину выборки если не нужны все уровни:

[[!pdoSitemap? &parents=`0` &depth=`5` ]]

Оцените статью
MODX 3
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.