現在、XML形式のサイトマップとしては、sitemap.orgのフォーマットが標準的な仕様となっています。XML形式のサイトマップを作成・設置することによって、Google、Yahoo!を始めとした検索エンジンのクローラロボットなどにサイトの構造を的確に伝えることができるようになります。ここでは、オープンソースCMSのMODxでの、Dittoを使ったXML形式(標準仕様)のサイトマップの作り方を説明します。
ここで作成するリソースの名前は、例としてそれぞれ適当なリソース名を付けている。実際の運用においては、他のリソース名を付けても特に問題はない。
DittoでXML形式(標準仕様)のサイトマップを出力するためのテンプレートを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
[*content*]
</urlset>
DittoでXML形式(標準仕様)のサイトマップを出力するためのチャンクを作成します。
<url>
<loc>[+url+]</loc>
<lastmod>[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
lastmod要素の内容には、汎用性や拡張性を重視してPHxのモディファイアを使用しているが、Dittoのプレースホルダである[+date+]
を使用することもできる。その場合には、Dittoのスニペットコールに&dateFormat=`%Y-%m-%dT%H:%M:%S+09:00`
を追加する。
XML形式(標準仕様)のサイトマップ用にドキュメントを作成します。
[[Ditto? &parents=`0` &showInMenuOnly=`1` &depth=`10` &display=`all` &sortBy=`menuindex` &sortDir=`ASC` &format=`html` &tpl=`サイトマップ用のチャンク名` &language=`english`]]
コンテンツタイプ」に「application/xml」がない場合は、MODxマネージャの「ツール」→「MODx設定」→「サイト」タブの「カスタムコンテントタイプ」から追加する。application/xmlメディアタイプに未対応のユーザーエージェントにも配慮する場合は、「コンテンツタイプ」を「text/xml」に設定する。または、ユーザーエージェントによってメディアタイプを切り替えるためのphiXmlHeaderプラグインを導入する。
ここでのDittoのスニペットコールは、サイトマップとして出力するドキュメント全てに「メニューに表示」がチェックされていることを前提としている(&showInMenuOnly=`1`
)。
作成したXML形式(標準仕様)のサイトマップをGoogle ウェブマスター ツールやYahoo! Site Explorerなどから登録すれば、検索エンジンのクローラロボットがサイトマップをもとにWebサイトをクロールしてくれるようになります。