GPTBot vs ChatGPT-User/2.0: Which AI Crawler Should You Allow or Block?
Complete side-by-side comparison of GPTBot (OpenAI) and ChatGPT-User/2.0 (OpenAI): user-agent strings, safety ratings, SEO impact, and copy-paste blocking rules. Updated August 2026.
Quick Verdict
Both GPTBot and ChatGPT-User/2.0 carry the same safety rating (Safe). Your decision should come down to whether you want your content used by OpenAI versus OpenAI, and whether each bot's purpose (training, search, or user requests) aligns with your content strategy.
| Attribute | GPTBot | ChatGPT-User/2.0 |
|---|---|---|
| Operator | OpenAI | OpenAI |
| User-agent string | GPTBot |
ChatGPT-User |
| Category | AI & LLM Bots | AI & LLM Bots |
| Safety rating | Safe | Safe |
| SEO impact if blocked | Low - No SEO ranking impact | Low - No SEO ranking impact |
| Recommendation | Generally safe to allow; provides legitimate crawling value. | Block this bot - it provides no SEO benefit and wastes crawl budget. |
| Official docs | GPTBot docs | ChatGPT-User/2.0 docs |
What is GPTBot?
GPTBot is OpenAI's training crawler. The full profile covers the rest.
What is ChatGPT-User/2.0?
ChatGPT-User is the agent ChatGPT and Custom GPTs use when a person asks them to visit a page. The full profile covers the rest.
GPTBot vs ChatGPT-User/2.0 by the numbers
GPTBot is a training crawler and ChatGPT-User/2.0 is a user-triggered agent. They do different jobs, so a sensible policy often treats them differently. Both are run by OpenAI, which is exactly why they have separate tokens: the operator expects site owners to want different answers for each.
| Measure | GPTBot | ChatGPT-User/2.0 |
|---|---|---|
| robots.txt token | GPTBot | ChatGPT-User |
| What it does | collects pages to train AI models | fetches a page when a person asks an assistant or app to open it |
| Crawler type | a training crawler | a user-triggered agent |
| Priority tier | Tier 1 | Tier 1 |
| Follows robots.txt | Yes, per operator | With exceptions |
| Top-10k robots.txt files | 1,008 named (18.1%), 859 blocked (15.4%) | 661 named (11.8%), 530 blocked (9.5%) |
| Blocked by top 1k / middle / tail | 20.4% / 15.5% / 14.5% | 13.4% / 10.1% / 8.4% |
In our robots.txt study of the Tranco top 10,000 (5,583 valid files, fetched October 20, 2026), GPTBot is blocked more often than ChatGPT-User/2.0: 859 files against 530. That gap shows many site owners already treat the two differently.
Writing rules for both
Because each crawler reads only the group that names it, you can give GPTBot and ChatGPT-User/2.0 different answers in the same file. A common pattern, refusing training while allowing search and assistant fetches, looks like this for these two:
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Allow: /
- One group each. Do not rely on
User-agent: *to cover either crawler if you have named the other; name both. - Copy shared rules. Any
Disallowlines from the*group that should still apply must be repeated in each named group. - Mind the edge. A bot manager can refuse one and admit the other regardless of robots.txt.
- Verify both. The AI visibility checker shows how each is treated on your live site.
Test yourself: if you write User-agent: GPTBot and User-agent: ChatGPT-User on consecutive lines above one Disallow: /, are both blocked?
Yes. Several User-agent lines in a row form one group, and the rules below apply to every name in it.
Test yourself: does blocking GPTBot also block ChatGPT-User/2.0, since both belong to OpenAI?
No. Each token is matched separately, even within one company.
Which to allow, by goal
| Your goal | GPTBot | ChatGPT-User/2.0 |
|---|---|---|
| You want AI answers to cite you | Optional | Allow |
| You want to stop AI training | Block | No effect |
| Your server is under load | Rate-limit | Rate-limit |
| You need search traffic | No effect | No effect |
Block GPTBot if you do not want your content used for training. Allow ChatGPT-User/2.0 if you want AI answers to read and cite your pages.
The rest of each operator's family
OpenAI also runs ChatGPT Agent, ChatGPT Operator, ChatGPT-User, ChatGPT-User/2.0, OAI-AdsBot. Rules for GPTBot do not cover them. OpenAI also runs ChatGPT Agent, ChatGPT Operator, ChatGPT-User/2.0, GPTBot, OAI-AdsBot. Rules for ChatGPT-User do not cover them.
Read the full profiles for both crawlers, linked in the table above, for documentation links, user-agent strings and server-side rules.
Mistakes when writing rules for GPTBot and ChatGPT-User/2.0 together
GPTBot is named in 18.1% of the top-site robots.txt files in our study and blocked in 15.4%; ChatGPT-User/2.0 is named in 11.8% of the top-site robots.txt files in our study and blocked in 9.5%. Large sites block GPTBot more often, which usually reflects a decision about training rather than about ChatGPT-User/2.0.
- They are different kinds of agent (a training crawler versus a user-triggered agent), so the usual error is giving them the same rule out of habit. Blocking both to stop training only needs the GPTBot line; the other one changes something else entirely.
- Both come from OpenAI. Operators change token names and add new agents, so a rule that covers GPTBot and ChatGPT-User/2.0 today can miss the next OpenAI agent; recheck after each announcement.
- Putting
User-agent: GPTBotandUser-agent: ChatGPT-Userin separate groups and then editing only one. Two groups drift apart over time; keep a comment above each that says why it differs from the other.
Each crawler's own profile lists the mistakes that apply to it alone; this list is only about combining the two.
Spotting GPTBot and ChatGPT-User/2.0 in your logs
robots.txt says what GPTBot and ChatGPT-User/2.0 may do; your access logs show what they actually did.
Count requests
On a server with standard Nginx or Apache logs, this counts matching requests per day (adjust the log path for your host):
grep -iE "GPTBot|ChatGPT-User" /var/log/nginx/access.log \
| awk '{print $4}' | cut -d: -f1 | sort | uniq -c
And this shows which paths it requested most, which is the quickest way to see whether your Disallow lines are being respected:
grep -iE "GPTBot|ChatGPT-User" /var/log/nginx/access.log \
| awk '{print $7}' | sort | uniq -c | sort -rn | head -20
Check the requests are genuine
Anyone can send these user-agents, so confirm the source before acting on a match:
GPTBot: compare each address with the ranges atopenai.com/gptbot.json. A request claiming to be GPTBot from outside them is not genuine. Check it separately from ChatGPT-User/2.0.ChatGPT-User: compare each address with the ranges atopenai.com/chatgpt-user.json. A request claiming to be ChatGPT-User/2.0 from outside them is not genuine. Check it separately from GPTBot.
How GPTBot and ChatGPT-User/2.0 moved in our latest scans
Between our scans of October 17, 2026 and October 20, 2026, files naming GPTBot went from 941 to 1,008 (+67) and files blocking it from 789 to 859 (+70), so more sites wrote a rule for GPTBot and more of those rules block it. For comparison, 2026 and October 20, 2026, files naming ChatGPT-User went from 629 to 661 (+32) and files blocking it from 502 to 530 (+28), so more sites wrote a rule for ChatGPT-User and more of those rules block it.
Related: writing content AI engines can cite
Over the 3 days between those scans, blocking of GPTBot moved +70 files and blocking of ChatGPT-User moved +28. Owners are acting faster on GPTBot, which is the one to recheck first if you have not touched your file this month.
We first recorded GPTBot on March 17, 2026. OpenAI documents it on developers.openai.com, and we recheck that page before each release. We first recorded ChatGPT-User on March 17, 2026. OpenAI documents it on developers.openai.com, and we recheck that page before each release.
Among the 104 AI and LLM crawlers in our database, GPTBot sits ninth by priority (Tier 1), level with ChatGPT Agent, ChatGPT Operator, ChatGPT-User, ChatGPT-User/2.0. 81 of the 104 share its safe rating. On the ChatGPT-User/2.0 side: Among the 104 AI and LLM crawlers in our database, ChatGPT-User sits third by priority (Tier 1), level with ChatGPT Agent, ChatGPT Operator, ChatGPT-User/2.0, Claude-SearchBot. 81 of the 104 share its safe rating.
How top sites treat GPTBot and ChatGPT-User/2.0
From our robots.txt study of the Tranco top 10,000 (5,583 valid files, fetched October 20, 2026):
GPTBot, the only one tracked among the GPTBot and ChatGPT-User/2.0 tokens: blocked in 15.4% of files (663 with its own group, 196 throughUser-agent: *), more often by the top 1,000 (20.4%) than the long tail (14.5%).
For scale, 20.1% of all files block at least one AI training crawler. GPTBot is one of the tokens driving that figure.
More questions about GPTBot and ChatGPT-User/2.0
- Can I allow one and block the other?
- Yes. Give each its own
User-agentgroup with its own rules. Each crawler reads only the group that names it. - Which of the two visits more often?
- It depends on your site, your audience and how often your content changes. Your access logs are the reliable answer; the commands above count both.
- How long until a change applies?
- Crawlers commonly cache robots.txt for up to a day, so allow about 24 hours and confirm in your logs.
- Do I need to update my rules when either operator launches a new crawler?
- Often, yes. A new token is not covered by rules written for the old ones. Check this comparison and both profiles periodically, or rerun the AI visibility checker after any announcement.
User-agent: GPTBot or ChatGPT-User?
The GPTBot user agent token is GPTBot and targets training only; ChatGPT-User targets fetches ChatGPT makes when a person asks it to open a page. Copy the block you need: the first opts out of training and keeps ChatGPT able to read your pages on request.
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Allow: /
Frequently asked questions
What is the difference between GPTBot and ChatGPT-User/2.0?
GPTBot is operated by OpenAI (GPTBot is OpenAI's training crawler. OpenAI says it crawls "content that may be used in training our generative AI foundation models".) while ChatGPT-User/2.0 is operated by OpenAI (ChatGPT-User is the agent ChatGPT and Custom GPTs use when a person asks them to visit a page. OpenAI says it "is not used for crawling the web in an automatic fashion".). They use different user-agent strings (GPTBot vs ChatGPT-User) and must be blocked separately in robots.txt.
Should I block GPTBot or ChatGPT-User/2.0?
Both GPTBot and ChatGPT-User/2.0 carry the same safety rating (Safe). Your decision should come down to whether you want your content used by OpenAI versus OpenAI, and whether each bot's purpose (training, search, or user requests) aligns with your content strategy.
Does blocking GPTBot or ChatGPT-User/2.0 hurt SEO?
GPTBot: Low - No SEO ranking impact. ChatGPT-User/2.0: Low - No SEO ranking impact. Neither is a traditional search-ranking crawler, so blocking them does not affect Google or Bing rankings, but it may reduce your visibility in AI-generated answers.
How do I block both GPTBot and ChatGPT-User/2.0?
Add both user-agent groups to your robots.txt: "User-agent: GPTBot" with "Disallow: /" and "User-agent: ChatGPT-User" with "Disallow: /". Remember robots.txt is voluntary; combine with server-level rules for enforcement.
How to block each bot
Block GPTBot in robots.txt
User-agent: GPTBot Disallow: /
Block ChatGPT-User/2.0 in robots.txt
User-agent: ChatGPT-User Disallow: /
Setting GPTBot, ChatGPT-User/2.0 and the rest in one go? Tick both in the robots.txt generator (265+ presets), then confirm the result with the AI crawler checker.
Are GPTBot and ChatGPT-User/2.0 allowed on YOUR site?
Run a free check to see exactly which AI crawlers can access your website, plus your AI Visibility Score.
Free AI Crawler Access Check