ココで言う「サイトマップ」とは、ウェブサイトのコンテンツをツリー形式で示したような「よくあるHTMLページ」の事ではなくて、対検索エンジン用のサイトマップXMLのことですぜ。
これは如何に効率よく漏れなく検索エンジンにクロールして貰うかを目的としたものなので、残念ながら人間様が見ても楽しいものではありません(苦笑)
で、今までも一応サーバーのルートにそれっぽいものを配置していましたが、いかんせん情報に疎いこと、腰が重いこと、人間様が楽しく無いということで、URL を羅列しただけの一番簡単なテキストファイル形式のものを置いてただけでした(汗)
えー。いーじゃん。これで十分じゃん。
が、先日 Google のウェブマスターツールにログインしたところ、サイトマップの欄に「警告」のマークが(大汗)
慌てて詳細を見てみると、「リダイレクトするURLは書いちゃアカンよ」とのこと。
早速調べてみると、あ。いくつかスラッシュ抜けが。。。で修正。
ま、問題自体はそれで解決したのですが、ちょうど Google のサイトマップを作るWPのプラグインも検討したりしていたので、この際どうせなら 1.023world 内の完全なサイトマップを作ってやろうじゃないか! と言うことに♪
さて。どーするか。
とりあえず、関連サイトを調べてサイトマップの仕様からお勉強しなくてわ。
そして、以下のような形式で記述する必要があるのだと判りました。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Googleウェブマスターツールより抜粋
要するに、サイト内の全てのページをこの形式で列挙して、サーバーのルートにXMLとして配置すればOKと言う感じかな。
で、僕は Perl しか書かないので、CGI で作ることにしました。
ついでにモバイル版も用意すべく、こちらのページを参考に同時生成するようにした。
完成後、Googleウェブマスターツールに取り込んでみたら、あっけなく承認♪
しかしこの形式はあくまでGoogle仕様と言うことらしいので、他の検索エンジンにも登録できないのかなぁと調べてみたら、なんかプロトコルの参照先を Google から www.sitemaps.org
に変更するだけでいけるっぽい。
と言うことで、上記のソースの <urlset>
要素の xmlns
属性値を http://www.sitemaps.org/schemas/sitemap/0.9
に差し替えるようにした。
で、試しに Yahoo のサイトエクスプローラーにも登録してみたら、こちらもあっけなく成功♪
わーい。
あと、MSN とかどうすんのか。。。
で、またまた調べていたら、今度は全ての検索エンジンに対応した汎用のサイトマップ形式を発見!
それが「ROR」という形式だった。早く言ってね。
但し MSN は Google や Yahoo のようなウェブ管理者向けツールがまだ無い(英語版のみ)ので、あくまでも HTML のヘッダにサイトマップの URL を指定しておいて、それを元にクロールして貰うとのこと。
ま、せっかくいくつも作ったんだし、ROR は MSN 用にして、さっきのは Google と Yahoo 用ということにしよう。
どうせ CGI が勝手に生成するんだし(笑)
さらに、やっぱり人間様も楽しみたいなと言うことで、同時に閲覧向け HTML も吐き出すようにこだわってしました(曝)
で、これが一番の手間だったりして(汗)
そんなこんなで、人間様向けサイトマップです。
あくまでも「見れる」ようになったと言うだけで、やっぱし楽しくは無いか。。。
その他、検索エンジン向けのものは、 sitemap.xml
、sitemap-mobile.xml
、ror.xml
としてサーバーのルートに配置してあるので、興味のある方はご覧ください。
でも重いのであまり見て欲しくなかったりして(汗)
やっぱり圧縮する機能も付けた方が良いかな。
また考えよう。
ちなみに毎日深夜に自動的に書き出すようにしてます。
更新頻度や重要度なんかは良いとしても、ページ自体が増えてくコンテンツもあるしね。
うん。ようやくスッキリした♪
こちらのエントリーもどうぞ♪