「AIには学習させたくない」。そう考えて、robots.txtにAIクローラーを断る行を書き足した。ところが後日、ChatGPTで自社の分野について尋ねてみても、自社サイトの名前がどこにも出てこない。

このとき止まっているのは、学習用のクローラーだけとは限りません。OpenAIが公開しているクローラーには、学習の材料を集めに来るものと、ChatGPTの検索結果に自社を出すために来るものがあります。後者が OAI-SearchBot です。

この記事は、robots.txtにAIクローラーの設定をこれから書く方、すでに書いたけれど中身に自信がない方へ向けて書きました。OAI-SearchBotがどう動くのか、GPTBotと何が違うのか、どう書き分けるのかを、図解と会話をはさみながら順番にほどいていきます。

こんなふうに調べていませんか

  • 「OAI-SearchBot とは」で検索して、GPTBotとの違いを確かめにきた
  • robots.txtにAIクローラーを断る行を書いたが、これで合っているのか分からない
  • アクセスログにOAI-SearchBotらしき行があるが、本物かどうか判断できない

この記事を読み終えたときに手に入るもの

  • OAI-SearchBotとGPTBotの動きの違いを、社内の人に自分の言葉で説明できるようになります
  • 学習だけ断って検索での表示は残す書き方が、自分でできるようになります
  • ログに来たOAI-SearchBotが本物かどうかを、自分で確かめられるようになります

結論30秒でわかる、この記事の結論

  • OAI-SearchBotとは、ChatGPTの検索結果に自社サイトを表示するための、OpenAI公式のクローラーです。
  • 学習用のGPTBotとは公式ドキュメント上で用途が分かれており、robots.txtではそれぞれ別の行として指定できます
  • 書き換えはすぐには効きません。公式は、システム側の調整にかかる目安を約24時間としています。
名前が似た2つのボットを、取り違えないために名前は似ていますが、持ち帰る先はまったく別なんですよ名前が似た2つのボットを、取り違えないために見分ける行き先で分ける学習の棚か、売り場の棚か書き分ける名前ごとに行を分ける片方だけを開けておける確かめる名乗りと住所の両方を見る自己申告だけで決めない鈴木さん名前は似ていますが、持ち帰る先はまったく別なんですよ
名前が似た2つのボットを、取り違えないために — この記事で身につけるのは、この3つです

この記事では、あるマーケティング部の2人と、専門家の会話をはさみながら進みます。ご自分に近い立場の人の質問から読んでいただいて構いません。

  • 若葉さん(Web担当2年目)— 「そもそも、それって何ですか?」を聞く役
  • 高梨課長(マーケ課長)— 「誰が、どれくらいの手間で回すんですか?」を聞く役
  • 鈴木さん(AIO/SEOの専門家・本誌監修)— 答える役

01OAI-SearchBotとは何者で、AI検索でどんな動きをするんですか?

若葉さん
若葉さんの発言

robots.txtの記事を読んでいたら、GPTBotとOAI-SearchBotという名前が並んで出てきました。どちらも同じOpenAIですよね。まとめて扱ってはいけないんでしょうか。

鈴木さん
鈴木さんの発言

名前は似ていますが、取りに来ている目的がまったく違うんですよ。ここを一緒にしてしまうと、止めたくないものまで止まってしまいます。

OAI-SearchBotは、OpenAIが公開しているクローラーのひとつです。公式ドキュメントは、OAI-SearchBotを「search向けであり、ChatGPT検索機能の検索結果にサイトを表示するために使う」と説明しています(出典: OpenAI公式ドキュメント「Bots」)。

言いかえると、このボットが読み取れたかどうかが、ChatGPTの検索結果に自社サイトが並ぶかどうかに関わります。読みに来られない状態にすると、ChatGPT検索での表示機会を失う可能性があります。

ここで一度、身近なお店の場面に置きかえてみます。同じ商品を扱っていても、裏方の仕事と売り場の仕事は別ものです。

お店にたとえると、役割の違いが見えてきますむずかしい名前は、身近な場面に置きかえて覚えますお店にたとえると、役割の違いが見えてきますむずかしい名前は、身近な場面に置きかえて覚えますお店でいうとサイトでいうと仕入れ資料に商品を書き写す人GPTBot売り場の棚に商品を並べる人OAI-SearchBot棚に無い商品は勧めにくい読まれないページは出にくい入口に貼る「お断り」の紙robots.txt
お店にたとえると、役割の違いが見えてきます — むずかしい名前は、身近な場面に置きかえて覚えます

大事なのは、どちらを断ったかで、手放すものが変わるという点です。学習用のほうを断れば、止まるのは学習への提供です。表示用のほうを断れば、止まるのは検索での露出のほうになります。

02OAI-SearchBotの動きとは、GPTBotとAI検索対策上どこが違うんですか?

公式ドキュメントは、GPTBotについては「生成AIの基盤モデルをより有用で安全にするための学習用コンテンツ収集に使う」と説明しています。OAI-SearchBotの説明にある「検索結果への表示」とは、はっきり書き分けられています。

同じ会社が出しているボットなのに、なぜ分けてあるのか。サイト運営者の判断も、そこで分かれるからです。「学習には使ってほしくないが、検索結果には出たい」という考え方は、実際に成り立ちます。

同じ会社のボットでも、手放すものが違います重なっている部分と、分かれている部分を並べます同じ会社のボットでも、手放すものが違います重なっている部分と、分かれている部分を並べますGPTBotOAI-SearchBot学習の材料を集める/断れば収集を止められる検索での見せ場をつくる/断れば露出の機会を失う共通していること共通していること : robots.txtを守る / 名前で名指しできる / OpenAIが公開している止めたときに何を手放すのかで、判断を分けます。
同じ会社のボットでも、手放すものが違います — 重なっている部分と、分かれている部分を並べます

観点をそろえて並べると、違いがはっきりします。

観点GPTBotOAI-SearchBot
何のために来るか生成AI基盤モデルの学習用データ収集ChatGPT検索結果への表示
学習データへの利用される公式ドキュメントに学習利用の記載なし
検索結果の表示への関与直接は関与しない表示の可否に直接関わる
robots.txtの遵守遵守する遵守する(反映まで約24時間)
User-AgentトークンGPTBotOAI-SearchBot

公式ドキュメントは、GPTBotとOAI-SearchBotをrobots.txt上で個別に制御できると明記しています。ここが、この記事でいちばん覚えて帰っていただきたい点です。

この章のまとめ

2つのボットは、同じ入口から来て、違う場所へ持ち帰ります。だから設定も、まとめてではなく分けて考えます。

03AI検索最適化の前に、OAI-SearchBotのUser-Agentはどう見分けるんですか?

自社に来ているのがどのボットかは、アクセスログのUser-Agent文字列で見分けます。OAI-SearchBotのUser-Agent文字列は、公式ドキュメントに次の形式で例示されています。

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4

長い文字列ですが、目印になるのは末尾の OAI-SearchBot という識別トークンだけです。前半のブラウザ名の部分は、判定には使いません。

判定を「名前」で書くか「文字列ごと」で書くか同じログを見ていても、拾えるものが変わります判定を「名前」で書くか「文字列ごと」で書くか同じログを見ていても、拾えるものが変わります文字列ごと照合する前半のブラウザ名まで含めて突き合わせる版が上がった日から一致しなくなる外れたこと自体に気づけない名前だけで拾う識別トークンを含むかだけを見る版が上がっても拾い続ける数の増減が実態を映す
判定を「名前」で書くか「文字列ごと」で書くか — 同じログを見ていても、拾えるものが変わります

気をつけたいのが、/1.4 のような版番号です。この番号は変わる可能性があります。 文字列を丸ごと一致で判定する仕組みを組むと、番号が変わった日から検出が静かに止まります。ログの見た目は変わらないのに、集計だけがゼロになる、という形で表れます。

04ログに来たOAI-SearchBotが本物か、AI対策としてどう確かめますか?

高梨課長
高梨課長の発言

ログにOAI-SearchBotという文字が並んでいました。これは本物と考えていいんでしょうか。

鈴木さん
鈴木さんの発言

名乗りだけでは決められません。 User-Agentは、こちらから見れば自己申告なんです。誰でも同じ文字列を名乗れます。

高梨課長
高梨課長の発言

では、どこを見れば。

鈴木さん
鈴木さんの発言

住所にあたるIPアドレスです。OpenAIは公開の一覧を出しているので、そこと突き合わせます。

OAI-SearchBotの公開IPアドレス一覧は、OpenAI公式が https://openai.com/searchbot.json で公開しています。ログに残ったアクセス元IPがこの一覧の範囲に入っているかを見れば、名乗りだけの相手と区別できます。

名乗りで言えること、住所で言えること同じアクセスでも、どこまで言い切れるかが変わります名乗りで言えること、住所で言えること同じアクセスでも、どこまで言い切れるかが変わります名乗りだけを見るどのボットのつもりかは分かる誰でも同じ名前を書ける本物かどうかまでは言えないここで止めると判断を誤ります住所まで照合するどこから来たのかが分かる公開一覧と突き合わせられる別物なら切り分けられるここまでで、はじめて裏づけになります
名乗りで言えること、住所で言えること — 同じアクセスでも、どこまで言い切れるかが変わります

名乗りと住所は、確かめられることが違います。名乗りは「どのボットのつもりか」しか教えてくれません。住所まで見て、はじめて「OpenAIから来たか」が言えます。

この順で突き合わせます

  1. アクセスログを開く

    User-Agentに OAI-SearchBot を含む行を抜き出します

  2. アクセス元を控える

    抜き出した行のIPアドレスを記録します

  3. 公開一覧と照合する

    searchbot.json に記載されたIPレンジ内かを確認します

  4. 範囲外なら別物として扱う

    一致しない場合は、名乗っているだけのアクセスを疑います

この章のまとめ

User-Agentは自己申告、IPアドレスは裏づけ。片方だけで判断しないのが、AI検索最適化の現場の基本です。

05学習は断ってAI検索には出たい。OAI-SearchBotのrobots.txtはどう書きますか?

結論から言うと、User-agent行をボットごとに分けて書けば、片方の設定にもう片方を巻き込みません。学習は断り、検索での表示は残したい場合の書き方は次のとおりです。

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

逆に、ChatGPT検索での表示そのものを望まない場合は、OAI-SearchBotに対してDisallowを書きます。

User-agent: OAI-SearchBot
Disallow: /
2つの行の書き方で、立ち位置が4つに分かれます自社がどこにいたいかを、先に決めてから書きます2つの行の書き方で、立ち位置が4つに分かれます自社がどこにいたいかを、先に決めてから書きますどちらも断る学習への提供も、検索での露出も手放します学習だけ断る検索での露出は残ります露出だけ断る学習には使われることがありますどちらも受け入れる何も書いていないときに近い状態です上=GPTBotを拒否 / 下=許可左=OAI-SearchBotを拒否 / 右=許可
2つの行の書き方で、立ち位置が4つに分かれます — 自社がどこにいたいかを、先に決めてから書きます

組み合わせは、大きく分けて3つの立ち位置になります。学習だけ断る表示だけ断るどちらも断る。3つ目を選んだつもりがないのに3つ目になっている、というのが、次の章で扱う事故です。

なお、robots.txtに何も書かない場合はどうなるか。明示的な指定がないとき、一般的にクロールは許可された状態として扱われます。「書いていない」は「断っている」ではありません。

06AIボットをOAI-SearchBotも含めて一括で拒否すると、AI検索対策として何が起きるんですか?

若葉さん
若葉さんの発言

「AIはお断り」とまとめて書いてあるサイトを見たことがあります。あれは、何が起きている状態なんでしょうか。

鈴木さん
鈴木さんの発言

学習を断ったつもりで、見つけてもらう入口のほうまで閉めていることがあります。書いた側に自覚がないぶん、原因に結びつきにくいんですよ。

いちばん多い事故が、「AI」という文字を手がかりに、まとめて断ってしまう書き方です。

「AIはお断り」と書く前に、3つだけ見直す断りたかったものと、実際に断ったものはずれます「AIはお断り」と書く前に、3つだけ見直す断りたかったものと、実際に断ったものはずれます「AI」という文字を手がかりにまとめて断る同じ文字でも行き先が違うので、まとめると読み違えます他社のrobots.txtをそのまま写してくる他社の判断が、自社の判断とは限りません残したいものを先に決めてから書く断る範囲が、あとから広がっていきません鈴木さん「全部お断り」は、「検索で見つからなくていい」と書いているのと同じなんです
「AIはお断り」と書く前に、3つだけ見直す — 断りたかったものと、実際に断ったものはずれます

この書き方だと、学習用のGPTBotと一緒にOAI-SearchBotまで断ることになります。結果として、ChatGPT検索での表示機会まで失う可能性があります。断りたかったのは学習だけなのに、届かなくなるのは検索のほう、という取り違えです。

同じ考え方は、GoogleのAI関連クローラー Google-Extended にも当てはまります。ボット名を確かめずに「AI」という文字列だけで一括拒否する設定は、意図しない露出機会の喪失につながりやすい。これはOpenAI以外のクローラーにも共通する注意点です。

この章のまとめ

断る対象は、名前で名指しします。「AIっぽいもの」というくくりで書くと、残したいものまで一緒に外れます。

07OAI-SearchBotのrobots.txtを直したのに動かない。AI検索最適化の反映はいつですか?

若葉さん
若葉さんの発言

設定を直してすぐログを見たんですが、前と変わっていないように見えます。書き方を間違えたんでしょうか。

鈴木さん
鈴木さんの発言

いえ、待ち時間があります。公式ドキュメントは、システム側の調整に約24時間ほどかかると書いています。直した直後に判断すると、間違っていないものを間違いだと思ってしまいますよ。

robots.txtの変更は、書いた瞬間に切り替わるわけではありません。公式は目安として「~24 hours」という表現を使っています。

書き換えた瞬間から、判断できるまでの距離見るタイミングを決めておくと、切り分けが楽になります書き換えた瞬間から、判断できるまでの距離見るタイミングを決めておくと、切り分けが楽になります書き換えた直後まだ前の設定の結果ここで見ても、判断の材料になりません約24時間公式が示す調整の目安システム側の調整にかかる時間として案内されていますそのあとログの様子で見る書き換えた時刻を控えておくと迷いません
書き換えた瞬間から、判断できるまでの距離 — 見るタイミングを決めておくと、切り分けが楽になります

この待ち時間を知らないと、遠回りが起きます。直後に見て、変化がないので設定を疑い、また書き換える。重ねるほど、どの設定の結果を見ているのかが分からなくなります。

やることは単純です。書き換えたら、その場では判断しない。目安の時間が過ぎてから、ログの様子を見る。それだけで、原因の切り分けがずいぶん楽になります。

08OAI-SearchBotのLLMO運用で、見落としやすいのはどこですか?

LLMOやAIOと呼ばれる取り組みの中で、クローラーの制御は地味ですが土台にあたる部分です。ここでの取り違えは、上に何を積んでも効きません。

取り違えが起きるのは、いつも同じ3か所です書き間違いではなく、確かめ方でつまずきます取り違えが起きるのは、いつも同じ3か所です書き間違いではなく、確かめ方でつまずきます名前片方を止めれば両方止まる実際には別々に効きます時間直したのに効いていない調整の待ち時間が要ります版番号番号ごと一致で判定する番号が変われば外れます
取り違えが起きるのは、いつも同じ3か所です — 書き間違いではなく、確かめ方でつまずきます

現場で繰り返し起きるのは、次の3つです。

1つめ、名前で取り違える。 GPTBotとOAI-SearchBotは名前が似ているため、片方をDisallowにすればもう片方も止まると誤解されがちです。公式ドキュメントは両者を独立した設定として扱うと明記しています。

2つめ、時間で取り違える。 反映までの待ち時間を知らずに、変更直後のログだけを見て「設定ミス」と判断してしまうケースです。

3つめ、番号で取り違える。 User-Agentの版番号まで含めて判定ロジックを組んでしまうと、番号が変わった時点で検出が外れます。トークン名の部分で判定するほうが安定します。

09AI検索対策として、OAI-SearchBotの設定は誰がどう回すんですか?

高梨課長
高梨課長の発言

仕組みは分かりました。ただ、これは一度書いて終わりですか。それとも見続けるものですか。専任は置けません。

鈴木さん
鈴木さんの発言

一度書いて終わり、にはしにくい部分があります。公開されているIPの範囲は、今後変わる可能性があるからです。ただ、毎日見るものでもありません。

サイト側でできることは、robots.txtでの許可・拒否と、アクセスログでの実測です。この2つを土台に置いたうえで、公開IP一覧を定期的に見に行く形にすると、無理なく続けられます。

続けられる運用は、3層で積み上がっています下から順に置くと、専任がいなくても回ります続けられる運用は、3層で積み上がっています下から順に置くと、専任がいなくても回ります公開されている一覧を定期的に見に行く範囲は変わることがありますアクセスログで実際の来訪を見る書いたとおりに動いているかは、ログでしか分かりません断るものと残すものを書き分けるここが決まらないと、上の2つが意味を持ちません
続けられる運用は、3層で積み上がっています — 下から順に置くと、専任がいなくても回ります

サーバー側でOAI-SearchBotのアクセスだけを止めたい場合は、robots.txtでのDisallowに加えて、公開IPアドレス一覧をもとにアクセス制御をかける方法もあります。ただしIPレンジは変わる可能性があるため、searchbot.json を定期的に確認し、設定を追随させる運用が必要になります。

「どれくらい来るか」はこちらで決められないという前提に立ち、ログでの実測を手元に持っておくのが現実的です。

この章のまとめ

専任は要りません。書き分けを決める、ログで見る、一覧を定期的に見に行く。この3層で回せます。

10よくある質問

OAI-SearchBotを拒否すると、GPTBotの学習収集も止まりますか?

止まりません。公式ドキュメントでは両者は独立して制御できると説明されています。OAI-SearchBotをDisallowにしても、GPTBotの設定には影響しません。逆も同じです。

OAI-SearchBotはrobots.txtを守りますか?

公式ドキュメントの記述にもとづくと、OAI-SearchBotはクローラーとしてrobots.txtを遵守します。ユーザーの操作を起点にアクセスするChatGPT-Userとは、この点が異なります。3つのボットの並びを一度に見たい方は、姉妹記事のAIOM-009をご覧ください。

robots.txtに何も書かない場合、OAI-SearchBotはどう扱われますか?

明示的な指定がない場合、一般的にクロールは許可された状態として扱われます。ChatGPT検索での表示を望まない場合は、明示的にDisallowを書く必要があります。「書かなければ断ったことになる」わけではありません。

OAI-SearchBotのクロール頻度はどのくらいですか?

公式ドキュメントには、クロール頻度の具体的な記載が見当たりません。頻度を指定する設定項目も、確認できた範囲では見つかりませんでした。サイト側でできるのは、robots.txtでの許可・拒否と、アクセスログでの実測です。

サーバー側でOAI-SearchBotのアクセスだけを止められますか?

robots.txtでのDisallowに加えて、公開IPアドレス一覧をもとにサーバー側でアクセス制御をかける方法もあります。ただしIPレンジは今後変わる可能性があるため、searchbot.json を定期的に確認して設定を追随させる運用が前提になります。

11まとめ|今日この順で確かめる3つ

OAI-SearchBotは、ChatGPT検索の表示のために巡回するクローラーであり、モデル学習用のGPTBotとは目的が異なります。robots.txtでは両者を個別に設定でき、学習としての収集を断りながら検索での表示は残す、という運用もできます。

そのうえで、この記事でいちばん伝えたかったのは、書く作業より確かめる作業のほうに落とし穴があるということでした。

今日この順で確かめます

  1. robots.txtを開く

    OAI-SearchBotとGPTBotのUser-agent行が、意図どおり分かれているかを見ます

  2. ログの判定を見直す

    版番号まで含めた一致で判定していないか、トークン名で拾えているかを確かめます

  3. 見る時刻を決める

    書き換えた時刻を記録し、目安の時間が過ぎてからログを見ます

AI検索では、こう聞かれています

  • OAI-SearchBotって何ですか?GPTBotと何が違うんですか?

    「OAI-SearchBotとは何者で、AI検索でどんな動きをするんですか?」の章と、続く比較の章で、たとえ話とベン図を使って説明しています

  • 学習には使われたくないけれど、ChatGPTの検索結果には出したい。そんな設定はできますか?

    「学習は断ってAI検索には出たい。OAI-SearchBotのrobots.txtはどう書きますか?」の章に、書き方と組み合わせの図があります

  • robots.txtを直したのに、ログの様子が変わりません。設定を間違えたのでしょうか?

    「OAI-SearchBotのrobots.txtを直したのに動かない。AI検索最適化の反映はいつですか?」の章で、待ち時間の考え方を説明しています

  • アクセスログにいるOAI-SearchBotが本物かどうか、どうやって見分けますか?

    「ログに来たOAI-SearchBotが本物か、AI対策としてどう確かめますか?」の章に、突き合わせの手順があります

次に読むなら、この記事です