【ITニュース解説】Two thirds of sites blocking GPTBot are also blocking the crawler that brings them traffic
2026年11月07日に「Dev.to」が公開したITニュース「Two thirds of sites blocking GPTBot are also blocking the crawler that brings them traffic」について初心者にもわかりやすく解説しています。
ITニュース概要
多くのサイトが、AI学習用クローラーをブロックしようとして、ChatGPTからの訪問者をもたらすクローラーも誤ってブロックしている。robots.txtの誤解が原因で、気づかないうちに重要なトラフィック機会を失っている。正確な設定でアクセスを制御すべきだ。
ITニュース解説
ウェブサイトを運営する上で、検索エンジンからのアクセス(トラフィック)は非常に重要である。そのアクセスをコントロールするために、「robots.txt」というファイルが存在する。このファイルは、ウェブサイトを訪れるクローラー(検索エンジンのロボット)に対して、どのページを訪問してもよいか、どのページにアクセスしてはならないかを指示する役割を持つ。しかし、最近ではChatGPTのような生成AIの普及により、クローラーの種類が増え、robots.txtの管理が複雑化している。多くのウェブサイトが、AIモデルの訓練を目的としたクローラーをブロックしようとして、意図せずウェブサイトへのトラフィックをもたらす重要なクローラーまでブロックしてしまっている現状が明らかになった。
今回の調査では、主に3種類のAI関連クローラーとその役割に注目している。一つ目は「GPTBot」である。これは、ChatGPTのような大規模言語モデル(LLM)の訓練データを収集するためにウェブサイトのページをクロールする。GPTBotをブロックしても、サイトが検索結果に表示されるかどうかには直接的な影響はないため、AIモデルの訓練にコンテンツを使われたくないと考えるサイト運営者にとって、これをブロックするのは正当な判断と言える。二つ目は「OAI-SearchBot」である。これは、ChatGPTが質問に答える際に参照する「インデックス(索引)」を構築するためのクローラーである。このクローラーをブロックすると、ChatGPTの回答にウェブサイトの情報が使われなくなり、結果としてユーザーがサイトを見つける機会が失われる可能性がある。三つ目は「ChatGPT-User」である。これは、ユーザーがChatGPTで質問している最中に、リアルタイムで関連するページを取得するクローラーである。ChatGPTが質問の回答でウェブサイトを引用したり、直接リンクを張ったりする可能性があり、これをブロックすると、新たなアクセス元からのトラフィックを逃すことになる。
今回の調査は、世界中の高ランクウェブサイトにおけるrobots.txtの設定状況を把握することを目的とした。具体的には、Trancoトップ1Mリストから、.com、.de、.fr、.es、.it、.jp、.nlの7つの主要市場からそれぞれ上位100サイトを抽出し、合計700サイトのrobots.txtファイルを分析した。2023年11月7日の時点で、528サイトが有効なrobots.txtを提供しており、これらのサイトのデータが分析対象となった。
調査の結果、いくつかの重要な事実が判明した。まず、全サイトの30.5%がGPTBotをブロックしていた。これは、AIの訓練にコンテンツを使われたくないという意図の表れであると考えられる。しかし、注目すべきは、OAI-SearchBotをブロックしているサイトが16.5%、ChatGPT-Userをブロックしているサイトが20.3%存在することである。さらに、これらのトラフィックをもたらす可能性のあるAIクローラーの少なくとも一つをブロックしているサイトは全体の20.5%に及んだ。そして最も驚くべき結果は、GPTBotをブロックしている161サイトのうち、実に66.5%ものサイトが、同時にウェブサイトに訪問者をもたらす可能性のあるAIクローラーもブロックしているという事実である。これは、AIモデルの訓練を拒否するという意図が、不注意にも新しい形の検索からのアクセスを拒否することにつながっていることを示唆している。また、従来のGooglebotは受け入れているにもかかわらず、AIクローラーによるトラフィックをブロックしているサイトが17.2%あった。これは、従来の検索からのアクセスは維持しつつも、急速に成長しているAIを介した検索からのアクセス機会を自ら放棄している状況と言える。ただし、この調査は高ランクのサイトに限定されており、小規模なウェブサイトの状況とは異なる可能性がある点には留意が必要である。
robots.txtファイルは見た目以上に複雑な解釈ルールを持っており、多くの実装で誤解されやすい点がいくつか存在する。システムエンジニアを目指す上では、これらの正確な理解が不可欠である。一つ目の落とし穴は、「グループ選択は完全一致である」という点である。例えば、「User-agent: Google-Extended」という記述は、特定のGoogle製品のクローラーを指し、「User-agent: Googlebot」という一般的なGoogle検索クローラーのルールとは関係がない。ある特定のクローラーをブロックする設定が、意図せず別の類似クローラーにまで適用されると誤解されがちだが、実際は指定されたエージェント名と完全に一致するグループのみが適用される。
二つ目は、「アスタリスク(*)はフォールバックとして機能する」という点である。robots.txtファイル内で特定のUser-agent名が指定されている場合、そこに書かれたルールが優先される。例えば、「User-agent: *」という記述で全てのクローラーに適用される一般的なルールが設定されていても、もし「User-agent: GPTBot」という特定のグループが存在すれば、GPTBotはその特定のグループのルールに従い、「User-agent: *」のルールは完全に無視される。この解釈を誤ると、意図せず特定のクローラーがすべてのページにアクセスできてしまったり、逆に全てのページへのアクセスがブロックされてしまったりする可能性がある。
三つ目は、「最長マッチが優先され、AllowディレクティブがDisallowディレクティブに勝る」というルールである。「Disallow: /blog/」と書かれていると「/blog/」以下の全てのパスがブロックされるように見えるが、もし「Allow: /blog/public/」という記述があれば、「/blog/public/」以下のパスはブロックされずにアクセスが許可される。これは、より具体的なパスのルールが、より広い範囲のルールよりも優先されるという原則に基づく。この優先順位を理解していなければ、特定のコンテンツだけを公開したいという意図が正しく伝わらない可能性がある。
四つ目は、「空のDisallowディレクティブはすべてを許可する」という点である。「Disallow:」という記述は、そのUser-agentグループに対して、いかなるパスもブロックしない、つまり「すべてのパスをクロールしてもよい」という明確な許可の意思表示である。これを「何も指定されていないから、全てをブロックする」と誤解したり、空の指定を0文字のパスと解釈して全てのパスがマッチしてしまうと、意図とは全く逆の結果、つまり全てのページへのアクセスを拒否してしまうことになりかねない。
このような複雑なrobots.txtの解釈を助けるために、今回の記事の著者はオープンソースのチェッカーツールを開発し公開している。このツールは「npx github:orenhacham-lab/ai-crawler-access nytimes.com」のようにコマンドラインで簡単に実行でき、指定したウェブサイトのrobots.txtを解析して、どのクローラーがどの理由でブロックされているかを具体的に表示してくれる。例えば、「BLOCKED OAI-SearchBot OpenAI · search ← disallow: / (line 266, agent group)」のように、ブロックされているクローラーの名前、どの行のどのルールが適用されたかまで詳細に示されるため、サイト運営者がrobots.txtの設定ミスを発見し、修正するのに大いに役立つ。
ウェブサイトのトラフィック獲得戦略は、従来の検索エンジンだけでなく、AIを介した新しい検索体験にまで広がりを見せている。意図しないrobots.txtの設定ミスが、これらの新しいアクセス機会を逃すことにつながる可能性があるため、適切なrobots.txtの記述と、その正確な解釈が、今後のウェブサイト運営においてはますます重要になる。システムエンジニアを目指す者としては、これらの技術的な側面を深く理解し、正確に適用できる知識とスキルを身につけることが求められる。