·7分で読める

GPTBotをブロックする方法【2026年版】

OpenAIのGPTBotがwebサイトをクロールする仕組みと、robots.txt・Next.js Middleware・Nginx・Cloudflareを使った具体的なブロック方法を解説します。

GPTBotOpenAIrobots.txtブロック

GPTBotとは

GPTBotはOpenAIが運用するWebクローラーです。ChatGPTや将来のGPTモデルの学習データ収集・検索機能のインデックス作成を目的として、毎日膨大な数のWebページを巡回しています。User-Agentには GPTBot と明記されており、識別は比較的容易です。

なぜブロックする必要があるのか

あなたのコンテンツがGPTBotに読まれると、そのテキストはOpenAIのモデル学習に使用される可能性があります。ブログ記事・製品説明・価格情報・独自のノウハウなど、労力をかけて作成したコンテンツが無断で使われることは、著作権の観点からも問題があります。

また、GPTBotのクロールはサーバー負荷を増加させる場合もあります。

方法① robots.txtでブロック(最もシンプル)

サイトのルートに robots.txt を設置し、以下を追記するだけです。

User-agent: GPTBot
Disallow: /

特定ページのみ許可したい場合:

User-agent: GPTBot
Allow: /about
Disallow: /

注意:robots.txtはあくまでも「紳士協定」であり、悪意あるクローラーには効果がありません。OpenAIはrobots.txtを遵守すると公言していますが、完全なブロックには次の方法が有効です。

方法② Next.js Middlewareで402を返す

Next.jsを使用している場合、Middlewareで確実にブロックできます。HTTP 402(Payment Required)を返すことで、ライセンスなしのアクセスを拒否するTollgate方式です。

// middleware.ts
const AI_BOT_RE = /GPTBot|OAI-SearchBot/i;

export function middleware(request: NextRequest) {
  const ua = request.headers.get("user-agent") ?? "";
  if (AI_BOT_RE.test(ua)) {
    return new NextResponse("402 Payment Required", { status: 402 });
  }
  return NextResponse.next();
}

方法③ Nginx設定

if ($http_user_agent ~* "GPTBot") {
  return 403;
}

方法④ Cloudflare WAFルール

CloudflareのWAFカスタムルールで http.user_agent contains "GPTBot" の条件でBlockアクションを設定します。CloudflareのBot Management(有料プラン)を使うとより精度の高い検知が可能です。

ブロックしているか確認する方法

以下のcurlコマンドで自サイトの応答を確認できます。

curl -A "GPTBot" https://yourdomain.com/ -I

HTTPステータスが 403 または 402 であればブロック成功です。

AI Access Monitorを使えば計測もできる

GPTBotをブロックする前に、まず「どのくらい来ているか」を把握することが重要です。AI Access Monitorを使えば、GPTBotをはじめとする28種のAIクローラーのアクセス数・頻度・対象URLをリアルタイムで計測できます。1行のコードを追加するだけで即日計測開始可能です。

AI Access Monitor

まず計測から始めよう

1行のコード追加で、AIクローラーの計測を今日から開始。無料・設定不要。

無料で始める →