{
  "entity_a": {
    "slug": "chatgpt-user",
    "name": "ChatGPT-User"
  },
  "entity_b": {
    "slug": "google-extended",
    "name": "Google-Extended"
  },
  "fields_documented": 11,
  "claims": 17,
  "last_verified": "2026-09-13",
  "fields": [
    {
      "field": "cites_sources",
      "value_a": "not_documented",
      "value_b": null,
      "claim_id_a": 25,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "honours_crawl_delay",
      "value_a": "not_documented",
      "value_b": "n/a",
      "claim_id_a": 20,
      "claim_id_b": 56,
      "same": false
    },
    {
      "field": "publishes_ip_list",
      "value_a": "yes",
      "value_b": "no",
      "claim_id_a": 21,
      "claim_id_b": 57,
      "same": false
    },
    {
      "field": "purpose_documented",
      "value_a": "user_fetch",
      "value_b": "policy_only",
      "claim_id_a": 23,
      "claim_id_b": 59,
      "same": false
    },
    {
      "field": "reads_llms_txt",
      "value_a": "not_documented",
      "value_b": null,
      "claim_id_a": 26,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "respects_robots_txt",
      "value_a": "partial",
      "value_b": "n/a",
      "claim_id_a": 19,
      "claim_id_b": 55,
      "same": false
    },
    {
      "field": "robots_token_differs_from_ua",
      "value_a": null,
      "value_b": "yes",
      "claim_id_a": null,
      "claim_id_b": 62,
      "same": false
    },
    {
      "field": "separate_search_and_training_tokens",
      "value_a": "not_documented",
      "value_b": "yes",
      "claim_id_a": 24,
      "claim_id_b": 60,
      "same": false
    },
    {
      "field": "user_agent_string_full",
      "value_a": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot",
      "value_b": null,
      "claim_id_a": 27,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "verifiable_by_rdns",
      "value_a": "not_documented",
      "value_b": "n/a",
      "claim_id_a": 22,
      "claim_id_b": 58,
      "same": false
    },
    {
      "field": "what_it_controls",
      "value_a": null,
      "value_b": "Gemini model training and grounding, not Search inclusion",
      "claim_id_a": null,
      "claim_id_b": 61,
      "same": false
    }
  ],
  "differences": [
    {
      "field": "cites_sources",
      "statement_a": "OpenAI does not publish whether ChatGPT responses cite pages fetched by ChatGPT-User.",
      "statement_b": null,
      "claim_id_a": 25,
      "claim_id_b": null
    },
    {
      "field": "honours_crawl_delay",
      "statement_a": "OpenAI does not publish whether ChatGPT-User honours the robots.txt Crawl-delay directive.",
      "statement_b": "Google does not publish any Crawl-delay behaviour for the Google-Extended token.",
      "claim_id_a": 20,
      "claim_id_b": 56
    },
    {
      "field": "publishes_ip_list",
      "statement_a": "OpenAI publishes the IP address ranges used by ChatGPT-User as a JSON file at https://openai.com/chatgpt-user.json.",
      "statement_b": "Google publishes no IP list for Google-Extended because Google-Extended has no separate HTTP request user agent string.",
      "claim_id_a": 21,
      "claim_id_b": 57
    },
    {
      "field": "purpose_documented",
      "statement_a": "ChatGPT-User visits web pages for user actions in ChatGPT and in Custom GPTs.",
      "statement_b": "Google-Extended is a standalone product token that controls whether Google uses crawled content to train Gemini models.",
      "claim_id_a": 23,
      "claim_id_b": 59
    },
    {
      "field": "reads_llms_txt",
      "statement_a": "OpenAI does not publish whether ChatGPT-User reads llms.txt files.",
      "statement_b": null,
      "claim_id_a": 26,
      "claim_id_b": null
    },
    {
      "field": "respects_robots_txt",
      "statement_a": "ChatGPT-User fetches pages in response to user actions in ChatGPT, and OpenAI states that robots.txt rules may not apply to ChatGPT-User fetches.",
      "statement_b": "Google-Extended is a robots.txt token that publishers set to control use of crawled content for Gemini training.",
      "claim_id_a": 19,
      "claim_id_b": 55
    },
    {
      "field": "robots_token_differs_from_ua",
      "statement_a": null,
      "statement_b": "Google-Extended is a robots.txt control token and does not correspond to a crawler user agent string.",
      "claim_id_a": null,
      "claim_id_b": 62
    },
    {
      "field": "separate_search_and_training_tokens",
      "statement_a": "OpenAI does not document ChatGPT-User as a search or training opt-out token.",
      "statement_b": "Google-Extended controls Gemini training use only and does not affect inclusion in Google Search.",
      "claim_id_a": 24,
      "claim_id_b": 60
    },
    {
      "field": "user_agent_string_full",
      "statement_a": "ChatGPT-User sends the user agent string Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot.",
      "statement_b": null,
      "claim_id_a": 27,
      "claim_id_b": null
    },
    {
      "field": "verifiable_by_rdns",
      "statement_a": "OpenAI does not publish a reverse-DNS verification method for ChatGPT-User.",
      "statement_b": "Google does not publish a reverse-DNS verification method for Google-Extended.",
      "claim_id_a": 22,
      "claim_id_b": 58
    },
    {
      "field": "what_it_controls",
      "statement_a": null,
      "statement_b": "Google-Extended controls AI training and grounding in Google systems and does not control Google Search inclusion.",
      "claim_id_a": null,
      "claim_id_b": 61
    }
  ],
  "sources": [
    "https://developers.google.com/search/docs/appearance/ai-features",
    "https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers",
    "https://developers.openai.com/api/docs/bots",
    "https://openai.com/chatgpt-user.json"
  ]
}