AI bots · OpenAI ChatGPT-User: fetches for people using ChatGPT
ChatGPT-User is not a crawler that walks the web: it loads a page because a person in ChatGPT asked. Here is what OpenAI publishes about it, with sources, and what you can and cannot control.
- Fetches on a user’s request
- robots.txt: partly
- Official IP list
ChatGPT-User at a glance
What OpenAI publishes about ChatGPT-User, with a link to the page each fact comes from. Copy the robots.txt rule you need, or check whether an IP really belongs to it.
What the operator says about ChatGPT-User
Each row links to the page it comes from. “Not published” means we could not find it in the operator’s own documentation.
| Fact | Value | Source |
|---|---|---|
| Operator | OpenAI | Source |
| Official documentation | developers.openai.com | Source |
| robots.txt token | ChatGPT-User | Source |
| What it is used for | Fetches on a user’s requestOpenAI says ChatGPT-User visits web pages for actions users take in ChatGPT and Custom GPTs, including GPT Actions. It is not used to crawl the web automatically. | Source |
| Follows robots.txt | PartlyOpenAI says that because these visits are started by a user, robots.txt rules may not apply. | Source |
| Official IP list | openai.com/chatgpt-user.json | Source |
| How to verify | IP listOpenAI publishes ChatGPT-User’s IP ranges in chatgpt-user.json and no reverse-DNS hostname, so check the source IP against that list. | Source |
| Checked on | — |
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/botAs published by the operator. OpenAI labels this the full user-agent string.
robots.txt rules
Add one of these groups to the end of your robots.txt. The token is matched case-insensitively.
User-agent: ChatGPT-User
Disallow: /User-agent: ChatGPT-User
Allow: /A group named for ChatGPT-User replaces your User-agent: * rules for it. To keep it out of one folder only, change / to that folder, e.g. Disallow: /private/.
Check a request really came from ChatGPT-User
Check an IP against the official list
Open openai.com/chatgpt-user.json, copy everything and paste it below with the IP from your log. The check runs in your browser.
JSON or one range per line. IPv4 and IPv6 ranges are both read.
Paste an IP address to check it.
Also from the operator’s documentation
- ChatGPT-User does not decide whether content appears in ChatGPT search; OpenAI points to OAI-SearchBot for search opt-outs. Source
Version v1.0Updated Update history
Four facts that decide what to do
Every crawler page has the same table. These four rows answer most questions about a crawler.
What it is used for
Training, search or a user’s request. Blocking a training crawler keeps your pages out of future models; blocking a search crawler also removes you from answers that would have linked back.
Follows robots.txt
“Yes” is the operator’s own statement. “Partly” usually means fetches a person starts may skip robots.txt — ChatGPT-User, Perplexity-User and meta-externalfetcher say so.
Official IP list / reverse DNS
The only way to tell a real crawler from one that copies its user agent. If neither is published, the user agent is just a claim.
Not published
We could not find it in the operator’s own documentation. We do not fill gaps from third-party lists — those disagree with each other and go stale.
Facts were checked against the operators’ pages on the date shown on each crawler page. Operators change their docs; the source link is the place to confirm.
From a name in your logs to a rule
Four steps, all in the browser.
-
1
Find the crawler
Type the name from your logs or the company you are thinking of. Filter by purpose to see, say, every AI training crawler.
-
2
Open its page
Read what the operator says it is for and whether it follows robots.txt. Copy its official user agent to compare with your logs.
-
3
Build the rules
Tick crawlers in the table, choose Block or Allow, then copy or download the robots.txt groups.
-
4
Check the effect
Test the file with the robots.txt tester, and use the IP check on a crawler page to confirm a request is genuine.
How crawlers are grouped and how robots.txt applies
The directory groups crawlers the way TapCub’s bot rules do. robots.txt matching follows RFC 9309: a crawler obeys the one group whose User-agent matches its token, and only falls back to * when no group names it.
- A crawler with its own group ignores every
User-agent: *rule - Tokens are matched without regard to case; a typo matches nothing
- Some names are tokens only — Google-Extended and Applebot-Extended never visit
- Agents without a published token cannot be addressed in robots.txt at all
| Group | What it does | Effect of blocking |
|---|---|---|
| AI training | Collects pages for model training or datasets | Your future pages stay out of that operator’s training, if it follows robots.txt |
| AI search | Indexes pages for AI answers with links | You stop appearing as a cited source |
| AI agent | Opens a page for a person’s request | Assistants cannot open your page — when the agent honours robots.txt at all |
| Search engine | Classic search index | You leave that search engine; some, like Bing, also feed AI answers |
How four robots.txt files treat ChatGPT-User
ChatGPT-User reads the group whose User-agent line matches ChatGPT-User (case does not matter). If there is none it falls back to User-agent: *.
| robots.txt | Result for ChatGPT-User | Why |
|---|---|---|
User-agent: ChatGPT-User Disallow: / | Blocked | Its own group disallows the whole site. |
User-agent: * Disallow: / | Blocked | No group of its own, so it inherits the wildcard. |
User-agent: * Disallow: / User-agent: ChatGPT-User Allow: / | Allowed | A named group replaces the wildcard completely; the * rules no longer apply to it. |
User-agent: ChatGPT-User Disallow: /private/ | Allowed except /private/ | Only paths that start with /private/ are off limits. |
OpenAI says robots.txt may not apply to requests a person triggers, so treat these results as a request rather than a guarantee.
Where AI crawler policies go wrong
Most problems come from the token or from what the crawler actually is.
Using a company name as the token
“OpenAI”, “Anthropic” or “ChatGPT” are not tokens. Use the exact token from the directory — GPTBot, ClaudeBot, OAI-SearchBot.
Blocking search with training
Blocking OAI-SearchBot or PerplexityBot removes you from AI answers that would link back. Decide per crawler, not per company.
Trusting the user agent
Anyone can send “GPTBot” in a header. Without an IP or reverse-DNS check the request is unverified.
Blocking by IP and losing the opt-out
Anthropic and Cohere warn that blocking their IPs stops them reading robots.txt, so the opt-out may not stick.
See which crawlers actually came
The directory tells you what crawlers say they do. TapCub separates humans from bots with five detection layers and 197+ rules, and reports AI crawlers on their own.
Bot and AI crawler report
User agent, headers, client signals, ASN and rate — five layers that keep bots out of your human numbers.
Learn moreAI content ledger
Pages each AI crawler read next to the visitors it sent back.
Learn moreCrawl health and compliance
Compare robots.txt and llms.txt with what actually crawled you — evidence for a decision.
Learn moreChatGPT-User questions
Still have a question?
Chat with the team behind TapCub — we usually reply within a few hours on business days.
What is ChatGPT-User?
ChatGPT-User is run by OpenAI. OpenAI says ChatGPT-User visits web pages for actions users take in ChatGPT and Custom GPTs, including GPT Actions. It is not used to crawl the web automatically.
Does ChatGPT-User respect robots.txt?
OpenAI says that because these visits are started by a user, robots.txt rules may not apply.
How do I block ChatGPT-User?
Add User-agent: ChatGPT-User and Disallow: / to robots.txt. OpenAI says robots.txt may not apply to every request from it, so if it must stay out, block it on the server or firewall as well.
How can I tell a request really came from ChatGPT-User?
OpenAI publishes ChatGPT-User’s IP ranges in chatgpt-user.json and no reverse-DNS hostname, so check the source IP against that list.
Why does ChatGPT-User still visit after I disallowed it?
OpenAI says robots.txt may not apply to visits a user starts. If you need it out, block the IPs in chatgpt-user.json on your server or firewall — ChatGPT will then fail to open your pages for people who ask about them.
Does a ChatGPT-User visit count as a human pageview?
It should not. A person triggered it, but the request comes from OpenAI’s servers, not their browser. TapCub’s bot rules count it as an AI agent, separate from human visitors.
Update history
New features, fixes and data refreshes for this tool, newest first.
-
· v1.0
LaunchedFirst release.
Data this tool relies on
- Bot and AI crawler rules (same as the TapCub product) — checked 2026-11-10, reviewed every 3 months (next review by 2027-02-10)
- AI crawler operator documentation — checked 2026-11-09, reviewed every 3 months (next review by 2027-02-09)
Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates
Rules state intent. Logs show behaviour.
Install the ≈2 KB script and TapCub separates humans, search engines and AI crawlers from the first visit — free plan included.