Korzen

ブログ

検索エンジンを締め出さずにウェブスクレイピングを止める方法

スクレイパーは価格、掲載情報、記事をコピーし、その配信費用はあなたが払います。招いたクローラーとなりすましを見分ける方法と、残りを止める場所を解説します。

ウェブスクレイピング(web scraping)とは、サイトのコンテンツやデータを自動化でコピーすることです。OWASP はこれを、アクセスできるデータを後で利用するために収集すること、「たとえば独自データの悪用や価格操作」と定義し、その呼び名を挙げています。コンテンツスクレイピング、データ集約、ハーベスティング、スクリーンスクレイピング、そして今では LLM や AI のスクレイパーです。歓迎すべきスクレイピングもあります。検索エンジンは読者を送ってくれるスクレイパーだからです。問うべきは「ボットかどうか」ではなく、「招いたかどうか」です。

スクレイピングの損失

  • あなたに向けられるあなたのデータ。競合は値下げで対抗するために価格を読み取り、コピーサイトは記事を転載し、アグリゲーターは掲載情報を転売します。
  • 配信の費用。ウィキメディア財団は 2025 年 4 月、ボットがページビューの約 35% を占める一方で、最も費用のかかるトラフィック、つまりキャッシュに当たらずコアのデータセンターまで届くリクエストの少なくとも 65% を占めていると報告しました。
  • そのために作られるアカウント。OWASP によれば、スクレイピングの一部は会員だけが見られるものに届くよう、偽のアカウントや盗まれたアカウントを経由します。そのため新規登録も問題の一部になります。偽のサインアップを防ぐ方法をご覧ください。

robots.txt はお願いであって鍵ではない

クローラーが読んでよいものは robots.txt に書いてください。大手の誠実なクローラーはそれに従います。しかしそれを定める標準である RFC 9309 ははっきりと「これらのルールはアクセス許可の一形態ではない」と述べています。あなたの価格を狙うスクレイパーはそれを読みません。だから robots.txt は出発点であって、止める場所ではありません。

招いたクローラーを証明で通す

User-Agent に Googlebot と書くことは誰にでもできます。Google はサイトの所有者に、その名乗りを確かめるよう勧めています。アドレスに対する逆引きと正引きの DNS ルックアップか、Google が公開するアドレス範囲との照合です。Bot Protection はその確認を代わりに行います。名乗ったクローラーがそのベンダーの公開アドレスから来ていれば、応答は crawler にその名前と種類を示します。検索エンジン、AI アシスタント、リンクプレビューは、あなたがブロックしない限り通ります。AI の学習用クローラーは、あなたが通さない限りブロックされます。クローラーごとに個別に選ぶこともできます。検証されたクローラーはすべてボットディレクトリにあります。名前を借りているだけのものは、ほかの訪問者と同じように判定されます。

データのある場所で問い合わせる

スクレイパーは価値のある場所に向かいます。だからチェックはすべてのページではなく、そこに置いてください。商品と価格のページ、検索結果、掲載一覧、販売している記事、そして自分のページが呼び出す JSON です。サーバーは応答する前に Bot Protection に問い合わせ、クラスに応じて対応します。

  • bot_high:断るか、記事の冒頭だけや価格のないページのように、少なく返します。
  • bot:遅くする、キャッシュから返す、またはチャレンジページを通してもらいます。
  • unknown、human、human_high、そして招いたクローラー:ページ全体を返します。

トップページや人を呼び込むだけのページは、誰にでも開いたままで構いません。データのある場所でだけ問い合わせれば、チェックが不要なパスに入らず、請求額にも入りません。出版社のケースはニュースサイト向けのボット対策に、AI クローラーと AI エージェントはAI エージェントと LLM スクレイパーにあります。

ブロックする前に見る

monitor mode から始めてください。誰も止められず、各応答は block mode なら何をしたかを示すので、誰かに見せる内容を変える前に、価格ページやアーカイブのどれだけがスクリプトに読まれているかがわかります。

fail-open を守る

ボットチェックを待つページは、チェックが遅いときには遅くなります。短いタイムアウトを使い、どんなエラーでもページを返してください。障害中にスクレイパーがページを得ても、読者が何も得られないよりは安く済みます。詳しくはボットチェックが fail-open でなければならない理由をご覧ください。

出典

2026 年 10 月 28 日に確認。