検索エンジンのクローラーは、Webページに記述されているリンクをたどって、 WWW上の様々なWebページを巡回します。この巡回先URIのリストは、リンク解析によって作成され、優先順位がつけられます。

巡回先URIリストの生成

クローラーは、次に巡回すべきWebページのURIを取得するために、現在のWebページ内のリンクの内容を解析します。HTMLソース上のa要素に記述されるURIを取得して、巡回リストを作成し、順次クロールしていきます。

a要素ではなくJavaScriptやAdobe Flashを使用したリンクも巡回先リストに加えることが多くなってきましたが、この点については未だ完全とは言いにくい状況が続いています(2010年4月)。より確実を期するのであれば、a要素とhref属性を用いた一般的なハイパーリンクを使用するのがよいでしょう。

クローリングの効率を保つための優先収集

優先収集とは、無駄な巡回の繰り返しや有用性の低いページの巡回を減らすために、リンク先に対して優先順位を決めてクローリングすることをいいます。

検索エンジンのクローラーは、Webページ内のリンクをたどってウェブ上を自動的に巡回します。しかし、CMSで自動生成されているWebサイトなどでは、異なる何種類ものURIで同じコンテンツが重複して存在しているようなことが頻繁に起きています。このようなケースでは、巡回リストから重複するURIを除いても、同じコンテンツが何度も巡回されてしまいます。

こうした重複したコンテンツが数多く存在するようなケースでは、検索エンジンのシステムに無駄な負荷とリソースが発生するだけでなく、クローリングされているサーバーにも無駄な負荷がかかります。こうした無駄な負荷やリソースの無駄遣いを防ぐ意味で、リンク先に対して巡回の優先順位を決める必要があります。

また、できる限り有用なコンテンツを多くクロールするという意味でも、優先収集の仕組みは重要な役割を果たします。有用性が低いとみられるコンテンツのクロールを制限することで、より有用性の高いコンテンツをクロールするだけのリソースの余裕が生まれるからです。

巡回の優先順位の決定方法

巡回の優先順位の決め方には、主に次のような方法があげられます。いずれの方法も単独で用いているわけではなく、検索エンジンごとに、その他の様々な方法と高度に組み合わせて使用しています。

ページの移動回数
起点とするWebページに対して、そこからの移動回数(ページを移る回数)を決めておき、指定回数分リンクをたどった時点でクローリングを終了する方式です。同じWebページを何度か繰り返したどることがあっても、数回の繰り返しでクローリングを終了することができ、無限ループに陥る可能性がなくなります。
リンクポピュラリティの高さをもとにする
多くのWebページからリンクを集めるWebページは、情報の重要性が高いものだと考えられます。そのため、被リンク数の多いWebページを優先的に廻り、被リンク数の少ないWebページはあまり廻らないことで、不要なクローリングを減らすことができます。実際には単なる被リンク数ではなく、リンクポピュラリティを基準として用いています。

ユーザーによる巡回申請とXML Sitemaps

検索エンジンによってはユーザーによる巡回申請を受け入れているほか、現在では多くの検索エンジンが XML Sitemaps に対応しており、サイト内のURIのリストを検索エンジンに送信することが可能となっています。

ただし、これらはあくまでも巡回先の候補として受理されるだけであり、必ずクロールされることを保証するものではありません。より確実にサイトをクロールさせるためには、優先収集の基準を満たすことが必要です。ことにリンクポピュラリティは重要で、被リンクの全くないページやサイトはクロールされにくいという点には注意が必要です。