先日リニューアルした際に、去年の今頃書いた記事「サイトマップ for Movable Type 4」のソースからサイトマップを作成したところ、実際にうまくページを吐き出していない部分があった。よくよくソースを解析してみると、とんでもない詰めの甘いミス連発! このままじゃダメだと思い、早速サイトマップ用のテンプレートを作成。この一年間、中途半端なサイトマップを公開してしまい、申し訳ありません。新たに作成したサイトマップのテンプレートに至急差し替えをお願いします。
サイトマップをMovable Typeで作成する意味


Moavble Typeでサイトマップを作成するメリットは多い。理由は、一度しっかりしたテンプレートを作成してしまえば、半永久的にブログの記事を書いたときに自動的に記事のURLをサイトマップに明記してくれるからだ。今回公開するテンプレートを使えば、年別、月別アーカイブページのURLも、自動的に書き出すことができる。新しく年、月等が変わった場合も同様だ。
サイトマップを作成したら、robot.txtでもいいし、「Google ウェブマスターツール」やYahoo! Japanの「サイトエクスプローラー」に登録して、定期的にクローリングされるように設定する。そうすれば、検索エンジンにページが登録されるスパンも短くなるし、上記に述べたサービスから、定期的にページに関する情報提供を受けることができ、十分なSEO対策が可能となる。
なので、SEO対策にサイトマップを用いるのは、今や常識と言ってもいいだろう。特に簡単にサイトマップを書き出すよう設定できるMovable Typeでサイトマップを作成しない理由はない。もう作成しない意味がわからない、ぐらい言ってもいいと思う。
さあ、早速テンプレートを用いて、Movable Typeからサイトマップを書き出すよう設定してみよう。しかし、その前に少し解説させてくれ!
戦略的サイトマップ
Movable Typeの管理者画面の操作は、以前書いた記事「サイトマップ for Movable Type 4」を参照いただくとして、今回は改良したソースコード(正常に動く・・・)に的を絞って解説する。
今回サイトマップに記載するページは、トップページ、ブログ記事、カテゴリーページ、年別、月別、週別、日別、カテゴリー(年、月、週、日)、オーサー(年、月、週、日)、アーカイブインデックス、ウェブページと、Movable Typeデフォルトで書き出す事ができるページをすべて網羅する。
「年別、月別のページはあっても週別、日別のページは作っていない」という場合でも、ソースのゴミは発生せず、とてもスマートでクリーンなサイトマップが書き出す事ができるのだ。
少し突っ込んだ話をすると、<priority>というXMLタグを全ページに付加するようにしてある。<priority>はオプション扱いで、特に明記しないでもよいが、重要なページと、そうでもないページを区別することができるので、戦略的に利用すれば効果的だ。
なお、今回はトップページとブログ記事に重点を置き、カテゴリーページ、その他と続く、三段階の設定にしてある。
ソースコード
<?xml version="1.0" encoding="<$MTPublishCharset$>"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc><$MTBlogURL encode_xml="1"$></loc> <lastmod><$MTDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <MTEntries lastn="0" sort_by="modified_on"> <url> <loc><$MTEntryPermalink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>1.0</priority> </url> </MTEntries> <MTArchiveList archive_type="Category" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.7</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Yearly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Monthly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Weekly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Daily" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Category-Yearly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Category-Monthly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Category-Weekly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Category-daily" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Author-Yearly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Author-Monthly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Author-Weekly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTArchiveList archive_type="Author-Monthly" sort_by="modified_on"> <url> <loc><$MTArchiveLink encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTArchiveList> <MTPages lastn="0" sort_by="modified_on"> <url> <loc><$MTPagePermalink encode_xml="1"$></loc> <lastmod><$MTPageModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </MTPages> <url> <loc><$MTLink template="Archives" encode_xml="1"$></loc> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </urlset>