robots.txt ファイルは、Webサイトのディレクトリ内に置かれ、アクセス可能なページやファイルに関するルールをボットに提供します。Webサイトの所有者は、ボットに関するガイドラインとして機能するこのファイルを使用して、検索エンジンのボットやその他のボットが Webサイトでどのような動作をするかをコントロールできます。
robots.txt は組織の検索エンジン最適化と検索結果のページランキングに直接影響します。正当なスクレイパーは、コンテンツをスクレイピングしてインデックス化するたびに robots.txt ファイルを参照します。さらに、Googlebot のような人気の高い検索エンジンのクローラーにはクロールバジェットと呼ばれるものが組み込まれ、robots.txt による影響を直接受けます。クロールバジェットは Web スクレイパーが一定期間にインデックス化できるページ数を参照します。Webサイトにクロールバジェットを通じて割り当てられたページ数よりも多くのページが存在する場合、robots.txt ファイルを使用することで、最も関連性の高いページのクローリングを優先し、重複したページや非公開ページをクローリングの対象外とするように指定できます。
しかし、悪意のあるスクレイパーボットは robots.txt のガイドラインに従わず、Webサイト内の明示的にアクセスが禁止されている部分への アクセスを試みることがよくあります。正当なボットの動作範囲に制限を設け、ボットが常にその範囲内で動作するようにするための方法として robots.txt を考えるとよいでしょう。このファイルが示すガイドラインに従うこともできますが、従わなくてもそれは倫理的な判断であり、robots.txt のルールでもそのような判断に対する制限は設けられていません。一般的なアプリケーションは、robots.txt のルールを有効にしているセキュリティツールを使用し、アプリケーションと機密性の高いファイルやディレクトリの保護を強化しています。robots.txt ファイルはアプリケーション上で悪意のあるボットを素早く捕まえる手がかりとなり得るため、セキュリティツールの多くが robots.txt ファイルを重視しています。
robots.txt ファイルを作成する際、留意すべき点がいくつかあります。
必ずファイルをドメインのルートディレクトリに置きます。各サブドメインごとに個別のファイルが必要です。
robots.txt プロトコルは大文字と小文字を区別します。
誤ってすべてのクローリングをブロックしやすいので、実装する前にコマンドのシンタックスを理解するようにしてください。
「Disallow: /」はすべて許可しないことを意味します。
「Disallow:」は「何も拒否しない」すなわちすべてを許可することを意味します。
「Allow: /」はすべてを許可することを意味します。
「Allow:」は「何も許可しない」すなわちすべて拒否することを意味します。
以下は基本的な robots.txt ファイルの例です。
この例の「User-agent」フィールドにあるアスタリスク (*) は、ルールがすべての Web ロボットに適用されることを示しています。「Disallow」コードは、ロボットによってクロールされるべきではないディレクトリやファイルを指定し、「/private/」、「/admin/」、「/cgi-bin/」が許可されないディレクトリとして指定されています。このロジックによって、管理者はボットがクロールすべきではない場所を正確に指定し、好 きなだけ多くの場所へのアクセスを拒否することができます。
組織は robots.txt ファイルを使用してクローラーがアクセスできるページを指定できるだけでなく、クローラーの作業スピードを制限することもできます。Crawl-delay (クロール遅延) は非公式のディレクティブで、これを使用して一定期間にクローラーが送信できるリクエストの数を制限することが可能です。これにより、クローラーがサーバーに過負荷をかけることがないようにクローラーの動作を制限し、特定の単一クローラーまたはこのディレクティブをサポートするすべてのクローラーに対してクローリングの遅延を適用できます。Yahoo! や Bing などの検索エンジンでは、この非公式なディレクティブがサポートされていますが、Google など他の検索エンジンで同じ効果を得るためには、各社独自のコンソールでの調整が必要になる点に留意してください。
Webサイトの所有者は robotx.txt ファイルを作成し、アプリケーション上でのボットの動作に関するガイドラインを提供できます。正当なボットはこの情報に基づいてどのページをクローリングすべきか判断しますが、悪意のあるボットはこれを無視して好き勝手にクローリングします。robotx.txt ファイルの影響を受けるボットの種類について詳しくはこちらをご覧ください。