検索ロボットに来てもらうために

Googleに限らず現在の検索サイトは、全文検索型サーチエンジンを使用しているので、いわゆる検索ロボットが世界中のサイトを訪れて、抽出したキーワードをデータベースに登録しています。つまり、サイトをオープンしても、検索ロボットが訪れて、キーワードが登録されるまでは、検索サイトに引っかかりません。GoogleやMSNには、サイトを登録するコーナーがあり、そこに登録すれば検索ロボットが来てくれます。ただし、単に登録しただけではなかなか来てくれません。

一方、DrupalのようなCMSの場合は、HTMLのファイルが静的に存在しているわけではなく、PHPのプログラムがHTMLを動的に生成するので、トップ・ページを登録するだけでは、検索ロボットが上手く検索してくれないという問題があります。それを解決するのが、サイトマップです。サイトマップは、sitemaps.orgが規格化したxmlファイルであり、検索ロボットに訪れてもらいたいページを記述します。そのサイトマップを、ドキュメントルートに置き、そのURLを検索ロボットに知らせるのです。

サイトマップを手動で作成するのは面倒なので、作成ツールを用意する必要があります。Drupalの場合は、xmlsitemapというアドオンが便利です。このモジュールは、“/sitemap.xml”というURLにアクセスすると、サイトマップを動的に生成します。常に、Drupalのデーターベースから最新の情報を検索し、サイトマップを作成するので、頻繁に更新しても、コンテンツが抜けたり、ゴミが入るようなことはありません。

私の知る限り、サイトマップのURLを検索ロボットに知らせる方法は、三つあります。一つ目は“robots.txt”を利用する方法です。“robots.txt”は、検索ロボットに検索方法を通知するファイルであり、その中にサイトマップのURLを
Sitemap: http://www.5thbear.jp/sitemap.xml
のように、記述するのです。Drupalを使っている場合は、既存の“robots.txt”に追加するだけなので簡単です。サイトを訪れる検索ロボットは、GoogleやMSNだけではありません。この方法は、サイトを訪れる全ての検索ロボットに通知できるので、是非とも設定すべきだと思います。しかし、検索ロボットの来訪を促す効果はありません。

二つ目の方法は、サイトマップを検索サイトに登録する方法です。サイトマップの登録は、ロボットの来訪を促す効果があるようです。登録方法は、GoogleとMSNで異なりますが、基本的には同じです。Googleの入口は、“ウェブマスター セントラル”です。“ウェブマスター ツールにログイン”をクリックして入ります。“Google アカウント”を持っていない場合は、“アカウントを作成”をクリックし、取得してください。MSNの入口は、“Bing Webmaster Center”です。“ウェブマスター ツール サイン イン”をクリックして入ります。“Windows Live ID”を持っていない場合は、“新規登録”をクリックしてください。

ログインするとサイトが登録できます。サイトのURLを入力すると、認証キーの設定が求められます。認証キーの付いたファイルを、サイトのドキュメントルートにダウンロードし、確認ボタンを押すと登録されます。登録されるとサイトのURLが表示されるので、それをクリックし、サイトの管理ページに移り、サイトマップを登録します。Googleの場合は、右下のサイトマップの詳細をクリックすると、サイトマップの管理画面に移るので、“サイトマップを送信する”ボタンをクリックし、サイトマップのurlを登録します。MSNは“クロール”、“サイトマップ”とタブを選択し、 "サイトマップを追加"ボタンをクリックし、サイトマップのurlを登録します。

サイトの管理方法は、GoogleとMSNで異なります。Googleでは、"http://www.5thbear.jp/"と"http://crafts.5thbear.jp/"と"http://mypet.5thbear.jp/"を別々のサイトとして登録し、それぞれにsitemap.xmlを登録します。MSNでは、"http://5thbear.jp/"をサイトとして登録し、"http://www.5thbear.jp/sitemap.xml"と"http://crafts.5thbear.jp/sitemap.xml"と"http://mypet.5thbear.jp/sitemap.xml"をサイトマップとして登録します。

三つ目の方法は、“sitemap ping”を利用する方法で、二つ目の方法と併用します。各検索サイトのサイトマップ管理画面の“サイトマップ再送信”ボタンと同様の効果があります。/etc/cron.daily等に組み込んで実行する方法もありますが、xmlsitemapにはその機能が組み込まれています。xmlsitemapの管理画面の“Search engines”タブがその設定画面です。“Submit the sitemap on content updates”をオンにすると、サイトを更新する度にpingするので、更新が多い場合はオフにした方が無難でしょう。“Frequency of sitemap submission”でpingする頻度を指定します。私は“毎日”にしています。その下に、検索エンジン名が並んでいます。エンジン名をクリックすると、“Submit the sitemap to xxx”というチェックボックスが表示され、オンにすればそのエンジンにpingします。ただし、Yahoo!には、yahoo.comのアドレスが登録されています。これをyahoo.co.jpのアドレスに変更しなければ、日本では使用できないのですが、残念ながら変更方法が分かりません。もっとも、yahoo.co.jpは、Googleのエンジンを使っているはずなので、pingする必要はないかもしれません。

Googleは、サイトマップを登録すると直ちに認識し、新しいサイトマップでの検索が始まります。コンテンツを掲載しても、数時間後には、検索エンジンに登録されています。古いサイトマップも残っているらしく、古いコンテンツ番号が見つからないというエラーが数週間続くという問題点はありますが、そのスピードには驚かされます。一方、Bingは、サイトマップを登録しても保留中という状態が長く続きますし、コンテンツを掲載してもなかなか検索エンジンに登録されません。スピードという点では、Googleにかなり見劣りします。