CloudflareのWAFルールを設定してPerplexityとChatGPTを許可しつつ攻撃的なクローラーをブロックする方法
CloudflareのAIボット管理を理解する:グローバルブロックボタンが危険な理由
Cloudflareのワンクリック「AIボットをブロック」機能は、サイトに大量のオーガニックトラフィックをもたらすPerplexityやChatGPTなどの有益な検索エンジンを含む、すべてのAIクローラーを無差別にブロックします。この核オプションは、次世代のAI検索プラットフォームによるコンテンツのインデックス化を阻止し、情報発見のためにAI駆動の検索ツールに依存する数百万人のユーザーに対して、あなたのウェブサイトを事実上見えなくしてしまいます。
選択的AIボット管理の戦略的重要性
現代のウェブトラフィックは、AI駆動の検索エンジンやアシスタントから発生する割合が増加しています。Perplexity、ChatGPT Search、GoogleのAI Overviews、および類似のプラットフォームは、情報検索の未来を表しています。Cloudflareの包括的なAIボットブロックを使用しながら、これらの正規のクローラーをブロックすることは、サイトの発見可能性とオーガニックリーチに深刻な影響を与える重大な可視性のギャップを生み出します。
解決策は、価値を提供せずに帯域幅を消費する攻撃的なスクレイパーと、有益なAIクローラーを区別する詳細なWeb Application Firewall(WAF)ルールの実装にあります。このガイドでは、AI検索エコシステムでの可視性を維持しながら、インフラストラクチャを保護するCloudflare WAFルールの設定に関する包括的な手順を提供します。
主要なAIクローラーのUser-AgentとIP範囲
WAFルールを設定する前に、正規のAIクローラーが使用する識別方法を理解する必要があります。以下の表は、主要なAIボットのUser-Agentとそれに関連するIP範囲に関する包括的な情報を提供します:
| プロバイダー | User-Agentトークン | 完全なUser-Agent例 | IP範囲検証 | Robots.txtトークン |
|---|---|---|---|---|
| Perplexity AI | PerplexityBot | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/bot) | 逆引きDNSルックアップで検証 | PerplexityBot |
| OpenAI (ChatGPT) | GPTBot | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.0; +https://openai.com/gptbot) | openai.com/gptbot.jsonで公開されたJSON | GPTBot |
| OpenAI (SearchGPT) | OAI-SearchBot | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot) | openai.com/searchbot.jsonで公開されたJSON | OAI-SearchBot |
| Google (Gemini) | Google-Extended | Mozilla/5.0 (compatible; Google-Extended/1.0; +http://www.google.com/bot.html) | GoogleのIP範囲で検証 | Google-Extended |
| Anthropic (Claude) | anthropic-ai | anthropic-ai (compatible; Claude-Web/1.0; +https://anthropic.com/bot) | 逆引きDNSで検証 | anthropic-ai |
| Apple (Applebot) | Applebot | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot) | 17.0.0.0/8 (主要範囲) | Applebot |
| Cohere | cohere-ai | cohere-ai (compatible; CohereBot/1.0; +https://cohere.com/bot) | 逆引きDNSで検証 | cohere-ai |
| Meta AI | FacebookBot | facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) | 公開されたASN: AS32934, AS63293 | FacebookBot |
有益なAIクローラーを許可するカスタムWAFルールの設定
CloudflareのWAFカスタムルールは、高度なボット管理ポリシーを作成する柔軟性を提供します。以下の設定は、攻撃的なスクレイパーや不正なボットをブロックしながら、正規のAI検索クローラーを許可します。
ステップ1: Cloudflare WAFカスタムルールへのアクセス
- Cloudflareダッシュボードにログイン
- 設定するドメインを選択
- セキュリティ → WAF → カスタムルールに移動
- ルールを作成をクリックして、カスタムルールセットの設定を開始
ステップ2: 正規のAIクローラーのための許可ルールを作成
以下の設定でルールを作成します:
ルール名: 正規のAI検索クローラーを許可
式:
(http.user_agent contains "PerplexityBot") or (http.user_agent contains "GPTBot") or (http.user_agent contains "OAI-SearchBot") or (http.user_agent contains "Google-Extended") or (http.user_agent contains "anthropic-ai") or (http.user_agent contains "Applebot") or (http.user_agent contains "cohere-ai") or (http.user_agent contains "FacebookBot" and not http.user_agent contains "facebookexternalhit")
アクション: 許可
優先度: 1に設定(このルールが最初に実行されるように最高優先度に設定)
ステップ3: 攻撃的な汎用スクレイパーのブロックルールを作成
正規のクローラーを許可した後、既知の攻撃的なスクレイパーをブロックする二次ルールを作成します:
ルール名: 攻撃的なスクレイパーと不正なボットをブロック
式:
(http.user_agent contains "scrapy") or (http.user_agent contains "python-requests") or (http.user_agent contains "curl") or (http.user_agent contains "wget") or (http.user_agent contains "go-http-client") or (http.user_agent contains "axios") or (http.user_agent contains "node-fetch") or (http.user_agent eq "") or (http.user_agent contains "Bytespider") or (http.user_agent contains "PetalBot") or (http.user_agent contains "AhrefsBot" and not cf.bot_management.verified_bot) or (http.user_agent contains "SemrushBot" and not cf.bot_management.verified_bot) or (http.user_agent contains "DotBot") or (http.user_agent contains "MJ12bot") or (http.user_agent contains "BLEXBot")
アクション: ブロック
優先度: 2に設定
ステップ4: 疑わしいトラフィックパターンのチャレンジルールを実装
許可またはブロック基準のいずれにも一致しないが、疑わしいパターンを示すトラフィックに対して、チャレンジルールを実装します:
ルール名: 疑わしいボット的な動作にチャレンジ
式:
(cf.bot_management.score lt 30) and not (cf.bot_management.verified_bot) and not (http.user_agent contains "PerplexityBot") and not (http.user_agent contains "GPTBot") and not (http.user_agent contains "OAI-SearchBot") and not (http.user_agent contains "Google-Extended") and not (http.user_agent contains "Applebot")
アクション: マネージドチャレンジ
優先度: 3に設定
APIエンドポイント保護のためのカスタムレート制限ルールの実装
レート制限は、特にAPIエンドポイントやリソース集約的なページに対するスクレイピング悪用に対する追加の保護層を提供します。正規のAIクローラーに影響を与えないインテリジェントなレート制限を設定するには、以下の手順に従ってください:
ステップ1: レート制限ルールに移動
- Cloudflareダッシュボードで、セキュリティ → WAF → レート制限ルールに移動
- ルールを作成をクリック
ステップ2: APIエンドポイントのレート制限を設定
ルール名: AIクローラー除外付きAPIエンドポイントレート制限
式:
(http.request.uri.path contains "/api/") and not (http.user_agent contains "PerplexityBot") and not (http.user_agent contains "GPTBot") and not (http.user_agent contains "OAI-SearchBot") and not (http.user_agent contains "Applebot") and not (cf.bot_management.verified_bot)
特性:
- リクエスト数: 100リクエスト
- 期間: 60秒
- カウント方法: IPアドレスでカウント
アクション: 1時間ブロック
ステップ3: コンテンツページのレート制限を設定
コンテンツページには、正規の閲覧パターンに対応するより寛大なレート制限を実装します:
ルール名: コンテンツページレート制限
式:
(http.request.uri.path contains "/blog/" or http.request.uri.path contains "/articles/") and not (http.user_agent contains "PerplexityBot") and not (http.user_agent contains "GPTBot") and not (http.user_agent contains "OAI-SearchBot") and not (http.user_agent contains "Google-Extended") and not (http.user_agent contains "Applebot") and not (cf.bot_management.verified_bot)
特性:
- リクエスト数: 300リクエスト
- 期間: 300秒(5分)
- カウント方法: IPアドレスでカウント
アクション: マネージドチャレンジ
ステップ4: 攻撃的なクローラーのレート制限を実装
完全にブロックされなかった既知の攻撃的なクローラー専用の厳格なレート制限を作成します:
ルール名: 攻撃的なクローラーの抑制
式:
(http.user_agent contains "AhrefsBot") or (http.user_agent contains "SemrushBot") or (http.user_agent contains "MJ12bot") or (cf.bot_management.score lt 20 and not cf.bot_management.verified_bot)
特性:
- リクエスト数: 10リクエスト
- 期間: 60秒
- カウント方法: IPアドレスでカウント
アクション: 24時間ブロック
ステップ5: レート制限の監視と調整
- セキュリティ → イベントに移動して、トリガーされたルールを監視
- 正規のトラフィックに影響を与える誤検知についてアクティビティログを確認
- サイトの典型的なトラフィックパターンに基づいてレート制限のしきい値を調整
- 分析 → セキュリティを使用して、新たなスクレイパーパターンを特定
- 新しいAI検索エンジンが登場するたびに、四半期ごとに許可リストを更新
高度な設定: IP範囲検証
User-Agent文字列は偽装可能であるため、IP範囲検証は不可欠な二次検証方法です。セキュリティを強化するために、これらの高度なルールを実装してください:
検証済みボットのIP範囲検証
高価値コンテンツに対して、正しいUser-AgentとIP範囲検証の両方を要求するルールを作成します:
(http.request.uri.path contains "/premium/") and ( (http.user_agent contains "GPTBot" and not cf.bot_management.verified_bot) or (http.user_agent contains "PerplexityBot" and not cf.bot_management.verified_bot) )
アクション: マネージドチャレンジ
このルールは、正規のAIボットであると主張しながら検証済みIP範囲から発信されていないクローラーにチャレンジし、偽装の試みからプレミアムコンテンツを保護します。
監視とメンテナンスのベストプラクティス
効果的なWAFルール管理には、継続的な監視と調整が必要です。以下のベストプラクティスを実装してください:
- 週次レビュー: ブロックされた正規のトラフィックについてセキュリティイベントを確認し、それに応じてルールを調整
- 月次分析: 分析データをレビューして、新しいクローラーのUser-Agentと新たなスクレイピングパターンを特定
- 四半期更新: 新しいAI検索エンジンがローンチされ、既存のものがクローラーを変更するたびに許可リストを更新
- アラート設定: ブロックされたトラフィックの異常な急増に対するCloudflare通知を設定
- ドキュメント化: ルール変更と各設定の根拠に関する内部ドキュメントを維持
- テストプロトコル: 本番環境に新しいルールをデプロイする前に、「ログ」モードでテストして潜在的な問題を特定
Robots.txtとの連携
WAFルールは、robots.txtディレクティブを置き換えるのではなく、補完する必要があります。協調的なアプローチを維持してください:
# 有益なAIクローラーを許可 User-agent: PerplexityBot Allow: / User-agent: GPTBot Allow: / User-agent: OAI-SearchBot Allow: / User-agent: Google-Extended Allow: / User-agent: Applebot Allow: / User-agent: anthropic-ai Allow: / # 攻撃的なスクレイパーをブロック User-agent: Bytespider Disallow: / User-agent: PetalBot Disallow: / User-agent: AhrefsBot Crawl-delay: 10 Disallow: /api/ User-agent: SemrushBot Crawl-delay: 10 Disallow: /api/
パフォーマンスへの影響の考慮事項
WAFルールはすべてのリクエストで実行されるため、サイトパフォーマンスを維持するには最適化が重要です:
- ルールの順序: 最も頻繁に一致するルール(一般的なクローラーの許可ルール)をより高い優先度に配置して、処理時間を短縮
- 式の効率性: 可能な限り複雑な正規表現ではなく、単純な文字列マッチング(contains)を使用
- ルールの統合: 複数の重複するルールを作成するのではなく、関連する条件を単一のルールに結合
- キャッシング統合: キャッシュ可能なリソースに対する不要なチャレンジを回避することで、WAFルールがCloudflareのキャッシングを妨げないようにする
- 地理的考慮事項: 地域固有のコンテンツには、不要なルール評価を減らすために地理的フィルターを追加
よくある質問
Cloudflareのワンクリック「AIボットをブロック」機能を使用すべきでない理由は?
CloudflareのグローバルなAIボットブロックは、Perplexity、ChatGPT Search、GoogleのAI機能などの有益なものを含む、すべてのAIクローラーを無差別にブロックする無差別なツールです。これらのプラットフォームは大量のオーガニックトラフィックを促進し、検索の未来を表しています。これらをブロックすると、AI駆動の検索ツールに依存する数百万人のユーザーに対してコンテンツが見えなくなります。カスタムWAFルールを使用すると、価値を提供しない攻撃的なスクレイパーをブロックしながら、正規のAI検索エンジンを選択的に許可できます。
WAFルールが正しく機能していることを確認するにはどうすればよいですか?
Cloudflareのセキュリティイベントダッシュボードでルールを監視します(セキュリティ → イベント)。これにより、どのルールがトリガーされ、どのトラフィックに影響を与えているかに関するリアルタイムデータが表示されます。新しいルールは、トラフィックに影響を与えずに動作を観察するために、「ブロック」モードではなく「ログ」モードで開始してください。新しいルールを実装した後の最初の1週間は、誤検知を捕捉するためにアクティビティログを毎日確認してください。また、異なるUser-Agent文字列でcurlコマンドを使用して、ルールを手動でテストすることもできます。
「ブロック」と「マネージドチャレンジ」アクションの違いは何ですか?
「ブロック」は、訪問者が続行する機会なしに即座にアクセスを拒否し、403 Forbiddenエラーを返します。これは、既知の悪意のあるボットや攻撃的なスクレイパーに適しています。「マネージドチャレンジ」は、正規のブラウザが自動的に通過できるインテリジェントなチャレンジを提示しながら、ボットをブロックします。Cloudflareのシステムは、リクエストの特性に基づいて適切なチャレンジタイプ(不可視、JavaScriptチャレンジ、またはCAPTCHA)を決定します。正規のユーザーを含む可能性のある疑わしいトラフィックにはマネージドチャレンジを使用し、確認された悪意のあるソースにはブロックを使用してください。
AIクローラーの許可リストをどのくらいの頻度で更新すべきですか?
AI検索の状況は急速に進化しているため、最低でも四半期ごとに許可リストを確認して更新してください。新しいAI検索エンジンは定期的にローンチされ、既存のものはクローラーのUser-AgentやIP範囲を変更する可能性があります。主要なAI企業(OpenAI、Anthropic、Google、Perplexity)からのアナウンスを購読して、クローラーの変更について情報を得てください。正規の新しいクローラーである可能性のあるブロックされたUser-Agentについて、セキュリティイベントログを監視してください。主要なAI検索製品(ChatGPT SearchやGoogleの新しいAI機能など)がローンチされたら、可視性を維持するためにすぐにルールを更新してください。
正規のAIクローラーがUser-Agentを偽装してルールをバイパスできますか?
User-Agentは偽装可能ですが、正規のAI企業は評判を損ない、ウェブマスターガイドラインに違反するため、この慣行には関与しません。ただし、悪意のある行為者は正規のクローラーのUser-Agentを偽装する可能性があります。これがIP範囲検証が重要な理由です。Cloudflareのcf.bot_management.verified_botフィールドを使用してください。これは、既知のボットからのものであると主張するリクエストが実際に検証済みIP範囲から発信されていることを検証します。高価値コンテンツには、正しいUser-Agentと検証済みIP範囲の両方を要求するルールを実装してください。これにより、正規のクローラーを許可しながら偽装を防ぎます。
AIクローラーに適切なレート制限は何ですか?
正規のAIクローラーは通常、合理的なレート制限とcrawl-delayディレクティブを尊重します。PerplexityBotやGPTBotなどの有益なクローラーについては、レート制限から完全に除外するか、非常に寛大な制限(5分あたり1000以上のリクエスト)を設定してください。これらのクローラーはすでに配慮して設計されており、サーバーを圧倒することはありません。AhrefsBotやSemrushBotなどの攻撃的なSEOクローラーには、リソースの枯渇を防ぐために厳格な制限(1分あたり10〜20リクエスト)を実装してください。サーバーの負荷を監視し、インフラストラクチャの容量に基づいて制限を調整してください。APIエンドポイントは、コンテンツページよりも厳格な制限を設定する必要があります。
すべてのPythonとcurlのUser-Agentをブロックすべきですか?
「python-requests」や「curl」などの汎用User-Agentをブロックすることは、洗練されていないスクレイパーに対して効果的ですが、正規の自動化ツール、監視サービス、内部スクリプトもブロックする可能性があります。包括的なブロックの代わりに、階層化されたアプローチを使用してください:公開コンテンツでは許可しながら、機密エンドポイント(API、管理パネル)でのみこれらのUser-Agentをブロックします。あるいは、完全なブロックではなくレート制限を使用してください—正規のツールはレート制限を尊重しますが、攻撃的なスクレイパーはブロックをトリガーします。User-Agentブロックのみに依存するのではなく、プログラマティックアクセスにAPIキー認証を実装することを検討してください。
正規のユーザーがブロックされる誤検知をどのように処理すればよいですか?
攻撃的なボット管理では誤検知は避けられません。明確なブロック解除プロセスを実装してください:ブロックが発生した理由を説明し、正規のユーザーがブロック解除を要求するための連絡先情報を提供する専用ページを作成します。境界線のケースには「ブロック」ではなく「マネージドチャレンジ」を使用してください。これにより、正規のユーザーが人間であることを証明できます。誤検知を示すパターン(企業IP範囲からのブロック、特定の地理的地域、または営業時間中など)について、セキュリティイベントダッシュボードを毎日監視してください。既知の良好なIP範囲(オフィス、主要な企業ネットワーク、正規のサービスが使用するクラウドプロバイダー)のホワイトリストを維持してください。
これらのWAFルールがCloudflareの請求に与える影響は何ですか?
WAFカスタムルールはCloudflare Proプラン以上に含まれており、作成できるルールの数に制限があります(通常、プランに応じて10〜100)。ルール自体はリクエストごとの料金は発生しません—Cloudflareの標準的なリクエスト処理の一部として評価されます。レート制限ルールは、一部のプランでは別途料金が発生する場合があります。ボット管理機能(cf.bot_management.score)にはBusinessまたはEnterpriseプランが必要です。Cloudflareのエッジネットワークがこれらのルールを効率的に処理するため、パフォーマンスへの影響は最小限です。悪意のあるトラフィックをブロックすることによるコスト削減(帯域幅の削減、サーバー負荷、スクレイピング関連のコスト)は、通常、追加のCloudflare料金をはるかに上回ります。
SEOクローラーのアクセスとスクレイパー保護のバランスをどのように取ればよいですか?
正規のSEOクローラー(Googlebot、Bingbot)と攻撃的なSEOツール(AhrefsBot、SemrushBot)を区別してください。検証済み検索エンジンクローラーは常に許可してください—cf.bot_management.verified_botを使用して正規であることを確認します。SEOツールクローラーについては、競合分析に役立つデータを見つけた場合、ブロックではなくレート制限を実装してください。robots.txtのcrawl-delayディレクティブを使用して、完全にブロックせずに攻撃的なクローラーを遅くします。プレミアムまたはゲートコンテンツについては、検証済み検索エンジン以外のすべてのクローラーをブロックしてください。正規の検索エンジンクローラー(Google、Bing)は従来のSEOに不可欠であり、AI検索クローラー(Perplexity、ChatGPT)はAI検索の可視性に不可欠であることを忘れないでください—両方が必要です。
これらのルールを使用して有料APIアクセスモデルを作成できますか?
はい、WAFルールは階層化されたアクセスモデルを強制できます。特定のエンドポイントへのすべての自動アクセスをブロックするルールを作成し、次に有料顧客にAPIキーを発行し、そのIP範囲をホワイトリストに登録するか、認証ヘッダーを要求します。より高度な認証には、WAFルールと組み合わせてCloudflare Workersを使用してください。サブスクリプションレベルに基づいてレート制限階層を実装します—無料階層は1時間あたり100リクエスト、有料階層は1時間あたり10,000リクエストを取得します。コンテンツでトレーニングしたいAI企業については、プレミアムコンテンツに対して商業契約を要求しながら、特定のセクションへのクローラーを選択的に許可できます。このアプローチは、パブリッシャーがAIトレーニングデータアクセスを収益化しようとするにつれて、ますます一般的になっています。
新しいAI検索エンジンがローンチされたらどうすればよいですか?
新しいAI検索エンジンがローンチされたら、そのクローラーのドキュメントを調査して、User-Agent文字列とIP範囲を特定してください。ほとんどの正規のAI企業は、robots.txtドキュメントまたは開発者ページでこの情報を公開しています。コンテンツが早期にインデックス化されるように、ローンチから24〜48時間以内にUser-Agentを許可リストに追加してください。既存のルールによってクローラーがブロックされているかどうかを確認するために、セキュリティイベントを監視してください。クローラーを許可する前に、企業の評判と潜在的なトラフィック価値を考慮してください—すべてのAI検索エンジンが意味のあるトラフィックを促進するわけではありません。新しいクローラーのローンチについて議論されるウェブマスターコミュニティやフォーラムに参加して、新興プラットフォームについて情報を得てください。