盗人はだれ? ーWebスクレイピング対策の基本
全遮断が正解ではない。スクレイピング対策で考えるべき「誰にどこまで取得させるか」の線引き
この記事の目次
以下のような事象に気づいて、驚いたことはありませんか?
- 自社サイトの商品情報や価格が、競合サイトにそのまま転載されている
- 丹精込めて作成した記事や求人情報が、大量に自動取得されている
Webサイトを運用していると、こうした「スクレイピング(データの自動収集)」の被害や懸念に直面することがあります。
しかし、スクレイピング対策を検討する際、「どうやって自動取得を完全に防ぐか」まで考えるのは適切ではないと言えるでしょう。なぜなら、Googleなどの検索エンジンによる巡回も、価格比較サービスによるデータ取得も、AI検索による引用も、技術的にはすべてスクレイピングの一種だからです。これらを一律に遮断してしまえば、検索エンジンからの集客やAI検索での認知機会まで自ら捨ててしまうことになります。
スクレイピング対策の本質は、データを隠すことでも完全遮断することでもありません。「自社のコンテンツを、誰に、何の目的で、どこまで取得させるのか」という事業上の線引きを決めることにあります。
この節では、スクレイピングの基本的な考え方から、robots.txtの限界、そしてCloudflareを活用した効果的な防御アプローチまでを分かりやすく解説します。
「読ませたい相手」と「読ませたくない相手」を整理する
スクレイピング対策で最初に検討すべきなのは、自社サイトにアクセスしてくるBot(自動プログラム)を単純な「善悪」で分けるのではなく、「自社のビジネスにとって価値があるかどうか」で整理してみることです。
Botによるアクセスの目的として考えられるものを挙げ、それぞれに対する対応の考え方の例を示します。
- 検索クローラー(Googlebot等): 検索からの流入(集客)につながるため、積極的に許可
- AI検索(Search)/代理操作(Agent): AIの回答内で自社サイトが引用されたり、ユーザーの代わりに情報検索してくれるなら許可
- AI学習用クローラー(Training): 自社の独自コンテンツやデータを無断でAIモデルの学習に使われたくない場合は制限
- 競合による価格、商品情報取得Bot: 自社の価格戦略を即座に模倣されたり、商品データベースを丸ごとコピーされるなら制限
- 過剰な大量取得Bot: サーバーに高負荷をかけ、Webサイトの表示を遅くさせるアクセスは制限
インターネット上に公開している情報だからといって、「誰にでも無制限に取得させてよい情報」であるとは限らないのです。
出典: Cloudflare Docs: Bot Solutions
robots.txtは「アクセス制限」ではなく「方針の提示」
クローラーの制御において、古くから使われている「robots.txt」という設定ファイルがあります。このファイルは、Webサイトの運営者がクローラーに対して「どのページは取得してよく、どのページは遠慮してほしいか」という方針を伝えるための標準的なしくみとして用意されたものです。
しかし、ここで注意しなければならないのは、robots.txt自体にはアクセスを技術的にブロックする強制力はないという点です。良質な検索クローラーなどは、robots.txtの指示に従ってくれるかもしれませんが、悪質なスクレイピングBotや、ルールを無視するAIクローラーは、robots.txtの記述を無視してデータを強引に取得していきます。
善良なクローラーには方針を示しつつ、ルールを無視する不審なアクセスに対してはWAFやBot対策などのセキュリティ機能で物理的に制限をかける、という二段構えの対応が必要です。
出典: Cloudflare Docs: Control how AI crawls your docs
Bot ManagementとRate Limitingを組み合わせたスクレイピング対策
一般的なスクレイピング対策において、中心的な役割を果たすのが「Bot Management」と「Rate Limiting(レート制限)」の2つの機能です。以下に、両者の特徴をまとめます。
「相手が誰か」を見て対応するBot Management
Cloudflare Bot Managementは、通信パターン、ブラウザーの特徴、過去の振る舞いなどを機械学習で総合的に分析し、アクセスしてきたのが「人間」か「良質なクローラー」か「悪性Bot」かを識別します。その結果を、1から99の「Bot Score」で示し、その値を基準として、悪質なスクレイピングの疑いが強い通信に対してブロックやChallenge(確認処理)を実行することが可能です。
「アクセスの速度、頻度」を見て対処するRate Limiting
Rate Limitingでは、短時間での過剰なアクセス回数を制限します。例えば「商品詳細ページや検索APIに対して、1分間に100回以上のアクセスがあった場合は、一時的に速度を制限する」といったルールを設定できます。
スクレイピングを行う高度なBotの中には、巧妙に一般的なブラウザーになりすまし、1回ごとの通信だけではBotと判定しにくいものもあります。そうした場合でも、Rate Limitingで、不自然なスピードによる大量取得を抑え込むことで、サーバーの過剰な負荷やデータの大量流出を効果的に防ぐことができます。
出典: Cloudflare Docs: Bot Management
出典: Cloudflare Docs: Rate Limiting best practices
AIクローラーは「AI Crawl Control」で個別に管理する
生成AIの普及に伴い、スクレイピング対策の中で急速に重要性を増しているのが、生成AIベンダーが運用するAIクローラーへの対応です。
Cloudflareでは、「AI Crawl Control(旧称: AI Audit))」という専用の管理機能を提供しています。これを活用することで、以下のような制御が可能になります。
- どのAIクローラーが自社サイトにアクセスしているかを可視化
- robots.txtのマナーを守っているかを自動的にチェック
- AIクローラーのアクセス目的(Search / Agent / Training)に応じて、許可/ブロックを切り替え
Google検索やAI回答での引用(Search)は許可したいが、AIモデルの学習データとしての無断取得(Training)はブロックしたい、といった高度な判断も、スイッチひとつで簡単に設定可能です。
単純にすべてのAIを遮断するのではなく、自社のコンテンツ価値や著作権方針に合わせて「使い分け」できる点が、現代的なスクレイピング対策としての大きな強みです。
出典: Cloudflare Docs: AI Crawl Control
100%完全な防衛を目指さず「対策コスト」で考える
スクレイピング対策を検討する上では、「現実」を理解しておくことが必要です。それは「一般公開されているWeb上の情報を、100%完全に誰にもコピーさせない状態にすることは不可能に近い」ということです。
人間のユーザーがブラウザーでWebページを閲覧できる以上、データは、ユーザーが使うパソコンやスマートフォンまで届き、無防備な状態で画面に表示されているのは間違いありません。攻撃者が、人間の操作を精巧に模倣する高度なBotを使って、一見すると一般のユーザーと区別できないようなアクセスのしかたで、スクレイピングを仕掛けてくる可能性もあります。
スクレイピング対策では、「被害」をゼロにすることを目指すのではなく、以下のような「妥協」を含む対処を考えるべきでしょう。
- 短時間での大量取得(全件コピー)の困難化(または阻止)
- サーバー負荷の抑制と、正当なユーザーの表示スピードの維持
- 無断AI学習や悪質な転用など、不利益の大きいアクセスだけのピンポイント制御
対策にかけるコストや手間と、守るべきデータの事業価値のバランスを考慮し、「被害を実用上問題のないレベルまで抑え込む」という現実的なゴール設定が求められます。
DOMOの視点
隠すことではなく、「価値を生むアクセス」を仕分けるアプローチ
DOMOとしてスクレイピング対策を検討する際には、最初からすべての自動アクセスのブロックを提案することはありません。まずは、対象となるWebサイトにおけるデータの事業価値と、アクセスしてくる相手を整理することから始めます。
検討すべきデータの種類としては、以下のようなものが考えられるでしょう。
- 自社メディアの記事: 検索エンジンやAI検索への引用は歓迎する一方、AIモデルの無断学習(Training)への利用は制限
- ECサイトの商品、価格データ: 一般ユーザーや検索クローラーには広く公開しつつ、競合他社による高頻度な自動価格調査(スクレイピング)は阻止
- 採用、求人情報: 求職者に届く経路は増やしつつ、無断の求人転載サイトによる一括取得やサーバー高負荷は防止
CloudflareのBot Management、Rate Limiting、AI Crawl Controlを組み合わせ、データの種類、価値ごとに対処を仕分けることこそが、DOMOが提唱する「成果につながるスクレイピング対策」の基本設計です。
まとめ
スクレイピング対策は、単にプログラムによる自動アクセスをブロックする技術として語ることはできません。「自社コンテンツの価値を守りつつ、正しく届ける」というビジネス上の判断が不可欠です。
基本的な考え方は、集客につながる良質なクローラーは通し、自社に不利益をもたらすスクレイピングだけを識別して制御することです。
そのためには、robots.txtで方針を示しつつ、ルールを無視する悪質なBotにはWAFやRate Limitingで物理的に制限をかけます。
さらに、AI Crawl Controlなどを利用して、AI検索での引用(Search)とAIモデルの学習(Training)を区別し、自社のビジネス方針に合わせた制御を実現します。
自社サイトのどのデータが、誰によって何のために取得されているか、まずは現在のアクセス状況を可視化するところから始めましょう。
覚えておきたい用語
- スクレイピング: Webサイト上の情報をプログラムで自動収集する技術
- Bot: 自動でWebサイトへアクセスするプログラム
- robots.txt: クローラーに取得方針を伝えるためのファイル
- Bot Management: 自動アクセスを検知・分類・制御するCloudflareの機能
- Bot Score: アクセスがBotである可能性を1〜99で表す判定値
- Rate Limiting: 一定時間内のアクセス回数などを制限する仕組み
- AI Crawl Control: AIクローラーのアクセスを可視化・制御するCloudflareの機能
- Search: 検索やAI回答のためにコンテンツを収集する行動分類
- Agent: 利用者の代理としてWebへアクセスする行動分類
- Training: AIモデルの学習などのためにコンテンツを取得する行動分類
