広告

当社データで不動産の質問に答えるChatGPTを検知—nginxログの証拠はこちら

Dev.to / 2026/3/31

📰 ニュースDeveloper Stack & InfrastructureSignals & Early Trends

要点

  • この記事では、サイトのnginxログにより、OpenAIの「ChatGPT-User」ボットが、ユーザーが近くの家の価格について質問した後に、英国の不動産価格のランディングページ(例:/prices/sk10-1ae)を取得していたことが示されたと報告している。これは、ChatGPTによるリアルタイムのデータアクセスを示唆する。
  • 3つのOpenAIクローラ—トレーニングデータ収集のための「GPTBot」、検索インデックス構築のための「OAI-SearchBot」、そしてライブの問い合わせ応答のための「ChatGPT-User」—を区別し、いずれも同じ2時間のウィンドウ内で稼働していたとしている。
  • 著者は、クロール量に測定可能な差があったと主張しており、2時間でOpenAIのボットが22回リクエストしたのに対し、Googlebotは4回だった。これにより、OpenAIのクロール頻度はサイトに対して約5倍高いと推測している。
  • ログはまた、OAI-SearchBotによる、複数の英国ポストコードのランディングページに加えて、サイトの各ドメインにまたがってsitemap.xmlやrobots.txtを巡回する、体系的なクロールパターンも示している。
  • 全体として記事は、サイト上でホストされているサードパーティのデータが、ユーザーが自分でWebサイトを訪れなくても、ChatGPT内でエンドユーザーに直接提示され得ると論じている。

我々が違和感に気づいた瞬間

昨日、いつものnginxログ分析を実行している最中に、以下のような不自然なものを見つけました:

51.107.70.192 - [30/Mar/2026:19:42:35 +0000] "property.nwc-advisory.com"
"GET /prices/sk10-1ae HTTP/2.0" 200 4623 "-"
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible;
ChatGPT-User/1.0; +https://openai.com/bot"

ChatGPT-Userボットが、英国の物件ランディングページの1つを取得しました。GPTBotではありません(学習用のクローラ)。OAI-SearchBotでもありません(インデクサ)。ChatGPT-Userエージェント――ユーザーの質問に答えるために、リアルタイムでページを取得する側のものです。

誰かがMacclesfield(SK10郵便番号)周辺の住宅価格についてChatGPTに質問し、ChatGPTがその回答を私たちのページから引き出しました。

OpenAIのボットには何が違うの?

OpenAIは、3つの異なるクローラを運用しています。同じ2時間のウィンドウ内で、私たちは3つすべてを目撃しました:

Bot User-Agent 目的 我々のログ
GPTBot GPTBot/1.3 学習データの収集 サイトマップ、ホームページをクロール
OAI-SearchBot OAI-SearchBot/1.3 検索インデックスの構築 英国のランディングページ(SK郵便番号)をクロールし、全11ドメインでrobots.txtを取得
ChatGPT-User ChatGPT-User/1.0 ライブでの問い合わせ応答 実ユーザーのために/prices/sk10-1aeを取得

注目すべきは、ChatGPT-Userへのアクセスです。これは、データがChatGPTの検索機能を通じて、リアルタイムにエンドユーザーへ提供されていることを意味します。ユーザーは一度も私たちのサイトを訪れません――チャットの中で答えを受け取ります。

数字

2026年3月30日の2時間のウィンドウ内で:

OpenAI bots:  22 requests (GPTBot + OAI-SearchBot + ChatGPT-User)
Googlebot:     4 requests

OpenAIはGoogleよりも5倍頻繁に私たちのページをクロールしています。

以下は、OAI-SearchBotが体系的にクロールしていた内容です:

property.nwc-advisory.com       GET /prices/sk1-1aa
property.nwc-advisory.com       GET /prices/sk10-1ae
property.nwc-advisory.com       GET /prices/sk11-0aa
property.nwc-advisory.com       GET /prices/sk12-1aa
property.nwc-advisory.com       GET /prices/sk13-0aa
property.nwc-advisory.com       GET /prices/sk14-1aa
property.nwc-advisory.com       GET /sitemap.xml
property.nwc-advisory.com       GET /robots.txt
property-chi.nwc-advisory.com   GET /robots.txt
property-dxb.nwc-advisory.com   GET /robots.txt
property-ie.nwc-advisory.com    GET /robots.txt
property-miami.nwc-advisory.com GET /robots.txt
property-phl.nwc-advisory.com   GET /robots.txt
property-sg.nwc-advisory.com    GET /robots.txt
property-tw.nwc-advisory.com    GET /robots.txt

サイトマップを読み込んだ後に、個別のランディングページをクロールしています。体系的に。

私たちが作ったもの(そしてAIが読める理由)

私たちは物件の比較成約アプリを11の市場(英国、フランス、シンガポール、NYC、シカゴ、マイアミ、フィラデルフィア、コネチカット、ドバイ、アイルランド、台湾)で運営しており、35M+の政府ソースの取引データを裏付けに持っています。

SEOのために、私たちは9,100+の静的ランディングページを生成しました――郵便番号/ZIP/エリアごとに1ページです:

/prices/sw1a-1aa    → ロンドン・ウェストミンスター
/prices/sk10-1ae    → マクルズフィールド
/prix/75001         → パリ1区
/comps/10001        → ミッドタウン・マンハッタン

各ページには:

  • 中央値、平均価格、価格レンジ
  • 坪/㎡あたりの価格統計
  • 住所付きの最近の比較対象となる成約事例
  • 印紙税/公証人手数料の計算機
  • FAQスキーマ(JSON-LD)
  • 近隣エリアへのリンク

重要な設計判断:ログインの壁なし、JavaScriptでレンダリングされるコンテンツなし、ゲートされたデータなし。すべてのランディングページは、あらゆるクローラが解析できる構造化データを含むサーバーサイドレンダリングのHTMLです。

AIが好むページ構造

<!-- クリーンで意味のあるHTML -->
<h1>SK10 1AE、マクルズフィールドの不動産価格</h1>

<div class="stats-grid">
  <div class="stat">
    <span class="label">中央値</span>
    <span class="value">£285,000</span>
  </div>
  <div class="stat">
    <span class="label">坪あたりの価格</span>
    <span class="value">£198</span>
  </div>
</div>

<!-- JSON-LD 構造化データ -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebApplication",
  "name": "Property Comparable Sales - SK10",
  "description": "SK10 1AE、マクルズフィールド周辺の最近の物件販売事例",
  "url": "https://property.nwc-advisory.com/prices/sk10-1ae"
}
</script><!-- FAQ schema for rich snippets -->
<script type="application/ld+json">
{
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "SK10の平均的な住宅価格はいくらですか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "SK10の平均的な住宅価格は£312,450です..."
      }
    }
  ]
}
</script>

SEOスタック

nginx(SSL、検索エンジンのホワイトリストによるbotブロック)
  │
  ├── /prices/{postcode}  →  静的HTML(英国ページ2,308)
  ├── /prix/{code_postal} →  静的HTML(フランスページ5,851)
  ├── /comps/{zip}        →  静的HTML(米国の各市場ごと)
  │
  ├── sitemap.xml          →  すべてのページURL
  ├── robots.txt           →  /v1/ と /api/ 以外を許可
  └── IndexNowキー         →  Bing/Yandexへの即時通知

重要な技術的判断:

1. robots.txtでAIボットを許可

User-agent: GPTBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: *
Disallow: /v1/
Disallow: /api/

多くのサイトはGPTBotをブロックしています。私たちはあえて許可しています。APIエンドポイントは保護されています(ブロック対象)。ただし、ランディングページは公開しています。

2. サーバーサイドレンダリングであってSPAではない

それぞれのランディングページは完全なHTMLドキュメントです。クライアント側でのレンダリングは不要で、データを見るのにJavaScriptは必要ありません。ChatGPT-UserがHTMLを取得すれば、すぐに統計を抽出できます。

3. 正規URL(Canonical)とサイトマップ

すべてのページに <link rel="canonical"> があり、サイトマップにも掲載されています。これにより、クローラーに対して、どのページが存在し、どのURLが正本(権威)であるかを明確に伝えられます。

4. 構造化データ(JSON-LD)

FAQPageスキーマにより、質問と回答が機械可読になります。ChatGPTが「SK10の平均的な住宅価格はいくらですか?」という問いを必要とする場合、構造化データから回答を直接抽出できます。

私たちはどのようにAIボットのトラフィックを検出するか

訪問者分析のパイプライン(Python、nginxのログに対して実行)では、すべてのリクエストを分類します:

# ボットの分類
AI_BOTS = {
    'ChatGPT-User':   'ライブクエリ(誰かがChatGPTに質問した)',
    'GPTBot':         'トレーニングデータの収集',
    'OAI-SearchBot':  '検索インデックスの構築',
    'ClaudeBot':      'Anthropicのトレーニング',
    'PerplexityBot':  'Perplexityによる検索',
    'Bytespider':     'TikTok/ByteDance',
}

SEARCH_BOTS = {
    'Googlebot':      'Google検索のインデックス作成',
    'bingbot':        'Bing検索のインデックス作成',
    'Applebot':       'Apple/Siriの検索',
    'DuckDuckBot':    'DuckDuckGoのインデックス作成',
}

返却形式: {"translated": "翻訳されたHTML"}def classify_request(user_agent: str) -> str:
    ua_lower = user_agent.lower()
    for bot, purpose in AI_BOTS.items():
        if bot.lower() in ua_lower:
            return f"AI Bot: {purpose}"
    for bot, purpose in SEARCH_BOTS.items():
        if bot.lower() in ua_lower:
            return f"Search: {purpose}"
    return "Human visitor"

これを毎日、nginx のログに対して実行しています。ここ数週間の傾向として、AI bot のトラフィックは検索ボットのトラフィックよりも速いペースで増えています。

開発者にとっての意味

データ量の多いアプリを作る場合、従来の手順(プレイブック)はこうでした:

アプリを作る → SEO → Googleで上位表示 → ユーザーがあなたを見つける → ユーザーが訪問する

新しい手順(プレイブック)はこうです:

アプリを作る → 構造化データ → AIがあなたをクロールする → ユーザーはChatGPT経由であなたのデータを受け取る
                                              (ユーザーがあなたのサイトを訪れることはないかもしれない)

これはわくわくすると同時に不安でもあります。わくわくするのは、あなたのデータがまったく新しい経路でユーザーに届くからです。不安なのは、そうしたユーザーがUIやブランド、そしてコンバージョンファネルを一切見ることがないからです。

 実用的な取り組み

AIにあなたのデータを使わせたいなら:

  1. robots.txt で AI bot をブロックしない(理由がない限り)
  2. ページをサーバーサイドでレンダリングする -- ChatGPT-User は JavaScript を実行できません
  3. 構造化データを使う(JSON-LD、schema.org)-- 抽出を簡単にします
  4. ロングテールのクエリ向けにランディングページを生成する -- AIは人間と同じ方法で検索します
  5. データをログイン必須にしない -- ログインの裏にあるとAIは到達できません
  6. サイトマップを維持する -- AI bot は Googlebot と同様にそれらに従います

それを追跡したいなら:

  • nginx/access ログを解析して ChatGPT-UserGPTBotOAI-SearchBot を探す
  • ChatGPT-User = いまこのデータが実際のユーザーに提供されています
  • OAI-SearchBot = 将来のクエリのために、あなたのページがインデックスされています
  • GPTBot = あなたのコンテンツがモデルの学習に使われる可能性があります

より広い全体像

Googleは依然として主要な検索エンジンです。しかし、2時間のサンプルでは OpenAI のクローラーが Googlebot を 5:1 で上回っていました。そして、Googleが私たちの12ドメインを数週間にわたってクロールしているにもかかわらず、ほとんどのページがインデックスされない(ドメインオーソリティの問題)一方で、ChatGPTはすでに私たちのデータをユーザーに提供しています。

ドメインオーソリティも、バックリンクもなく、新規ドメインの小さなスタートアップにとって、これは重要なことです。従来のSEOの道筋(権威を作る → インデックスされる → 上位表示される → 流入が得られる)には、数か月から数年かかります。AI検索の道筋(構造化データ → クロールされる → 引用される)なら、数週間で起こり得ます。

私たちは「Googleは重要ではない」と言っているわけではありません。新しい並行の配信チャネルができて、そのチャネルではドメインオーソリティよりも“きれいなデータ”が有利に働く、ということを言っています。

私たちの構成:Python(FastAPI)+SQLite+nginx+静的HTMLジェネレーター。11の不動産マーケット、政府のオープンデータソースからの35M+件の取引データ。無料で検索できます:property.nwc-advisory.com

APIはさらに RapidAPI でも利用でき、AIエージェント向けの MCP server としても提供されています。

あなたのログで、どんなAI botのトラフィックが見えていますか?ChatGPT-Userがあなたのページを取りに来ているのを確認しましたか?コメントをください--これがより広いトレンドなのか、それとも私たちが単に早いだけなのか、気になります。*

広告