Movable Typeで最強サイトマップ

17 Aug 2008
サイトマップ

先日リニューアルした際に、去年の今頃書いた記事「サイトマップ 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>

Comments (4)

はじめまして、サイトマップを作ろうと調べていたらこちらに行き着きました。
作業したのですが、再構築がうまくいきません。

この一文の意味を教えていただけると幸いです。

返信

コメントありがとうございます。
どこかおかしいところはないかな。と見てみたところ、最後のほうの
template="Archives"
がおかしいですね。失礼しました。
これはテンプレートネームを記載すればいいのですが、デフォルトだと「アーカイブインデックス」になっています。(Movable Type Pro version 4.23-jaの場合)
ですので、
template="アーカイブインデックス"
と変更いただければ、うまく再生成ができるはずです。
これでダメでしたら、エラー内容を教えていただけないでしょうか。

返信

はじめまして。
こちらのサイトマップを以前から使わせていただいておりました。

MTを4.25にバージョンアップさせたところ、再構築でエラーが発生するようになりました。

-----エラー内容-----
テンプレート「サイトマップ」の再構築中にエラーが発生しました: <mtArchiveList>タグでエラーがありました: <mtArchiveLink>タグでエラーがありました: Yearlyアーカイブにリンクするために<$MTArchiveLink$>タグを使っていますが、アーカイブを出力していません。

MTのタグに不勉強なもので、修正の仕方がわかりませんでした。
もしわかったら教えていただけないでしょうか。

よろしくお願いいたします。

返信

はじめまして!
私も [ template="Archives"] の部分でエラーが出ていたんですが、
[ template="アーカイブインデックス" ] に書き変えたら無事に再構築されましたよ!

返信

Trackbacks (3)

Trackback URL: http://www.screamo.jp/cms/mt-tb.cgi/157

今まで、googleのサイトマップに対応したサイトマップを生成していた。 しかし...

SEO対策も含め、やっぱりGoogleさんやYahooさんにはどしどし来てもらいたい。ということで、その第1歩としてsitemap.xmlを生成することに...

サイト立ち上げ後2週間でやった基本的(?)な7つのSEO対策 はてブの人気記事...