クローラー
何をするものか
Web の技術資料をまとめている MDN Web Docs は、Webクローラーを「ボットやロボットと呼ばれることも多いプログラムで、Webページからデータを集めるためにWebを系統立てて巡回する」ものと説明しています(和訳)[1]。一般に、検索エンジン(Google、Bing など)は索引を作るためにクローラーを使う、としています(和訳)[1]。
通信の約束事を定める IETF の仕様 RFC 9309 は、クローラーを「自動化されたクライアント」としています(和訳)[2]。同じ仕様は、たとえば検索エンジンは索引を作るために、リンクを次々にたどるクローラーを持っている、と書いています(和訳)[2]。
サイト側からの合図:robots.txt
サイトの運営者は、robots.txt というファイルでクローラーに来てよい場所を伝えられます。RFC 9309 は、この仕組み(Robots Exclusion Protocol)を、1994年に Martijn Koster が最初に定めた、サービスの運営者がクローラーによるアクセスを管理するための方法だとしています(和訳)[2]。
Google の説明では、robots.txt は「検索エンジンのクローラーに対して、サイトのどの URL にアクセスしてよいかを伝えるもの」で、主にサイトへのリクエストのオーバーロード(負荷のかけすぎ)を避けるために使うものです[3]。Google は、自社の一般的なクローラー(Googlebot など)は自動クロールで常に robots.txt のルールに従う、としています[4]。
よくある誤解:robots.txt はアクセスを止める鍵ではない
robots.txt は「お願い」であって、扉の鍵ではありません。Google は、robots.txt の指示をクローラーの動作に強制適用することはできず、指示に従うかどうかはクローラー次第だと説明しています[3]。Googlebot などの信頼できるクローラーは従うが、ほかのクローラーも従うとは限らない、としています[3]。
そのため Google は、クローラーから情報を守るには、サーバー上の非公開ファイルをパスワードで保護するなど、ほかの方法を使うよう勧めています[3]。
ニュースで出てくるとき
Google は、自社のクローラーからのリクエストでサーバーが過負荷になっていると考えられる場合に、ウェブページに robots.txt を使ってクロールのトラフィックを管理できるとしています[3]。また、サーバーに大きな負荷をかけずに、1回のアクセスでできるだけ多くのページをクロールすることを目標にしている、としています[4]。
アクセスが本当に Google のクローラーから来たものかについては、Google が確かめる方法を3つ示しています[4]。
クローラーは、町じゅうの店を回って品ぞろえを書き写していく調査員のようなものです。robots.txt は店の入口に貼った「この棚は見ないでください」という貼り紙で、行儀のよい調査員は守りますが、貼り紙そのものに人を止める力はありません。