Skip to content

ChatGPT-User

Quick facts

What it is
ChatGPT-User is OpenAI's user-triggered fetcher. It visits a page because someone needs it during a live ChatGPT conversation, rather than as part of a scheduled automated crawl.
User-agent string
The full string is Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot (match the bare token, not the version number).
robots.txt
OpenAI states that 'because these actions are initiated by a user, robots.txt rules may not apply.' ChatGPT-User is absent from its list of robots.txt tags for managing access.
Effect on ChatGPT Search
It has no effect. OpenAI states that ChatGPT-User 'is not used to determine whether content may appear in Search.' OAI-SearchBot controls that access.
An access-control mistake
Many one-click 'block AI bots' presets include ChatGPT-User alongside training crawlers. Blocking it can prevent live answers without stopping any training, because this token is not used for training.

1. What ChatGPT-User is

ChatGPT-User is the user-agent OpenAI sends when a live ChatGPT conversation needs a specific page immediately. The request can follow a question, a pasted link, or the use of a Custom GPT. In each case, ChatGPT needs to fetch content from a URL that is not already available to the model.

OpenAI defines the distinction clearly in its crawler documentation: ChatGPT-User “is not used for crawling the web in an automatic fashion” (see Overview of OpenAI Crawlers). It fetches a page on behalf of a person instead of following an automated crawl schedule. That difference explains its robots.txt treatment, its separate IP infrastructure, and its classification by security vendors.

Among OpenAI’s bots, ChatGPT-User handles user-triggered requests, GPTBot handles training crawls, and OAI-SearchBot handles search indexing. AI crawlers explains why each category requires a separate access decision.

A ChatGPT-User request in your logs means that ChatGPT is fetching your page in response to a real person’s current request. If the request fails, the page cannot contribute to that reader’s answer, and no background crawl is available to compensate for the failed lookup.

2. What triggers a fetch

OpenAI names three surfaces:

SurfaceWhat the user didDocumented
ChatGPT conversationAsked a question that requires a page, or pasted a URL directlyYes
Custom GPTsAsked a Custom GPT a question that requires a live pageYes
GPT ActionsUsed an Action to interact with an external applicationYes

OpenAI’s documentation does not identify the user-agent used by scheduled ChatGPT tasks. Its rationale for the robots.txt exception is that a user initiates the action, but that explanation does not fit neatly with a task that runs at 6 a.m. while the person who scheduled it is asleep. Neither OpenAI nor a third-party source identifies the token used for those requests.

Because people trigger these requests, the traffic is uneven and depends on individual conversations rather than a crawl schedule. A page may receive a cluster of requests while people discuss its topic and none when they do not. Traffic volume therefore depends on user interest rather than sitemap size.

These fetches are also largely invisible in the analytics tools most teams use. Because ChatGPT-User does not run JavaScript (see §8), client-side analytics never fire. The requests appear only in server logs.

3. OpenAI surfaces that send no product token

ChatGPT-User accounts for only some of the requests OpenAI makes on a user’s behalf. A policy based solely on that token will therefore apply to fewer requests than its author may expect.

SurfaceToken sentHow it is identified
ChatGPT / Custom GPTs / GPT ActionsChatGPT-UserUser-agent plus published IP ranges
ChatGPT agent modeNone. It uses an ordinary Chrome UA.HTTP Message Signatures (RFC 9421)
Atlas browserNone. It uses an ordinary Chrome UA.It cannot be identified from HTML requests.
Ads validationOAI-AdsBotUser-agent

The browser-based surfaces cannot be controlled through a product-specific user-agent. They use real Chromium and render pages as a person’s browser would. Agent mode identifies itself with a cryptographic signature instead of a product token, while Atlas cannot be identified from HTML requests. OpenAI publishes no IP-range file for agent traffic: chatgpt-agent.json returns a 404 response, while chatgpt-user.json returns a complete list.

Signed requests show that agent identification is moving toward cryptographic verification. Several large infrastructure operators support the IETF’s work on HTTP Message Signatures for automated traffic, and Cloudflare already records which bots present a signature. ChatGPT-User itself is not signed today. Its verification remains IP-based, as §5 explains.

OAI-AdsBot is the fourth token OpenAI documents. It visits only pages submitted as ads, and OpenAI states that the content it collects is not used to train foundation models.

4. robots.txt and the user-triggered exception

OpenAI answers the most common question about this bot with carefully qualified language:

Because these actions are initiated by a user, robots.txt rules may not apply.

The modal verb matters. OpenAI says the rules may not apply, rather than stating that they do not apply. The documentation leaves the outcome unresolved.

The structure of the documentation provides another signal. OpenAI states: “OpenAI uses OAI-SearchBot and GPTBot robots.txt tags to enable webmasters to manage how their sites and content work with AI.” ChatGPT-User is absent from that list. OpenAI also documents a robots.txt user-agent marker for the other two bots but not for ChatGPT-User. The marker is a suffix added when a crawler fetches the robots file itself, and a bot that does not use the file has no reason to add it.

OpenAI narrowed this wording on 9 December 2025. The previous page used a general sentence that covered all listed agents. The revision limited the robots.txt management language to OAI-SearchBot and GPTBot and added the “may not apply” statement (Search Engine Roundtable). OpenAI narrowed a general statement. It did not withdraw a specific promise that ChatGPT-User would honor robots.txt, because the earlier text made no such promise.

OpenAI is not alone in taking this position. Google describes the same exception for its user-triggered fetchers in more direct terms:

Because the fetch was requested by a user, these fetchers generally ignore robots.txt rules.

Cloudflare’s bot directory classifies ChatGPT-User as not following robots.txt, while classifying GPTBot and OAI-SearchBot as following it. The directory applies the same classification to its entire AI-assistant category, which includes dozens of user-triggered fetchers from many operators. OpenAI’s policy, Google’s comparable approach, and Cloudflare’s category-level classification all point in the same direction.

Some third-party bot directories and SEO articles say that ChatGPT-User is expected to follow robots.txt. That claim conflicts with OpenAI’s documentation, so check the source behind any tool or recommendation that relies on it.

No standard resolves the issue. RFC 9309 does not address why a fetch occurs or distinguish a scheduled crawl from a request made for one person. The IETF’s preference vocabulary remains a draft with no published RFC, and an earlier proposal to add purpose tokens to the protocol expired without adoption. Operators have set their own policies in the absence of a standard, so vendor documentation provides the current answer. See robots.txt for the protocol mechanics and directive syntax.

5. Identifying ChatGPT-User in your logs

OpenAI publishes the following full user-agent string:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot

Match the bare ChatGPT-User token, not the version number. OpenAI labels this string “Full user-agent string,” while it labels the GPTBot and OAI-SearchBot strings “Example user-agent string (the version number may change).” Third-party bot directories disagree about whether higher versions circulate in the wild. A rule fixed to 1.0 would stop matching if the version changes, so major bot-management vendors match the bare token.

ChatGPT-User has its own published IP-range file. The counts below were fetched directly from OpenAI’s endpoints on 18 July 2026:

TokenPublished IP filePrefixesOverlap with other OpenAI bots
ChatGPT-Userchatgpt-user.json286None with the other two bots
OAI-SearchBotsearchbot.json356 shared with GPTBot
GPTBotgptbot.json216 shared with OAI-SearchBot
ChatGPT agentnone (404)Not applicableNot applicable

The table shows two notable differences. ChatGPT-User has an order of magnitude more published prefixes than either of the other two bots and shares none of them. That distribution is consistent with a latency-sensitive fetch that must complete while a person waits and therefore uses more egress infrastructure than a background crawl. GPTBot and OAI-SearchBot, by contrast, share six prefixes. That overlap matches OpenAI’s stated practice of reusing one crawl for both purposes when a site allows both bots.

Verification relies entirely on IP information because ChatGPT-User presents no request signature. Use the published ranges together with the forward-confirmed reverse DNS principle described in AI crawlers. The AI crawler access audit provides the full procedure for searching logs and confirming which requests actually came from OpenAI rather than merely claiming its token.

Cloudflare lists ChatGPT-User as a verified bot, but only higher-tier plans can create rules based on the vendor’s detection IDs. Other customers must match the user-agent string, making the bare-token rule an operational requirement rather than a matter of style.

6. How much traffic comes from ChatGPT-User

Every figure in this section applies to one vendor’s measured population, and those populations are not directly comparable. A CDN measuring its entire network and a publisher panel measuring participating sites can report results that differ by orders of magnitude while each remains accurate for its own denominator. Each number below therefore includes both a date and a named population.

Across Cloudflare’s network from July 2024 through July 2025, ChatGPT-User rose from 0.1% to 0.9% of combined AI and search bot traffic and from 0.2% to 2.4% of AI-only bot traffic. Over the same period and network, Cloudflare’s purpose-level data showed training increasing from 72% to 79% of AI crawling, search declining from 26% to 17%, and user actions increasing modestly from 2% to 3.2%.

Publisher panels showed a different pattern in 2025. Those samples emphasized the news and reference sites that people often ask ChatGPT about. Within those panels, retrieval-style fetching rose sharply while training crawls declined, and ChatGPT-User’s share of AI traffic roughly doubled. Each result describes its own cohort and cannot be generalized to the other. In particular, publisher-panel figures do not represent the web as a whole.

Two further cautions apply when citing figures for this bot:

  • The direction reversed in 2026. Multiple trackers measured month-over-month declines in ChatGPT-User traffic during mid-2026 while bots from competing operators increased. The reported growth occurred in 2025. Current data does not support the claim that “ChatGPT-User is growing.”
  • Crawl-to-refer ratios are published by platform, not by token. Widely repeated figures describe an operator’s entire crawling footprint and mostly reflect early 2025. They are also inflated by an unknown amount because native-app referrals send no Referer header, a limitation Cloudflare notes in its own data. No credible ChatGPT-User-specific ratio exists, so any such figure is an extrapolation.

7. What blocking it costs

OpenAI’s documentation directly addresses a misconception about this bot:

ChatGPT-User is not used to determine whether content may appear in Search. Please use OAI-SearchBot in robots.txt for managing Search opt outs and automatic crawl.

Blocking ChatGPT-User does not remove a site from ChatGPT Search. OAI-SearchBot controls Search inclusion. It also does not affect training, which uses GPTBot. Instead, the block prevents a live lookup of the page for the specific person asking about it at that moment.

Blocking the request can deprive a reader’s answer of the page. It provides almost no benefit against automated collection because ChatGPT-User does not collect content on its own initiative.

ActionAssumptionWhat actually happens
Block ChatGPT-User to leave ChatGPT”It’s an OpenAI bot”Search inclusion is unchanged because OAI-SearchBot controls it.
Block GPTBot to stop live fetching”GPTBot is the crawler”GPTBot is used only for training crawls, so live fetches continue.
Disallow ChatGPT-User and assume the issue is resolved”robots.txt covers AI access”OpenAI documents that robots.txt may not apply here.
Flip the one-click “block AI bots” preset”It blocks training crawlers”Most presets also include the user-triggered fetcher.
Treat a ChatGPT-User hit as a visit”It counts as a visit”The fetcher does not execute JavaScript, so the request never reaches client-side analytics.

The fourth mistake can affect even teams that review their settings carefully. Netlify’s documentation gives unusually direct advice about this category:

Traffic in this category is usually low-volume and initiated directly by a human user’s request. It is generally not advisable to block or rate-limit these requests, as they indicate your content is being surfaced as relevant by AI systems.

Despite that advice, one-click controls across the industry often bundle ChatGPT-User with bulk crawlers. Product behavior can therefore conflict with the vendor’s own category guidance. Review the tokens a preset matches instead of relying on its label.

Cloudflare’s legacy “Block AI bots” setting applies to training. It “blocks verified bots that are classified as crawling for the purpose of AI training,” which excludes ChatGPT-User because of the setting’s scope rather than a deliberate exception for that token. On 15 September 2026, this changes for new domains. Cloudflare states that new domains will block Agent-category bots by default on pages that display ads while continuing to allow Search bots. ChatGPT-User belongs to the Agent category. Anyone relying on the current default should choose an explicit policy before that date.

A careful access policy treats training and retrieval separately, as described in AI crawlers. Write the relevant directives in robots.txt, while recognizing that they may not apply to this fetcher. Then verify requests at the network layer instead of trusting either a claimed token or a preset label.

8. Making the fetch succeed

Allowing the fetch does not guarantee that it returns useful content. The page must also be accessible and suitable for quotation.

ChatGPT-User does not execute JavaScript. A 2024 study by Vercel and MERJ examined a large sample of AI crawler requests and found that OpenAI’s fetchers retrieved JavaScript files without running them. A client-rendered page therefore returned an empty shell. The study is dated, and OpenAI has not documented a change, so this remains a working assumption rather than a permanent guarantee. The browser-based surfaces in §3 are the exception: agent mode and Atlas use real Chromium and do render pages.

The same study found that a substantial share of OpenAI fetches encountered 404 responses and redirects. Many failed fetches therefore result from ordinary link rot and redirect chains rather than specialized bot defenses. Fixing stale internal links is a straightforward way to reduce these failures.

No credible published timeout figure exists. Specific thresholds circulate without reliable sources, so plan for a fast response as a general practice rather than optimizing for an unsupported number.

A user-triggered fetch can also trigger rate limits or security challenges. It is a single unusual request from an unfamiliar IP range, without the surrounding crawl pattern that might help a defense system recognize it. Bot controls designed for scrapers often challenge the request, and the failure remains invisible to client-side analytics, as described in §2. Use the AI crawler access audit to diagnose this problem.

After a successful fetch, whether the page can be quoted depends on different factors: clear structure, self-contained passages, and claims that remain meaningful outside their original context. See citability for these factors. For an explanation of when ChatGPT searches and what it tends to cite, see ChatGPT Search.

OpenAI does not document ChatGPT-User as reading llms.txt. Publishing that file is not a documented way to influence the fetcher’s behavior.

  • AI crawlers: the three-category model and the access decision for each category
  • GPTBot: OpenAI’s training crawler and the appropriate control for opting out of training crawls
  • OAI-SearchBot: OpenAI’s search indexer and the appropriate control for Search inclusion
  • robots.txt: the protocol and how to write its directives
  • llms.txt: what the file is and what it is not documented to control
  • OpenAI: the operator behind all four tokens
  • citability: the qualities that make a successfully fetched page useful for quotation
  • AI crawler access audit: how to verify which requests reached your site
  • ChatGPT Search: the engine surface that these fetches support

References

Primary

Secondary

Frequently asked questions

What is ChatGPT-User?
ChatGPT-User is the user-agent OpenAI sends when a live ChatGPT conversation needs a specific web page. The request follows a human action, such as asking a question, pasting a URL, or invoking a Custom GPT or GPT Action. OpenAI states that it 'is not used for crawling the web in an automatic fashion.' GPTBot handles training crawls, while OAI-SearchBot handles search indexing.
Does ChatGPT-User respect robots.txt?
OpenAI states that 'because these actions are initiated by a user, robots.txt rules may not apply.' The wording says 'may not,' rather than 'do not.' ChatGPT-User is also absent from OpenAI's list of robots.txt tags for managing site access, which names only OAI-SearchBot and GPTBot. Google takes the same approach to its user-triggered fetchers, which it says 'generally ignore robots.txt rules.'
If I block ChatGPT-User, will I disappear from ChatGPT?
No. OpenAI states that ChatGPT-User 'is not used to determine whether content may appear in Search. Please use OAI-SearchBot in robots.txt for managing Search opt outs and automatic crawl.' Blocking ChatGPT-User does not remove a site from ChatGPT Search or affect training, which uses GPTBot. It can prevent a live lookup when a specific person is asking for the page.
Why don't ChatGPT-User visits show up in my analytics?
ChatGPT-User does not execute JavaScript. A large-scale 2024 study by Vercel and MERJ found that OpenAI's crawlers fetch JavaScript files without running them, so client-side analytics such as GA4 never fire. These requests appear only in server logs. A site can receive hundreds of ChatGPT-User fetches in a day without recording any of those requests in a JavaScript-based analytics dashboard.
Is ChatGPT-User the only way OpenAI fetches pages on a user's behalf?
No. ChatGPT agent mode and the Atlas browser use real Chromium and send an ordinary Chrome user-agent. Agent mode identifies itself cryptographically through HTTP Message Signatures rather than a product token, while Atlas cannot be identified from HTML requests. A rule that matches only the ChatGPT-User string therefore applies to only part of OpenAI's user-initiated traffic.

See also

Sources

Primary

  1. Overview of OpenAI Crawlers · OpenAI
  2. Publishers and Developers FAQ — OpenAI Help Center · OpenAI
  3. ChatGPT-User published IP ranges (chatgpt-user.json) · OpenAI
  4. List of Google user-triggered fetchers · Google Search Central
  5. RFC 9309: Robots Exclusion Protocol · IETF · 2022-09-01
  6. RFC 9421: HTTP Message Signatures · IETF · 2024-02-01
  7. A Vocabulary For Expressing AI Usage Preferences (draft-ietf-aipref-vocab-06) · IETF (Internet-Draft)
  8. Block AI bots — Cloudflare Bots docs · Cloudflare
  9. Bot reference — Cloudflare AI Crawl Control docs · Cloudflare
  10. User agent categories — Netlify docs · Netlify

Secondary

  1. The crawl-to-click gap: Cloudflare data on AI bots, training, and referrals · Cloudflare
  2. Your site, your rules: new AI traffic options for all customers · Cloudflare
  3. The rise of the AI crawler · Vercel / MERJ
  4. OpenAI Updates Its ChatGPT Crawler OAI-SearchBot · Search Engine Roundtable

Tertiary[observation]

  1. State of the Bots (Q3/Q4 2025)
Last updated: 2026-07-18 Authors: Ray Yang Topic: Infrastructure