GoogleはURLを推測してクロールするか

おなじみのGoogleのMatt Cutts(マット・カッツ)氏によるウェブマスター向けQ&Aビデオです。

Does Googlebot use inference when crawling?

今回の質問は、「Googleはクローリングするときに推測を使うのか」です。

たとえば、「site.com/article/page1.htm」と、「site.com/article/page2.htm」というページをインデックスしていた場合、連番のページもあるかもしれないと推理して「site.com/article/page3.htm」のクロールを試みるのかということです。

Matt Cutts氏によれば、Googleは確かにクロールに推測を用いるとのことです。

例として、パラメータ付きのURLを挙げています。

URLに複数のパラメータが付いたとき、そのパラメータを取り除いたURLにアクセスしてみます。
パラメータの付いたURLと取り除いたURLのページが存在するかどうか、存在するなら同じかどうかを判断するためです。

重複コンテンツを防ぐ目的ですね。

http://www.example.com/bluewidget.php?trackingid=1234&sessionid=5678

上のようなURLが存在したとします。

このとき、「?」以降のパラメータを取り除いた「http://www.example.com/bluewidget.php」にアクセスしてみて、発見したパラメータ付きのURLのページとコンテンツが同じかどうかを調べるのです。

もし同じなら、重複URL問題を発生させないように、シンプルできれいなURLの「http://www.example.com/bluewidget.php」をインデックスすることになります。

以前にGoogleから通知のあった『動的URLは静的URLに書き換えずにそのままでいい』ということに繋がりますね。

パラメータの入った動的URLを発見した場合は、他に同一のページを指し示すURLがないかどうか、Googleの方である程度推測してくれるわけです。

つまり不要なパラメータかどうかを、Google側で調べてくれます。

もっとも質問者の例にあった、「1, 2, 3…」のような推測をするのかどうかは詳しく調べてみないと分からないそうです。

Googleのクローリングシステムは、常に向上しています。

時にはフォームの値を見て、そのページにアクセスを試みることもあるようです。
フォームの送信先のページをクロールしようとするのです。

もちろん、robots.txtでブロックされているページをクロールしようとはしません。

Googleはより多くのウェブページを集めて、ユーザーに対してより適切な結果を返すことに常に努力しているようですね。