XMLサイトマップを検索エンジンに送信するとクロールがどう変わるのかテストしてみた
XMLサイトマップって本当にサイトの役に立っているんだろうかってね。XMLサイトマップを検索エンジンに登録すると、どんな効果があるんだろうか。
…というわけで、このサイトでも同じ実験をしてみました。しかし、全く違う結論が導かれてしまったのです。
実験では全部で 20 本の記事を投稿しました。うち最初の 10 本の記事はブログへの投稿だけを行い、後者の 10 本の記事はブログへの投稿後に Google Sitemap と Yahoo! サイトエクスプローラーにサイトマップを送信しました。そして、記事が公開されてから、それぞれの検索クローラが訪問するまでの時間を計測しました。その結果が以下のグラフです。
サイトマップ | 最小 [秒] | 最大 [秒] | 平均 [秒] | |
---|---|---|---|---|
送信あり | 734 | 33,238 | 6,981 | |
送信なし | 527 | 20,230 | 3,002 | |
Yahoo! | 送信あり | 1,495 | 30,409 | 12,290 |
Yahoo! | 送信なし | 447 | 49,046 | 14,258 |
Google の検索クローラについて見ると、集計から突出して時間の掛かったデータを除いてみれば、サイトマップ送信の有無に関わらず、おおよそ 1,000~1,500 秒が平均的な値になります。これはおそらくはサイトに掲載されている Google AdSense が関係しているのではないかと考えられます。というのも、Google のクローラが訪問してしまう前に、サイトが表示された段階で、掲載広告の内容を決定するために AdSense のクローラが訪問してしまっているからです。裏を返せば、今回の実験からは、サイトに Google AdSense を掲載しているのであれば、サイトマップ送信は不要と言い切ってもよいかもしれません。
一方の Yahoo! では、サイトマップを送信した方が約15%ほど平均値が低いのが判ります。ただ、データにばらつきが大きいので、この15%が有意かどうかは不明です。劇的にクロールが早くなることはないようですが、今回の実験からはその効果が不明であったので、一応はサイトマップを送信しておくのがよいのではないでしょうか。
実験で使用したコードを公開しておきます。同じ実験をしてみた方はご自由にお使いください。PHP 化されたページで動作します。
$fp = @fopen ("crawler.txt", "a"); if ($fp) { fprintf ($fp, "%st%s ", time(), htmlentities ($_SERVER['USER_AGENT'])); fclose ($fp); }