{
  "entity_a": {
    "slug": "googlebot",
    "name": "Googlebot"
  },
  "entity_b": {
    "slug": "perplexity-user",
    "name": "Perplexity-User"
  },
  "fields_documented": 10,
  "claims": 19,
  "last_verified": "2026-09-15",
  "fields": [
    {
      "field": "cites_sources",
      "value_a": "yes",
      "value_b": "yes",
      "claim_id_a": 69,
      "claim_id_b": 109,
      "same": true
    },
    {
      "field": "honours_crawl_delay",
      "value_a": "no",
      "value_b": "not_documented",
      "claim_id_a": 64,
      "claim_id_b": 104,
      "same": false
    },
    {
      "field": "observed_verified_request_ratio_census",
      "value_a": "0.991",
      "value_b": null,
      "claim_id_a": 149,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "publishes_ip_list",
      "value_a": "yes",
      "value_b": "yes",
      "claim_id_a": 65,
      "claim_id_b": 105,
      "same": true
    },
    {
      "field": "purpose_documented",
      "value_a": "search",
      "value_b": "user_fetch",
      "claim_id_a": 67,
      "claim_id_b": 107,
      "same": false
    },
    {
      "field": "reads_llms_txt",
      "value_a": "no",
      "value_b": "not_documented",
      "claim_id_a": 132,
      "claim_id_b": 110,
      "same": false
    },
    {
      "field": "respects_robots_txt",
      "value_a": "yes",
      "value_b": "no",
      "claim_id_a": 63,
      "claim_id_b": 103,
      "same": false
    },
    {
      "field": "separate_search_and_training_tokens",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 68,
      "claim_id_b": 108,
      "same": false
    },
    {
      "field": "user_agent_string_full",
      "value_a": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
      "value_b": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)",
      "claim_id_a": 70,
      "claim_id_b": 111,
      "same": false
    },
    {
      "field": "verifiable_by_rdns",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 66,
      "claim_id_b": 106,
      "same": false
    }
  ],
  "differences": [
    {
      "field": "honours_crawl_delay",
      "statement_a": "Google does not support the robots.txt Crawl-delay directive for Googlebot.",
      "statement_b": "Perplexity does not publish whether Perplexity-User honours the robots.txt Crawl-delay directive.",
      "claim_id_a": 64,
      "claim_id_b": 104
    },
    {
      "field": "observed_verified_request_ratio_census",
      "statement_a": "Googlebot requests to Rattlesnakes By Mail matched Google's published IP ranges on 108 of 109 requests between 2026-09-13T20:00Z and 2026-09-15T09:00Z. Googlebot's first request to Rattlesnakes By Mail in that window was /robots.txt at 2026-09-14T11:53:00Z.",
      "statement_b": null,
      "claim_id_a": 149,
      "claim_id_b": null
    },
    {
      "field": "purpose_documented",
      "statement_a": "Googlebot crawls pages for Google Search, Google Images, Google Video, Google News, and Discover.",
      "statement_b": "Perplexity-User visits web pages to answer questions that users ask Perplexity.",
      "claim_id_a": 67,
      "claim_id_b": 107
    },
    {
      "field": "reads_llms_txt",
      "statement_a": "Google Search does not use llms.txt files.",
      "statement_b": "Perplexity does not publish whether Perplexity-User reads llms.txt files.",
      "claim_id_a": 132,
      "claim_id_b": 110
    },
    {
      "field": "respects_robots_txt",
      "statement_a": "Googlebot obeys robots.txt rules when crawling automatically.",
      "statement_b": "Perplexity-User ignores robots.txt rules because a user requests each Perplexity-User fetch.",
      "claim_id_a": 63,
      "claim_id_b": 103
    },
    {
      "field": "separate_search_and_training_tokens",
      "statement_a": "Google separates Search crawling under the Googlebot token from Gemini training under the Google-Extended token.",
      "statement_b": "Perplexity does not document Perplexity-User as a search or training opt-out token.",
      "claim_id_a": 68,
      "claim_id_b": 108
    },
    {
      "field": "user_agent_string_full",
      "statement_a": "Googlebot sends the user agent string Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html).",
      "statement_b": "Perplexity-User sends the user agent string Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user).",
      "claim_id_a": 70,
      "claim_id_b": 111
    },
    {
      "field": "verifiable_by_rdns",
      "statement_a": "Googlebot requests are verifiable by reverse DNS lookup resolving to googlebot.com, google.com, or googleusercontent.com.",
      "statement_b": "Perplexity does not publish a reverse-DNS verification method for Perplexity-User.",
      "claim_id_a": 66,
      "claim_id_b": 106
    }
  ],
  "sources": [
    "https://developers.google.com/crawling/docs/crawlers-fetchers/verifying-googlebot",
    "https://developers.google.com/search/blog/2019/07/a-note-on-unsupported-rules-in-robotstxt",
    "https://developers.google.com/search/docs/appearance/ai-features",
    "https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers",
    "https://developers.google.com/search/docs/fundamentals/ai-optimization-guide",
    "https://developers.google.com/static/crawling/ipranges/common-crawlers.json",
    "https://docs.perplexity.ai/docs/resources/perplexity-crawlers",
    "https://rattlesnakesbymail.com/observed/googlebot",
    "https://www.perplexity.ai/perplexity-user.json"
  ]
}