← Glossary

ChatGPT-User

ChatGPT-User is OpenAI's user-initiated fetcher — it visits your page only when a ChatGPT user asks about or opens it live, not on a crawl schedule.

By Haobo Zhang · Updated

Why it matters: blocking the wrong OpenAI bot silently costs you either ChatGPT search visibility or live users — and robots.txt may not control this one at all.

ChatGPT-User is OpenAI’s user-initiated fetcher: it hits your server only when a human asks ChatGPT (or a Custom GPT) something that requires opening your page live. It doesn’t crawl on a schedule — that’s GPTBot (training) and OAI-SearchBot (ChatGPT search). And OpenAI’s own docs now say robots.txt “may not apply” to it.

What does ChatGPT-User actually do?

ChatGPT-User fetches individual pages on demand, in real time, on behalf of a human. OpenAI’s crawler documentation puts it plainly: “When users ask ChatGPT or a CustomGPT a question, it may visit a web page with a ChatGPT-User agent” — the same agent also handles GPT Actions. It’s the oldest of OpenAI’s bots: the token appeared in the ChatGPT plugins announcement of March 23, 2023, months before GPTBot (August 2023) and well before OAI-SearchBot, which arrived with the SearchGPT prototype on July 25, 2024.

Its traffic pattern matches the job. In Cloudflare’s July 2025 network data, training drove “nearly 80% of the crawling from AI bots” while user-action and undeclared purposes together accounted for less than 5% — and ChatGPT-User alone generated nearly three quarters of that user-action slice, with a clear daily cycle tracking human hours (Cloudflare). OpenAI itself publishes no crawl-rate documentation for any of its bots, so treat any claimed frequencies as folklore.

ChatGPT-User vs GPTBot vs OAI-SearchBot: what’s the difference?

Three bots, three different jobs — training, search indexing, and live user fetches — and blocking one has no effect on the other two. Here are the exact user-agent strings from OpenAI’s docs as of July 2, 2026 (for how these crawls turn into citations, see how AI engines source and cite content):

BotJob (OpenAI’s words)When it visitsOfficial user-agent string (Jul 2, 2026)
GPTBottraining — “used to make our generative AI foundation models more useful and safe”on OpenAI’s own crawl scheduleMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.3; +https://openai.com/gptbot
OAI-SearchBot”used to surface websites in search results in ChatGPT’s search features”on OpenAI’s own crawl scheduleMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.3; +https://openai.com/searchbot
ChatGPT-Userlive fetches “for certain user actions in ChatGPT and Custom GPTs”only when a user’s question needs your pageMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot

Three footnotes. OAI-SearchBot’s UA now carries a full Chrome-style prefix, so log filters expecting the token at the start of the line will miss it. There’s also a fourth documented OpenAI bot most lists skip: OAI-AdsBot, “used to validate the safety of web pages submitted as ads on ChatGPT”. And the official ChatGPT-User version is still /1.0 — third-party crawler trackers Momentic and CrawlerCheck list a /2.0 variant, but neither publishes raw log evidence and OpenAI’s docs don’t mention it, so match on the ChatGPT-User token, not the version number.

Does ChatGPT-User respect robots.txt?

Not necessarily — and OpenAI now says so itself. The current docs read, verbatim: “ChatGPT-User is not used for crawling the web in an automatic fashion. Because these actions are initiated by a user, robots.txt rules may not apply.” (OpenAI)

That’s a genuine reversal, and it’s worth telling honestly. In March 2023, OpenAI’s plugins announcement said “our browser plugin’s user-agent token is ChatGPT-User and is configured to honor websites’ robots.txt files” (archived copy). Then, in a December 2025 documentation revision reported by PPC Land, the robots.txt token list was narrowed to just OAI-SearchBot and GPTBot. The same revision added a crawl-sharing clause: “If your site has allowed both bots, we may use the results from just one crawl for both use cases to avoid duplicative crawling.”

The practical takeaway: for ChatGPT-User, robots.txt is a request, not a control. If you genuinely need to stop it, use user-agent or WAF-level rules and verify against OpenAI’s published IP ranges below.

What do you lose by blocking each bot?

Each block costs something different, and only some are enforceable via robots.txt. Blocking GPTBot opts you out of training — “Disallowing GPTBot indicates a site’s content should not be used in training generative AI foundation models” (OpenAI crawler docs) — without touching search: “Sites can be surfaced in search results even if they opt out of generative AI training” (SearchGPT announcement).

Blocking OAI-SearchBot is the expensive one for visibility. OpenAI’s own recommendation, in full: “To help ensure your site appears in search results, we recommend allowing OAI-SearchBot in your site’s robots.txt file and allowing requests from our published IP ranges below.” Its docs warn that opted-out sites “will not be shown in ChatGPT search answers, though can still appear as navigational links.”

Blocking ChatGPT-User stops users having ChatGPT open your pages live — but doesn’t touch search (“ChatGPT-User is not used to determine whether content may appear in Search” — OpenAI) and may not hold via robots.txt anyway. Not sure what can currently reach you? Check if ChatGPT can see your website.

How do I verify a real ChatGPT-User request?

Check the source IP against OpenAI’s published ranges — the user-agent string alone proves nothing. OpenAI publishes a per-bot JSON file of IP prefixes; I pulled all four on July 2, 2026: gptbot.json (21 prefixes, updated 2025-10-30), searchbot.json (35 prefixes, 2026-01-02), chatgpt-user.json (254 prefixes — 253 /28s plus one /17 — 2026-06-24) and adsbot.json (2 prefixes, 2026-05-12). ChatGPT-User’s list is by far the largest and most recently refreshed, which fits its on-demand role. These counts drift — re-fetch before building firewall rules.

Verification matters because spoofing is rampant. On DataDome’s own network, ChatGPT-User was the second-most impersonated AI agent with 7.9 million spoofed requests in the first two months of 2026, behind Meta-ExternalAgent’s 16.4 million, out of nearly 8 billion AI-agent requests (DataDome) — one vendor’s telemetry, but the direction is clear.

One caveat: the triad doesn’t capture every OpenAI-originated fetch. As of August 2025, ChatGPT’s agent mode sent a generic Chrome user-agent, identifiable only by a Signature-Agent: "https://chatgpt.com" header (Simon Willison); that behaviour may have changed since.

Do Anthropic and Perplexity work the same way?

The triad pattern is industry-wide, but the robots.txt stances differ sharply. Anthropic runs a parallel trio — ClaudeBot (training), Claude-SearchBot (search), Claude-User (live user fetches) — and, unlike OpenAI, makes a blanket promise: “Anthropic’s Bots respect ‘do not crawl’ signals by honoring industry standard directives in robots.txt” (Anthropic), with no carve-out for its user fetcher and one combined IP list at claude.com/crawling/bots.json. Perplexity documents a pair: PerplexityBot (search — “not used to crawl content for AI foundation models”, managed via robots.txt) and Perplexity-User, whose docs are blunter than OpenAI’s: “Since a user requested the fetch, this fetcher generally ignores robots.txt rules” (Perplexity, accessed July 2, 2026). For what it’s worth, hzsignal’s robots.txt explicitly allows all of these agents — this site exists to be read by answer engines, so our baseline is open until an experiment gives us a reason to change it.

Sources: OpenAI — Overview of OpenAI Crawlers · PPC Land — OpenAI revises crawler documentation · Cloudflare — AI crawler traffic by purpose · DataDome — Agentic threats defining 2026 · Perplexity — Perplexity Crawlers · Anthropic — web crawling FAQ

Frequently asked questions

What is ChatGPT-User?
ChatGPT-User is OpenAI's user-action fetcher: it requests a page only when a human asks ChatGPT or a Custom GPT to visit it. Per OpenAI, it is not used for crawling the web in an automatic fashion.
Does ChatGPT-User respect robots.txt?
Not necessarily. OpenAI's current docs say that because these fetches are user-initiated, robots.txt rules may not apply — a reversal of its 2023 plugins-era wording. Reliable control means user-agent/WAF rules plus IP verification.
What's the difference between ChatGPT-User, GPTBot, and OAI-SearchBot?
GPTBot crawls public content for model training, OAI-SearchBot crawls to surface sites in ChatGPT's search features, and ChatGPT-User fetches individual pages on demand when a user asks. Each has its own user-agent string and published IP-range file.
What happens if I block OAI-SearchBot?
Your pages will not be shown in ChatGPT search answers, though they can still appear as navigational links. Blocking it does not affect model training, which is GPTBot's job.
How do I verify a request is really from ChatGPT-User?
Check the source IP against OpenAI's published list at openai.com/chatgpt-user.json (254 CIDR prefixes as of July 2, 2026). DataDome recorded 7.9 million spoofed ChatGPT-User requests on its network in early 2026.

← All terms