解説
robots.txt は 1994 年にさかのぼる慣例です。ドメインのルートに置かれたプレーンテキストファイルで、どのユーザーエージェント(クローラー)がどの URL パスへのアクセスを許可または拒否されるかを記載します。検索エンジン(Google、Bing)および行儀の良いクローラーはこれを遵守します。このファイルは公開されており、任意のサイトの robots.txt を直接取得して(`curl https://example.com/robots.txt`)、サイトオーナーがクローラーに何をしてほしいかを読むことができます。
Robots Exclusion Protocol は純粋に勧告的なものです。ウェブサーバーは robots.txt のディレクティブを強制しません。単に公開するだけです。不正なクローラーは robots.txt を無視でき、サイトはリクエストされた URL を通常どおり提供します。強制力は、検索エンジンのポリシー(Googlebot は robots.txt で拒否されたページをインデックスしない)と、商業的なスクレイパーがオーナーの明示的な意図を無視した場合の法的・評判上の影響から生まれます。
商業スクレイピングにおいて、robots.txt は 2 つの点で重要です。法的には、明示的な `Disallow` ディレクティブを無視することは、CFAA やコンピュータ不正使用に関する訴訟(特に米国での hiQ v LinkedIn 判決以降)において悪意あるアクセスの証拠として引用される可能性があります。運用面では、特定のパスを拒否しているサイトは、そのパスに対してより強力なアンチボット保護を施していることが多く、`Disallow: /search` は通常、`/search` のスクレイピングがサイトの他の部分よりも強固な防御を引き起こすことを意味します。
仕組み
クローラーがドメインで開始すると、まず `/robots.txt` を取得してディレクティブを解析します。このファイルはシンプルな文法を使用しています: `User-agent:
クローラーは取得を検討する各URL をルールと照合し、禁止されたパスをスキップします。一部のクローラーはrobots.txtを24時間キャッシュしますが、成熟した本番クローラーは変更を検出するためにより頻繁に更新します。