Google、Yahoo!、MSN の検索サイト大手3社がサイトマップを標準仕様に採用すると発表して暫く経ちますが、そこへ先日、Ask.comが参加を表明(英語原文)しました。これでサイトマップをサポートする検索サイトは 4 社となり、業界内における共通仕様としての重要性が更に増すことになります。
今回のアナウンスでは Sitemaps Autodiscovery についても発表があったようで、この記事ではあなたのサイトマップを Sitemaps Autodiscovery 対応する方法を紹介しています。ファイルにたった 1 行追記するだけですのでとてもお手軽です。
おそらく殆どのサイトでは検索エンジンのクローラ用に robots.txt が用意されていると思いますが、これにたった 1 行追記するだけです。
Sitemap: http://www.magicvox.net/sitemap.xml
ちなみにこのサイトのrobots.txtはこんな感じになっています。
今回のニュースを受けて久々にsitemaps.orgを訪ねてみると、日本語ページが用意されていたりとリニューアルしていました。ただ、一部日本語訳されていない部分が残っていたりしてまだ不完全なようです。その中でプロトコルの説明に以下の項目が追加されていて、これが今回アナウンスされた Sitemaps Autodiscovery についての説明になります。
robots.txt ファイルにサイトマップの場所を明示する
robots.txt ファイルを使ってサイトマップの場所を明示することができます。そのためには、単純に次の行を追加するだけです:<サイトマップの場所> は、Sitemap: <サイトマップの場所>
http://www.example.com/sitemap.xml
のようなサイトマップへの完全な URL でなければなりません。
この指定はユーザエージェントの指定とは無関係で、ファイルの中のどこに書いても問題はありません。もしサイトマップのインデックスファイルを使用しているのであれば、そのインデックスファイルの場所だけを含めればよく、インデックスファイル中に記載されているそれぞれ個々のサイトマップを羅列する必要はありません。
アクセスログを見ると、今までも Google のクローラロボットは頻繁にサイトマップを参照してくれていた一方、Yahoo! や MSN のクローラボットは全く知らんぷりでした。実際、Yahoo! と MSN についてはサイトマップを知らせていなかったので当然と言えば当然です。
そこで今回、robots.txt でサイトマップの在り処を明示したところ、早速 Yahoo! のクローラロボットがサイトマップにアクセスしていました。作業として robots.txt にサイトマップの指定を追記しただけなので、Sitemaps Autodiscovery の仕様に従ってクロールしてくれていることが判ります。MSN と Ask.(com|jp) からのアクセスは未だ確認できていません。
これで後は MSN と Ask.* のクローラボットについても無事にサイトマップを取得してくれるようになれば、サイトマップとは別にわざわざROR (Resources of a Resource)を用意する手間も省けるわけですね。