「うちのサイトに、AIのクローラーは来ているんでしょうか」。そう聞かれて、GA4を開いてみた。それらしい数字は、どこにも見当たらない。
ここで「来ていない」と結論を出してしまうと、実はかなり大きく外します。AIクローラーの多くは、GA4に記録が残らない仕組みで動いているからです。訪問の痕跡は、別の場所に残っています。サーバーログです。
この記事は、AIクローラーの訪問を自分の目で確かめたい方に向けて書きました。専門用語は出てきたその場で言い換えます。ログから抜き出すコマンド、名乗りが本物かを確かめる検証、そして多くのサイトがつまずく落とし穴まで、順番に置いていきます。
こんなふうに調べていませんか
- GA4を見てもAIクローラーの記録がなく、来ているのかどうか判断できない
- 「サーバーログ AIクローラー 解析」で検索して、実際に打つコマンドを探している
- GPTBotを名乗るアクセスがあるが、本物かどうかの確かめ方が分からない
この記事を読み終えたときに手に入るもの
- GA4とサーバーログで見える範囲の違いを、社内で説明できるようになります
- ログからAIクローラーだけを抜き出す手順が分かります
- なりすましを見抜く検証を、着手の順番つきで組み立てられます
結論30秒でわかる、この記事の結論
- AIクローラーの多くはJavaScriptを実行しません。 そのためGA4のようなJavaScriptを前提にした解析ツールでは、その訪問を検知できません。
- サーバーログはリクエストを受けた時点の生の記録なので、AIクローラーの訪問もそのまま含まれます。
- ただしUser-Agentは誰でも自由に名乗れます。 各社が公開しているIPアドレスの範囲との照合が、実務での基本になります。
この記事では、あるマーケティング部の会話をはさみながら進めます。若葉さんはWeb担当で仕組みから知りたい立場、高梨課長は運用の手間と担当者を気にする立場、鈴木さんはAIO/SEOの専門家で答える役です。ご自身に近い立場の質問から読んでいただいて構いません。
01AI検索対策なのに、なぜサーバーログの解析からAIクローラーを見るんですか?
若葉さんGA4を見ても、AIのクローラーらしきものが見当たらないんです。まだ来ていない、ということでしょうか。
鈴木さんいえ、来ていても映らないということが起こります。GA4は、ページの中で動く小さなプログラムが起動して、はじめて記録が残る仕組みなんですよ。
若葉さんそのプログラムが動かないと、来たこと自体が残らない…?
鈴木さんはい。そして多くのAIクローラーは、そのプログラムを動かしません。だから別の場所を見にいきます。
サイトへの訪問を記録する場所は、1つではありません。GA4のようなJavaScript(ページの中で動く小さなプログラム)を前提にした計測と、サーバーがリクエストを受けた時点で自動的に書く記録では、そもそも残る条件が違います。
たとえるなら、建物の入口の記録と、館内で配ったアンケートの違いです。アンケートに答えた人しか名簿に残らないなら、答えずに通った人は「来ていない」ことになってしまいます。
この章のまとめ
AIクローラーの訪問は、GA4ではなくサーバーログに残ります。まず、見にいく場所を変えるところから始めます。
02そもそもサーバーログ解析とは、AI検索最適化では何を見る作業ですか?
サーバーログ解析とは、サーバーが記録したアクセス記録からAIクローラーの訪問状況を抽出・検証する手法です。
サーバーログには、HTTPリクエスト(ブラウザやプログラムがページを取りに来るときのやり取り)の生データが並びます。記録されるのは、リクエスト元のIPアドレス、User-Agent(名乗り)、リクエストされたURL、タイムスタンプ、レスポンスコードなどです。
一方で、手間はかかります。Apache・Nginxなど標準的なWebサーバーのログは、テキスト形式で1行1リクエストずつ記録される仕様です。AIクローラーの訪問だけを取り出すには、User-Agentでの絞り込みが要ります。
この章のまとめ
サーバーログは、訪問の生の記録です。漏れは少ない代わりに、そのままでは読めません。絞り込みの作業が要ります。
03AIクローラーが来ているのに、AI検索の計測ツールに出てこないのはなぜですか?
GA4は基本的に、JavaScriptのタグが起動することを前提にした計測ツールです。GPTBot・ClaudeBot・PerplexityBotなど、AI企業が運用する多くのクローラーは、そのJavaScriptを実行しません。
そのため、AIクローラーがページにアクセスしても、GA4のタグ自体が起動しません。起動しなければ、訪問の記録も残らない。ここまでが一続きです。
Search Consoleの生成AIに関するレポートも、事情は似ています。こちらはGoogle自身が把握しているインプレッションのデータに限られます。GPTBotやClaudeBotなど、他社クローラーの直接的な訪問状況までは反映されません。
この章のまとめ
GA4もSearch Consoleも、それぞれ見える範囲が決まっています。AIクローラーの訪問そのものは、別の情報源が要ります。
04サーバーログからAIクローラーを抜き出す解析は、AI検索対策としてどう進めるんですか?
高梨課長専用のツールを買わないと始められない話でしょうか。予算をすぐには取れません。
鈴木さんいえ、まずはコマンドだけで始められます。 手を動かして中身を見てから、続け方を決めるほうが失敗が少ないと思います。
基本の流れは、次の4ステップです。
- ログファイルを取得する — Webサーバー(Apache・Nginx)、またはCDN(Cloudflare等)のアクセスログをエクスポートします
- User-Agentで絞り込む — GPTBot・ClaudeBot・PerplexityBotなど、既知のAIクローラー名を含む行を抜き出します
- リクエスト先URL・頻度を集計する — どのページに、どれくらいの頻度で来ているかを数えます
- IPアドレスで真贋を検証する — 抜き出した行のIPアドレスが、各社の公開IPリストに含まれるかを確かめます
このうち手順2と手順3は、コマンド1行ずつで実行できます。Apache・Nginxの標準的なアクセスログ(access.log)を対象にした例が、次のとおりです。
# 手順2: 主要AIクローラーの行だけを抜き出す
grep -E 'GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot|Perplexity-User' access.log > ai-crawlers.log
# 手順3: クローラー別のアクセス件数を数える
grep -oE 'GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot|Perplexity-User' ai-crawlers.log | sort | uniq -c | sort -rn
# 手順3: どのURLに何回来ているかを上位20件まで集計する(ログ形式が変わる場合は列番号を調整)
awk '{print $7}' ai-crawlers.log | sort | uniq -c | sort -rn | head -20awkの$7は、Apacheの標準的なcombinedログ形式でリクエストURLにあたる列です。ログ形式を独自に変更している場合は、1行を目で見てから列番号を合わせてください。
この章のまとめ
抜き出しはコマンドで済みます。ただし、この段階で分かるのは「そう名乗るアクセスがあった」ところまでです。
05主要なAIクローラーの名前は、AI検索最適化としてどこまで押さえればいいですか?
絞り込みに使う名前と、真贋の確認に使うIPアドレスの公開先は、次のとおりです。
| AIクローラー | User-Agent(抜粋) | IPアドレス公開エンドポイント |
|---|---|---|
| GPTBot(OpenAI) | GPTBot/1.4 | https://openai.com/gptbot.json |
| OAI-SearchBot(OpenAI) | OAI-SearchBot/1.4 | https://openai.com/searchbot.json |
| ClaudeBot(Anthropic) | ClaudeBot | https://claude.com/crawling/bots.json |
| PerplexityBot(Perplexity) | PerplexityBot/1.0 | https://www.perplexity.com/perplexitybot.json |
| Perplexity-User(Perplexity) | Perplexity-User/1.0 | https://www.perplexity.com/perplexity-user.json |
OpenAIのように、1社で複数のクローラーを公開しているケースがあります。それぞれの役割の違いは、別記事で比べています。
大事なのは、この表を一度写して終わりにしないことです。これらのJSONエンドポイントは各社が随時更新しています。定期的に最新のIP範囲を取得し直す運用が要ります。
この章のまとめ
クローラーの名前とIPの公開先は、更新される前提で扱います。一度きりの写しではなく、取り直す運用にします。
06AIクローラーを名乗るだけのボットを、AI対策としてどう見分けるんですか?
若葉さんここまでで、GPTBotが来ていることは分かりました。これって、本物ですよね?
鈴木さんそこが、この記事のいちばん大事なところです。User-Agentは、誰でも自由に名乗れます。 名乗りだけでは、本物かどうかは判定できないんですよ。
若葉さんでは、どうやって確かめるんでしょう。
鈴木さん名前ではなく、どこから来たかを見ます。IPアドレスのほうです。
User-Agentは自己申告の文字列にすぎません。悪意のあるボットが、人気のAIクローラーを名乗ってアクセスすることもあり得ます。偽装は技術的に容易です。
Googleは自社のクローラーについて、逆引き・正引きDNSによる検証手順を公式に案内しています。同じ考え方は、他社のAIクローラーの検証にも応用できます。手順は2段階です。
- 逆引きDNS — ログに記録されたIPアドレスに対して
hostコマンドで逆引きを行い、ドメイン名を取得します - 正引きDNS — 取得したドメイン名を
hostコマンドで正引きし、得られたIPアドレスが元のログのIPと一致するかを確かめます
実際に打つコマンドは2行です。1行目で得たドメイン名を、2行目にそのまま渡します(コマンド例はGoogle公式ドキュメントの記載に沿ったものです)。
host 66.249.66.1 # 逆引き: IPアドレス → ドメイン名
host crawl-66-249-66-1.googlebot.com # 正引き: ドメイン名 → IPアドレス2行目の結果が1行目に入力したIPアドレスと一致すれば本物、一致しなければなりすましと判定します。Googlebotの場合は、逆引きの結果がgooglebot.com・google.com・googleusercontent.comのいずれかであることが条件です。GoogleもIP範囲のリストを公開しており、DNS検証の代わりにIPリストとの照合で判定する方法を併記しています。
この章のまとめ
名乗りは入口にすぎません。どこから来たかを確かめて、はじめて「本物のAIクローラーが来た」と言えます。
07ClaudeBotやPerplexityBotのようなAIクローラーは、AI検索対策でどう検証しますか?
事業者によって、案内されている確かめ方に違いがあります。DNSをたどる方法のほかに、公開されているIPリストと照合するだけの、より簡便な方法もあります。
ClaudeBotの場合、Anthropicは公開IPリストとの照合という方法を案内しています。同社は、クローラーの送信元IPアドレスがこのリストに含まれていれば、そのクローラーはAnthropicから来ていることを示す、と説明しています。
Perplexityも同様にIPリストを公開したうえで、公式JSONエンドポイントの最新のIP範囲を常に使い、これを信頼できる情報源とすること、と案内しています。
自動化する場合は、これらのIPリストを定期的に取得し、ログ解析のルールへ反映させる運用が実務的です。
この章のまとめ
検証のやり方は1つではありません。IPリストとの照合で済むなら、そのほうが運用に乗せやすい選択です。
08CDNの下では、AI検索対策のサーバーログ解析はどこでつまずくんですか?
ここで多くのサイトがつまずきます。CDNやリバースプロキシ(サイトの前に立って通信を中継する仕組み)を経由している場合、オリジンサーバーのログに記録されるのは、クローラーのIPアドレスではないことがあるためです。
記録されるのは、CDN側のIPアドレスです。この状態で公開IPリストと照合すると、どのクローラーも「なりすまし」と判定されてしまいます。検証の手順は正しいのに、答えだけが全部ひっくり返る。 いちばん気づきにくい形の失敗です。
対処は2つあります。
- CDN側が提供するログを一次データとして使う — ログ配信の機能やダッシュボードから、CDNが受け取った時点の記録を取ります
- 転送元IPを伝えるヘッダーを、ログ形式に含める — オリジン側でも、本来のリクエスト元IPを記録できるようにします
この章のまとめ
CDN配下かどうかの確認が、着手の順番としては最初です。1件だけ手で見れば、その日のうちに分かります。
09ログが増えたとき、AIクローラーの解析はAI検索最適化としてどう続けますか?
高梨課長一度やってみるのは分かりました。これを続けるとなると、どこかで手作業では回らなくなりますよね。
鈴木さんはい。判断の軸はログの量です。量と体制で、向いているやり方が変わります。
一度手を動かしたうえで、続け方を決めます。目安は次のとおりです。
| ログの規模・体制 | 向いている方式 | 理由 |
|---|---|---|
| 月数万リクエスト程度・担当者1名 | 前の章のコマンド+スプレッドシート集計 | 追加コストがかからず、数字の意味を担当者が把握できる |
| 月数百万リクエスト以上 | ログ解析ツールまたはBigQuery等への取り込み | コマンドでは処理時間とメモリが現実的でなくなる |
| CDN配下で複数オリジンを運用 | CDN側のログ配信機能を一次データにする | オリジン側のログではリクエスト元IPを追えない場合がある |
ツールを検討するときは、次の3点を確かめてください。①User-Agentのフィルタを自分で追加できるか、②IPアドレスの検証を自動化できるか、③CDN経由のログを取り込めるか。
とくに①が効きます。新しいAIクローラーは継続的に登場するため、運用担当者が自力で名前を足せない製品は、半年後には使えなくなる可能性があります。
この章のまとめ
続け方はログの量で決まります。ツールを選ぶなら、名前を自分で足せるかどうかを最初に見てください。
10AIクローラーの記録を残す運用は、AI対策として何を決めておくんですか?
運用として回すために、決めておくことがあります。
- サーバーまたはCDNから、アクセスログを定期的に取得できる状態にしている
- ログに記録されているIPが、CDNのものかリクエスト元のものかを確認した
- 主要なAIクローラーのUser-Agent文字列で、ログを絞り込める
- 各社が公開するIPアドレスのリストを、定期的に取得し直す運用がある
- 逆引き・正引きDNSでの検証手順を、最低1回は実施したことがある
- User-Agentだけでなく、IPアドレスでの検証も組み合わせている
- ログ解析の結果を、GA4・Search Consoleのデータと区別して記録している
最後の項目が、意外と抜けます。ログで分かるのは「クローラーが来た」ことであって、「人が来た」ことではありません。
この章のまとめ
運用に乗せる鍵は、取り直しと区別の2つです。IPリストは取り直し、ログの数字は他の計測と混ぜません。
11LLMOの数字として、AIクローラーのサーバーログ解析はどこまで言えますか?
高梨課長数字が出たら、社内には何と報告するのがよいでしょうか。
鈴木さん「訪問があった」までです。 そこから先の成果につながっているかどうかは、この記録だけでは分かりません。そこは正直に線を引いておくほうが、後で困りません。
同じ形の誤りが、繰り返し起きています。先に挙げておきます。
User-Agentだけで本物と判定してしまう。 偽装は技術的に容易です。重要な判断をするときは、IPアドレスでの検証もあわせて行ってください。
IPアドレスのリストを、一度取得したきり更新しない。 各社のIP範囲は随時更新されるため、古いリストのままでは、正当なクローラーを誤って除外してしまう可能性があります。
サーバーログの存在自体を忘れてしまう。 GA4やSearch Consoleの数字だけを見て「AI経由のアクセスがない」と判断してしまう例があります。JavaScriptを実行しないクローラーは、そもそもGA4に記録されない構造です。
報告できる範囲にも、線を引いておきます。サーバーログで分かるのは、AIクローラーがアクセスしたという事実です。実際の成果につながっているかどうかは、別記事で扱った指標とあわせて確かめる必要があります。
この章のまとめ
ログが答えるのは「来たかどうか」までです。そこから先は、別の指標の仕事だと分けて考えます。
12よくある質問
サーバーログは、どれくらいの期間保存すればよいですか?
公式に推奨される保存期間の基準は確認できていません。ただし前年同月比を出すには13か月分が必要になります。生ログの保存が容量的に難しい場合でも、クローラー別・URL別の月次集計値だけは13か月以上残す運用をおすすめします。
User-Agentを偽装したアクセスは、どのくらい起きているんですか?
発生頻度についての公表データは確認できていません。ただし技術的に偽装が容易である以上、重要な意思決定にログの数字を使う場合は、IPアドレスの検証を省略しないことをおすすめします。
サーバーログ解析だけで、AI経由の成果まで把握できますか?
できません。サーバーログで分かるのは、AIクローラーがアクセスしたという事実のみです。実際の成果につながっているかどうかは、指標の設計を扱った別記事の内容とあわせて確認する必要があります。
ログ解析ツールを選ぶときは、何を見ればよいですか?
User-Agentのフィルタを自分で追加できるか、IPアドレスの検証を自動化できるか、CDN経由のログを取り込めるかの3点です。とくに1つ目は、新しいクローラーが登場したときに自力で対応できるかを左右します。
13まとめ|今日やる3つのこと
AIクローラーの訪問は、GA4ではなくサーバーログに残ります。専用のツールを買う前に、コマンドだけで着手できます。ただしUser-Agentでの抽出は入口にすぎず、IPアドレスでの検証を省略すると、なりすましを含んだ数字で意思決定することになります。
着手の順序としては、CDN配下かどうかの確認を最初に置いてください。ここを飛ばすと、すべて「なりすまし」と判定される結果になります。この1点さえ先に潰しておけば、残りの手順はこの記事のコマンドをそのまま流用できます。
もう一度、今日やる3つ
CDN配下かどうかを確かめる
記録されているIPがリクエスト元のものか、1件だけ手で見ます
User-Agentでログを絞る
主要なAIクローラー名を含む行を抜き出します
IPアドレスで真贋を確かめる
公開IPリストとの照合、または逆引き・正引きで判定します
AI検索では、こう聞かれています
AIクローラーが自社サイトに来ているか、どうすれば分かりますか?
「サーバーログからAIクローラーを抜き出す解析は、AI検索対策としてどう進めるんですか?」の章に、そのまま打てるコマンドがあります
GPTBotを名乗るアクセスが本物かどうか、どう確かめますか?
「AIクローラーを名乗るだけのボットを、AI対策としてどう見分けるんですか?」の章で、逆引きと正引きの手順を説明しています
GA4にAIクローラーのアクセスが出てこないのはなぜですか?
「AIクローラーが来ているのに、AI検索の計測ツールに出てこないのはなぜですか?」の章で、記録が残る条件の違いを図で示しています
次に読むなら、この記事です