pdoSitemap
Быстрый сниппет генерации карты сайта для поисковых систем (sitemap.xml). Понимает параметры сниппета GoogleSitemap (конвертирует в собственные) и легко его заменяет.
Главная особенность - очень высокая скорость, по сравнению с аналогом. На сайте bezumkin.ru при 1700 страниц скорость генерации возросла в 12 раз, с 8.4 сек. до 0.7.
По умолчанию отключена проверка прав на доступ к документам. Это легко исправить включением параметра &checkPermissions (Внимание: замедляет работу!):
[[!pdoSitemap?
&checkPermissions=`list`
]]
По возможности ресурсы лучше исключать из карты параметрами сниппета.
Параметры
pdoSitemap принимает все параметры pdoTools и некоторые свои:
Параметр | По умолчанию | Описание |
---|---|---|
&sitemapSchema | <http://www.sitemaps.org/schemas/sitemap/0.9> | Схема карты сайта. |
&forceXML | 1 | Принудительно выводить страницу как XML. |
&priorityTV | Дополнительное поле, в котором указывается приоритет документа. Нужно добавить его в параметр &includeTVs |
Шаблоны
@INLINE <url>\n\t
<loc>[[+url]]</loc>\n\t
<lastmod>[[+date]]</lastmod>\n\t
<changefreq>[[+update]]</changefreq>\n\t
<priority>[[+priority]]</priority>\n
</url>
@INLINE <?xml version=\"1.0\" encoding=\"[[++modx_charset]]\"?>\n<urlset xmlns=\"[[+schema]]\">\n[[+output]]\n</urlset>
Приоритет и частота обновления для поисковиков устанавливаются в зависимости от последней даты изменения документа:
Времени с последнего обновления документа | Приоритет | Частота обновления |
---|---|---|
Менее суток назад | 1.0 | daily |
Более суток и менее недели назад | 0.75 | weekly |
Более недели и менее месяца назад | 0.5 | weekly |
Более месяца назад | 0.25 | monthly |
Инструкция по созданию файла sitemap.xml
- Создайте новый документ в корне сайта. На вкладке Документ выберите пустой шаблон, укажите Заголовок документа (не важно какой), и псевдоним sitemap. Проверьте, чтобы стояли галочки «Опубликован» и «Не показывать в меню».
- Перейдите на вкладку Настройки и укажите «Тип содержимого» - «XML».
- Уберите галочку с «Использовать HTML-редактор» и сохраните документ.
- В содержимом ресурса вызовите только сниппет pdoSitemap (см. Примеры ниже).
Примеры
Обычный вывод карты сайта для текущего контекста. В большинстве случаев этого может быть достаточно:
[[pdoSitemap]]
Генерируем карту сайта только из определённый контейнеров:
[[pdoSitemap?
&parents=`10`
]]
Исключаем ресурсы с id = 15 и 25, вместе с их потомками:
[[pdoSitemap?
&parents=`10, -15,-25`
]]
А теперь исключаем id = 15 с потомками, а 25 - без:
[[pdoSitemap?
&resources=`-25`
&parents=`-15,10`
]]
Добавляем еще один контекст:
[[pdoSitemap?
&resources=`-25`
&parents=`-15,10`
&context=`web,catalog`
]]
А вот так можно посмотреть лог выборки карты:
[[pdoSitemap?
&resources=`-25`
&parents=`-15,10`
&context=`web,catalog`
&showLog=`1`
&forceXML=`0`
]]