Vercel FirewallでAIクローラーとAIアシスタントを別々に制御する

2026年10月29日、Vercel Firewall の「AI Bots」マネージドルールセットが更新され、AI Crawlers(学習・インデックス目的の巡回)と AI Assistants(ユーザーの操作や検索クエリに応じてページを取得するボット)を別々のアクションで扱えるようになりました。全プランで利用でき、「学習用のクロールは拒否しつつ、ChatGPT や Perplexity がユーザーの質問に答えるための取得は許可する」といった設定が、ダッシュボードか CLI の数手順で実現できます。まず両カテゴリを Log にして実トラフィックを確認し、そのうえで片方だけ Deny に切り替えるのが安全な進め方です。
変わったのはカテゴリの分割。既定は「Allow(非アクティブ)」のまま
AI Bots ルールセット自体は以前からあり、GPTBot や ClaudeBot などの既知のAIボットをワンクリックで遮断する機能でした。今回の変更で、このルールセットが2つのカテゴリに分かれ、それぞれに Log(記録のみ)か Deny(403で遮断)を個別指定できるようになりました。ボットのリストは Vercel 側で随時更新されます。
重要なのは、ルールセットが既定では非アクティブ(ダッシュボード上は Allow 表示)だという点です。何も設定していないプロジェクトではAIボットのトラフィックは評価されず、そのままアプリに届きます。つまり「知らないうちにAIクローラーを遮断していた」状態にはなりませんが、裏を返せば、過去に Deny にした設定を放置していると、今回分割された Assistants 側まで遮断し続けることになります。心当たりがあるなら、まず現在のアクションを確認してください。
どのボットがどちらに入るのか
各ボットの分類は、Vercel の Bot Protection を支える公開ディレクトリ bots.fyi のタグで確認できます。ドキュメントもこのカタログを参照先として案内しています。
- AI Crawler 側:GPTBot(OpenAI)、ClaudeBot(Anthropic)、CCBot(Common Crawl)、Bytespider(ByteDance)、meta-externalagent(Meta)、Google-Extended、Amazonbot など、学習データ収集に関わるもの
- AI Assistant 側:ChatGPT-User、Claude-User、Perplexity-User といったユーザー起点のフェッチャーに加え、OAI-SearchBot、PerplexityBot、Claude-SearchBot、DuckAssistBot、MistralAI-Index など、AI検索の回答と引用リンクを支えるボット
ここが判断の分かれ目です。AI検索での露出を担うインデクサが Assistants 側に入っているため、Crawlers だけを Deny にすれば、学習目的のクロールを断りながら ChatGPT や Perplexity の回答で引用される可能性は残せます。逆に Assistants を Deny にすると、AI検索経由の引用と流入の経路を自分で閉じることになります。AI経由の流入を評価指標に入れている運用では、Assistants の遮断は慎重に判断すべきです。
一方で、Applebot のように検索機能と学習の双方に関わり AI Crawler タグを持つボットや、AI Crawler と AI Assistant の両方のタグを持つボットも存在します。Deny の影響範囲はサイトごとに異なるため、分類表を眺めるだけで決めず、Log モードで自分のログを見てから決めるのが確実です。
robots.txt では止まらない領域をカバーする
ユーザー起点のフェッチャーに対しては、robots.txt が効かない場合があります。OpenAI は ChatGPT-User について「ユーザーが開始した操作であるため robots.txt のルールが適用されない場合がある」と明記し、検索結果への掲載可否は OAI-SearchBot で管理するよう案内しています。Perplexity も Perplexity-User について同様の立場を公表しています。
したがって役割分担はこう整理できます。「学習に使ってほしくない」という意思表示は robots.txt が担い、技術的に確実に止めたいならファイアウォールという二層構造です。robots.txt だけで Assistants を止めた気になっているなら、それは成立していない可能性があります。逆に、ファイアウォールで Assistants を遮断すれば本当に止まりますが、その先にいるのは「あなたのページを読もうとしている人間のユーザー」である点は踏まえておきたいところです。
設定手順と、ロールアウトの進め方
ダッシュボードでは、プロジェクトの Firewall → Rules を開き、Bot Management セクションの AI Bots から設定アイコンを選び、カテゴリごとにアクションを指定して Review Changes → Publish します。CLI なら次のように、カテゴリ指定で編集してから公開します。
vercel firewall rules edit ai-bots --category ai-crawlers --action deny --yes(クローラーを遮断)vercel firewall rules edit ai-bots --category ai-assistants --action log --yes(アシスタントは記録のみ)vercel firewall diffで差分を確認し、vercel firewall publishで反映
段階的に進めるなら、両カテゴリを Log にして公開 → Firewall のトラフィック画面で実際にどのボットがどのパスに来ているかを確認 → 意図した対象だけが一致していることを確かめてから Deny へという順序が無難です。特定のパスだけAIボットに開放したい場合は、WAF のカスタムルールが先に評価され、マネージドルールセットが後に評価される実行順を利用し、bypass アクションのカスタムルールで対象パスを通します。
Terraform で構成管理しているチームは挙動の差に注意が必要です。公式プロバイダーでは managed_rulesets.ai_bots の下で ai_crawlers と ai_assistants を個別に指定できますが、カテゴリを記載しなかった場合は active かつ action が log になる仕様です。従来の単一 action 指定は非推奨扱いになっているため、カテゴリ対応へ移行する際は plan の差分を必ず確認してください。
サイトの性格から逆算して決める
設定の正解はサイトの目的によって変わります。判断材料として、次の順に決めると迷いにくくなります。
- AI検索経由の流入や引用を取りに行くか。取りに行くなら Assistants は Allow または Log のままにする
- 自社コンテンツの学習利用を認めるか。認めないなら Crawlers を Deny にし、robots.txt の記述も揃える
- クロール由来の負荷やコストが実害になっているか。Vercel は多くのサイトでAIクローラーのトラフィックが人間のアクセスを上回ると説明しており、まず Log で量を把握してから判断する
- 守りたいのが公開ページではなく非公開情報か。その場合はボット制御ではなく認証で守る
オウンドメディアやドキュメントサイトのように引用されることが価値になるサイトでは、Crawlers のみ Deny、Assistants は Log という組み合わせが出発点になります。独自データベースや有料コンテンツを抱えるサイトでは、両カテゴリの Deny に加えて、パス単位のカスタムルールまで踏み込む価値があります。
まずは自社プロジェクトの Firewall で AI Bots の現在のアクションを確認し、Log モードで一度ログを取ってから方針を決めてください。AI検索での露出を意識したサイト構築や、Vercel 上でのファイアウォール・配信まわりの設計に悩む場合は、お問い合わせからご相談ください。
出典
- Vercel: Control AI crawlers and assistants separately in Vercel Firewall(Vercel Firewall でAIクローラーとアシスタントを別々に制御)
- Vercel ドキュメント: WAF Managed Rulesets(WAFマネージドルールセット)
- Vercel: New one-click AI bot managed ruleset(AIボット向けマネージドルールセットの提供開始)
- bots.fyi: 既知のボットとクローラーの公開ディレクトリ
- OpenAI: Overview of OpenAI Crawlers(OpenAIのクローラー一覧)
- vercel/terraform-provider-vercel: Support AI Crawlers and AI Assistants rule groups for the AI Bots managed ruleset(AI Bots ルールセットのカテゴリ対応)


