Home Contact Sitemap
Заказать качественные web услуги

Блог web-разработчика

Блог о веб-технологиях, скриптовых языках, CMS.

День недели и дата публикации - Суббота, 22 августа 2009 - 23:08 в категории MODx. Вы можете читать сайт в RSS потоке.

Карта сайта и google sitemap в MODx

Категория 22 августа 2009 in MODx

Каждый сайт, содержимое которого обновляется достаточно динамично, неплохо дополнять картой сайта в формате xml. Также хорошим тоном является составление карты сайта для пользователей. Поисковые системы их тоже «любят». Рассмотрим, как это можно сделать в MODx.

Карта сайта в формате HTML

Для создания карты сайта, как правило, необходимо создать специальную страницу, используя шаблон, который вы считаете для нее наиболее подходящим. Затем вызвать сниппет Wayfinder, например следующим образом:

[[Wayfinder? &startId=`0` &level=`0` ]]

Сниппет Wayfinder входит в список поставляемых вместе с CMS сниппетов и идеально подходит для решения задачи создания карты сайта. Отмечу только то, что по умолчанию страницы, у которых не стоит флаг «показывать в меню» не включаются в карту сайта. Чтобы исправить ситуацию, надо вызвать Wayfinder с параметром &ignoreHidden=1:

[[Wayfinder? &startId=`0` &level=`0` &ignoreHidden=`1` ]]

Для решения этой задачи можно использовать сниппет sitemap с кодом вызова:

[[sitemap? &format=`ulli`]]

Об этом сниппете речь пойдет дальше, но его использование для составления HTML карты сайта может оказаться неудобным, т.к. сниппет не имеет расширенных возможностей по оформлению карты по сравнению с Wayfinder.

Google sitemap для MODx

О google sitemap можно почитать здесь. Сгенерировать карту сайта можно с помощью различных online сервисов, например этого. Файл sitemap.xml придется обновлять после добавления или удаления страниц сайта. Для редко обновляющихся сайтов такое решение может оказаться приемлемым, но в большинстве случаев желательно создать динамически обновляющуюся карту сайта.

Динамическую карту сайта можно сделать, используя сниппет Ditto или специальный сниппет sitemap. Найти его в Интернете стоило немалых усилий, поэтому я раместил его у себя на сайте, сохранив информацию о разработчике.

Сниппет sitemap работает несколько быстрее Ditto, его мы и рассмотрим. Для его установки необходимо создать сниппет sitemap и скопировать в него содержимое этого файла.

Для того чтобы сгенерировать карту сайта, нужно следующее:

1) Создать TV параметры sitemap_changefreq и sitemap_priority

sitemap_changefreq
Тип: DropDown List Menu
Возможные значения : always||hourly||daily||weekly||monthly||yearly||never
Значение по умолчанию : поставьте наиболее актуальный для вашего сайта период обновления (например weekly).

sitemap_priority
Тип: DropDown List Menu
Возможные значения : 0.1||0.2||0.3||0.4||0.5||0.6||0.7||0.8||0.9||1
Значение по умолчанию :0.5 (можете поставить любое другое).

2) Создать новый документ в корне сайта

3) Установить «Псевдоним» = sitemap.xml (Семантические URL должны быть включены)

4) Выбрать шаблон «(blank)» в настройках документа-общие

5) Если HTML-редактор контента включен, отключить его

6) Выбрать тип содержимого «text/xml’ в настройках страницы

7) Вставить в «Содержимое страницы»

8) В контент внести [[sitemap]]

9) Обновить сайт.

Возникает вопрос: как исключить из google sitemap некоторые страницы. Сниппет sitemap поддерживает два способа исключения документов:

- по TV-параметру

Необходимо создать TV-параметр sitemap_exclude типа DropDown List Menu с возможными значениями 0||1 и значением по умолчанию 0 для всех шаблонов. Далее выбрать для него значение 1 на всех страницах, которые не должны отображаться в карте сайта.

- по имени шаблона

В вызове можно указать шаблоны или идентификаторы шаблонов страниц, которые не должны отображаться в карте сайта. Код вызова будет примерно таким:

[[sitemap? &excludeTemplates=`myTemplateName,3,4`]]

Я немного доработал скрипт, теперь он на главную страницу сайта не выдает ссылку с псевдонимом, что помогает избежать дублирования контента главной страницы

14 Ответов на “Карта сайта и google sitemap в MODx”

  1. Олег сказал:

    А как вы справляетесь если включены ЧПУ, и получается документ типа http://www.8chudo74.ru/sitemap.xml.html

  2. ignore сказал:

    это хорошо но а как сделать для 1-0-2 версии этот вариант у меня неработает

  3. mgordeev сказал:

    to Олег: Теме дублирования контента посвящен отдельный пост.
    Там описано, как избежать URL вида xml.html .

  4. mgordeev сказал:

    to ignore: А какую ошибку выдает?
    Я использую этот скрипт и на 1.0.2.

  5. =Lexx= сказал:

    Ошибка синтаксического анализа XML: лишние данные после элемента документа
    Адрес: http://pickup-perm.ru/sitemap.xml.htm

    Строка 2, символ 1:Warning: Unterminated comment starting line 1 in /storage/home/srv20820/pickup-perm.ru/manager/includes/document.parser.class.inc.php(770) : eval()’d code on line 1
    ^

  6. =Lexx= сказал:

    не работает карта у меня :(

  7. mgordeev сказал:

    Да, в сниппете была ошибка, сейчас я обновил файл и теперь все должно быть ок.

  8. макс сказал:

    не работает
    Priority
    Change Frequency
    Просто не выводит эти поля и все

  9. mgordeev сказал:

    Если вы назвали TV-паарметы по-своему то в вызове сниппета надо указать соответственно:
    &changefreq=`Ваше название`, &priority=`Ваше название`

  10. Santey сказал:

    Макс, может просто указать шаблоны, которые могут использовать этот параметр? ;-)

  11. Эдик сказал:

    Блин, выдает ошибку http://konez-sveta.com/sitemap.xml
    Можете подсказать в чем причина?

  12. mgordeev сказал:

    Ошибку видел, почему возникла сказать не могу.

  13. Эдик сказал:

    Все отремонтировал. Важно в шаблоне выбрать именно blank

  14. TinK сказал:

    Использую MODX Revolution 2.1.3-pl (traditional)

    Подключил сниппет sitemap, создал TV параметры sitemap_changefreq и sitemap_priority (не нашел «DropDown List Menu», поставил «Список (одиночный выбор) — Listbox (Single-Select)»).

    Создал страницу sitemap с типом содержимого XML, в «Соедержимое ресурса» (с отключенным HTML-редактором) вписал [[sitemap]].

    И… ничего :( Открывается девственно чистая страница :(
    Почему? Как поправить?

    to Эдик, какую версию MODx вы используете и как подключали sitemap?

Оставить комментарий

Вы можете подписаться на RSS ленту комментариев.