PdoSitemap документация | создание sitemap.xml в MODX Revo

PdoSitemap документация | создание sitemap.xml в MODX Revo MODX Revo

Сегодня мы разберем как в MODX Revo создать sitemap.xml. Перед тем как начать, давайте изучим немного теории.

Что такое sitemap.xml

Sitemaps — это XML файл содержащий в себе информацию для роботов поисковых систем, о страницах сайта, подлежащих индексации. Иными словами сайтмап помогает поисковым роботам более быстро определять место нахождения страниц, время и частоту их обновления, а так же их важность.

Документация по сниппету pdoSitemap

Быстрый сниппет генерации карты сайта для поисковых систем (sitemap.xml). Понимает параметры сниппета GoogleSitemap (конвертирует в собственные) и легко его заменяет. Главная особенность — очень высокая скорость, по сравнению с аналогом.

По умолчанию отключена проверка прав на доступ к документам. Это легко исправить включением параметра &checkPermissions (Внимание: замедляет работу!):

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

По возможности ресурсы лучше исключать из карты параметрами сниппета.

Параметры

pdoSitemap принимает все параметры pdoTools и некоторые свои:

Параметр По умолчанию Описание
&sitemapSchema http://www.sitemaps.org/schemas/sitemap/0.9 Схема карты сайта.
&forceXML 1 Принудительно выводить страницу как XML.
&priorityTV Дополнительное поле, в котором указывается приоритет документа. Нужно добавить его в параметр &includeTVs

Шаблоны

&tpl

@INLINE <url>\n\t
<loc>[[+url]]</loc>\n\t
<lastmod>[[+date]]</lastmod>\n\t
<changefreq>[[+update]]</changefreq>\n\t
<priority>[[+priority]]</priority>\n
</url>

&tplWrapper

@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 в MODX Revo

Перед тем как начать, вам желательно настроить чпу modx, если оно не настроено.

Создавать sitemap.xml мы будем при помощи pdoSitemap (данный сниппет входит в пакет pdoTools), он у вас должен быть уже установлен. Рассмотрим пошагово, процесс создания сайтмап.

1. Создайте документ и заполните вкладку «Документ» следующим образом:

  • Заголовок – sitemap;
  • Шаблон – пустой шаблон;
  • Псевдоним – sitemap;
  • Не показывать в меню – Да.
  • Опубликован – Да.

Создание sitemap вкладка Настройки

2. Перейдите во вкладку «Настройки» и выберите следующее:

  • Тип содержимого – XML.
  • Доступен для поиска – Нет.
  • Использовать HTML редактор – Нет.
  • Сохранить документ (ресурс).

Примечание! Если у вас не настроено ЧПУ, то во вкладке Настройки вероятно нужно так же выбрать — Заморозить URI и ввести в поле URL — sitemap.xml.

Создание sitemap вкладка Настройки

Важно! Если поисковые системы не видят файл то вместо встроенного местонахождения выберите прикрепленный файл.

3. В поле содержимое ввести: [[!pdoSitemap]] и снова сохранить.

Сохраняем и смотрим результат

Все. Можно проверить результат, для того нажмите на кнопку посмотреть, либо перейдите по адресу сайт.ru/sitemap.xml.

Больше примеров вызова

Генерируем карту сайта только из определённый контейнеров:

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

Исключаем ресурсы с id = 17 и 27, вместе с их потомками:

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

А теперь исключаем id = 17 с потомками, а 27 — без:

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

Добавляем еще один контекст:

[[pdoSitemap?
    &resources=`-25`
    &parents=`-15,10`
    &context=`web,catalog`
]]

А вот так можно посмотреть лог выборки карты:

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

Пример вызова карты сайта на fenom:

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

Примечание и как создать sitemap.xml с ссылками на друге карты

В sitemap.xml рекомендуется добавлять не более 50 тысяч ссылок. Если количество страниц сайта превышает это число, нужно сделать несколько карт (несколько ресурсов).
несколько sitemap
А в файле по адресу site.com/sitemap.xml указать на них ссылки, например при помощи pdoResources:

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
[[pdoResources?
	&parents=`[[*id]]`
	&limit=`0`
	&tpl=`sitemapsTpl`
]]
</sitemapindex>

Где чанк sitemapsTpl содержит следующий код:

<sitemap>
	<loc>[[~[[+id]]? &scheme=`full`]]</loc>
</sitemap>

Должно получиться следующее.

сайтмап с сатмапами

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( 1 оценка, среднее 5 из 5 )
Web-Revenue.ru
Добавить комментарий

  1. Evgeny

    Привет привет, а можете подсказать как выводить ресурсы в карту сайта с фильтрацией по шаблону? пробовал template, не получилось

    Ответить
    1. Алексей автор

      Привет. В плане с фильтрацией? Как там и что должно фильтроваться? Для выборки по определенному шаблону скорее всего нужно использовать pdoResources

      Ответить
  2. Виталина

    Здравствуйте!
    Подскажите, а как реализовать генерацию sitemap, чтобы туда не попадали 301/404 страницы?

    Ответить
    1. Алексей автор

      Здравствуйте. Они туда и не попадают)

      Ответить
  3. Сергей

    Здравствуйте, всё сразу заработало. Но вот вопрос — все ссылки в карте сайта по протоколу http:

    http://www.stek…..

    А сайт на протоколе https// Будет ли такой файл sitemap.xml правильным. Или его надо переделать, и как?

    Ответить
    1. Алексей автор

      Здравствуйте. Если сайт корректно переведен на https, то и ссылки в sitemap.xml должны генериться и быть с https.

      Ответить
  4. Юрий

    Я сделал точно по Вашим урокам (настройка системы, настройка ЧПУ и файл sitemap создал). На Вашей картинке [[!pdoSitemap]] вставлено и черным цветом отображено (в поле формы страницы), а у меня зеленые квадратные скобки и синим шрифтом название pdoSitemap, как в тексте html документа.
    Карта сайта, в итоге, создается, но не показывает страницы (вообще), которые являются вложенными в страницу-контейнер.
    А яндекс.вебмастер пишет, что страницы (они есть в sitemap) отсутствуют в sitemap и предлагает их туда добавить. Т.е. он их в карте сайта не видит просто.
    Где ошибка, можете подсказать?

    Ответить
    1. Алексей автор

      А если вывести так

      [[!pdoSitemap? &parents=`0` &checkPermissions=`list` &context=`web` &showHidden=`1`]]

      + Тип содержимого: должен быть XML и попробуйте поставить Местонахождение содержимого: прикрепленный файл.

      Ответить