個人で運営している Web サービス(顔認識を使うツール)に、ある日から ChatGPT 経由のアクセスが入るようになりました。ところが、そのサービスの分類を ChatGPT 本人に聞くと「その種のサービスは紹介できない」と断られます。なぜ来るのかをログから追ってみた記録です。結論から言うと、原因は特定できませんでした。分かったことと、分からなかったことを分けて書きます。
起きたこと
GA4 の「AI Assistant」チャネル(流入元 chatgpt.com)を見ると、こうなっていました。
| 期間 | セッション |
|---|---|
| 10/8〜10/21 | 94 |
| 10/22〜11/6 | 474(427人) |
- 立ち上がりは 10/25 ごろで、1 日 30 件前後で安定
- 約 9 割が初訪問。日本が 73%、残りは東アジアが中心
- 着地は トップが約 6 割。残りは機能の解説ページと FAQ
- 来た人の 38% が機能(画像を使う診断)を使い始めていた
「見て帰る人ばかり」ではなく、実際に使っている人が多いのが意外でした。
ログで見る:ChatGPT 関連のアクセスは 2 種類ある
Cloudflare のアクセスログをユーザーエージェントで絞ると、ChatGPT 関連のアクセスは性格の違う 2 つに分かれます。OpenAI は公式にクローラーの種類を公開しています。
| UA | 役割 | 今回の様子 |
|---|---|---|
OAI-SearchBot |
ChatGPT 検索のための巡回 | 10/22 と 10/28 に 1 日 2 万回近い山。通常は 1 日 数百〜数千回 |
ChatGPT-User |
ユーザーの質問に応じて、その場でページを開く | 28 日で約 870 回。トップが約 310 回 |
後者が大事です。ChatGPT-User が開いたということは、誰かが質問して、ChatGPT がそのサイトを読みに来たことを意味します(何を聞かれたかは、ログには残りません)。
Cloudflare GraphQL で集計する
ダッシュボードにはユーザーエージェント別の画面がないので、GraphQL API で集計しました(読み取り権限のトークンで動きます)。
{
viewer {
zones(filter: { zoneTag: "<ZONE_ID>" }) {
httpRequestsAdaptiveGroups(
limit: 5000
filter: {
datetime_geq: "2026-10-10T00:00:00Z"
datetime_leq: "2026-11-07T00:00:00Z"
userAgent_like: "%ChatGPT-User%"
}
) {
count
dimensions { date clientRequestPath }
}
}
}
}
userAgent_like を %OAI-SearchBot% に替えれば、検索用ロボットの巡回量も同じ形で取れます。注意点が 2 つあります。
-
httpRequestsAdaptiveGroupsはサンプリングされた集計で、数字が 10 刻みになるなど概数です。回数は「規模感」として読む - 保持期間に限りがあるので、立ち上がりより前は見られません(今回は 10/10 以降)
仮説は 3 つ、どれとも決められない
| 仮説 | 根拠 | 弱いところ | |
|---|---|---|---|
| A | ユーザーが URL を貼って、ChatGPT に内容や安全性を聞いている |
ChatGPT-User がトップを多く開いている。着地もトップが多い |
貼られた回数は測れない |
| B | 機能の解説ページが、一般的な質問の出典として引用されている | 解説ページへの着地が一定数ある | 全体の約 2 割。トップの多さを説明できない |
| C | ChatGPT 検索の結果リンクから来ている | 検索ロボットの巡回の山と、流入が増えた時期が近い | 巡回は以前から続いていて、日ごとの山は流入と一致しない |
全部が少しずつ混ざっている可能性もあります。ChatGPT 本人に聞いた答えも、手掛かりにはなりませんでした。「その種のサービスは紹介できない」と言うので、おすすめとして引用されているわけではなさそうです。
ひとつだけ、実害のある学びがあった
同じ質問の中で、ChatGPT はこう答えました(要旨)。
アップロードした画像について、保存期間・学習利用・第三者提供・削除方法が明示されていないサービスには注意が必要
画像をアップロードさせるツールなのに、この 4 項目をまとめて明記していませんでした。処理はすべてブラウザ内で完結する(サーバーに画像を送らない)作りなので、書けば事実どおりに書けます。そこでコードを確認したうえで、4 項目を 1 か所に集約しました。
- 通信は静的データの取得のみ。アップロード用の API はない
- 顔認識モデルは自サイトから配信。実行用の WASM だけ CDN から取得(画像は含まれない)
- アクセス解析に送るのは「診断が成功/失敗した」という状態と件数だけ
- ブラウザに残るのは、評価ボタンの結果と閲覧履歴だけ
文面はプライバシーポリシー・FAQ・トップ・llms.txt に同じものを出し、文面の定義は 1 ファイルに集約しました(食い違うと信頼を損なうため)。ついでに、評価ボタンの「精度向上に役立てます」という表示が、実際は端末内にしか保存しない実装と食い違っていたので直しました。説明を見直すと、自分の文面の食い違いが見つかる、という副産物もありました。
言い切れないこと
- ユーザーが何を質問したかは見えない。仮説 A は検証する方法がまだない
- 「ChatGPT 経由」は、GA4 が流入元を判定できたものだけ。判定されない訪問(Direct に入るもの)は数えられていない
- ChatGPT の答えは、聞き方や日によって変わる。1 回の答えを一般化できない
- 観測は約 2 週間。偶然や一時的な流行は排除できていない
データが貯まったら、着地ページ別の動きや、聞き方を変えたときの答えの違いで、仮説を切り分けてみるつもりです。
まとめ
- ChatGPT 関連のアクセスは
OAI-SearchBot(巡回)とChatGPT-User(質問に応じた取得)の 2 種類。後者の回数は、誰かが実際に尋ねた回数の目安になる - Cloudflare GraphQL の
userAgent_likeで、ユーザーエージェント別に集計できる(ただしサンプリングされた概数) - 流入の理由は特定できなかった。分からないことを分からないと書いておく
- AI に聞くと、自分のサービスの説明が足りていない点を指摘してもらえることがある。画像を扱うツールなら、保存期間・学習利用・第三者提供・削除方法は最初から明記しておく