ChatGPT-User
ChatGPT-User is the user agent ChatGPT uses when a person asks ChatGPT or a custom GPT a question and it visits a web page to answer. It is not an automatic crawler: each visit is triggered by a user action.
ChatGPT-User at a glance
| Owner | OpenAI |
| Purpose | Visits web pages for user actions in ChatGPT and custom GPTs |
| User agent string | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot |
| robots.txt token | ChatGPT-User |
| IP verification | OpenAI publishes IP ranges: openai.com/chatgpt-user.json |
| Runs JavaScript | Not documented by OpenAI |
| Respects robots.txt | Not always. OpenAI says that because these actions are initiated by a user, robots.txt rules may not apply. |
What a ChatGPT-User visit means for your site
Of all OpenAI's agents, ChatGPT-User is the closest thing to a direct measure of ChatGPT using your content for a real person. A hit means someone in ChatGPT triggered a fetch of that page.
What it does not tell you:
- what the person asked, or what ChatGPT answered,
- whether the answer linked to or cited your page,
- whether your page appears in ChatGPT search. OpenAI says ChatGPT-User is not used to decide that. Search inclusion is controlled by OAI-SearchBot.
A useful comparison is ChatGPT-User reads against visits that arrive from chatgpt.com. A page that is read often but rarely clicked may be answering the question on its own. Sitenumbers shows this as read vs clicked.
How to allow or block ChatGPT-User
You can name ChatGPT-User in robots.txt, but OpenAI states the rules may not apply to user-initiated actions. Treat robots.txt as a request here, not a guarantee.
User-agent: ChatGPT-User
Disallow: /To make sure ChatGPT-User can reach your pages, allow its published IP ranges in your firewall or WAF.
To actually stop it, block requests at the server or CDN where the user agent contains ChatGPT-User and the IP is in OpenAI's list. Keep in mind that blocking ChatGPT-User means ChatGPT cannot read your page when a user asks about it.
To control ChatGPT search and model training, use the separate tokens:
# Appear in ChatGPT search
User-agent: OAI-SearchBot
Allow: /
# Opt out of model training
User-agent: GPTBot
Disallow: /Check your site's AI crawler access
How to find and verify ChatGPT-User in your logs
- Find requests whose user agent contains
ChatGPT-User:
grep -i "chatgpt-user" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn- Check each IP against OpenAI's published list. A ChatGPT-User user agent from an IP outside the list is not OpenAI.
import ipaddress, json, sys, urllib.request
url = "https://openai.com/chatgpt-user.json"
prefixes = json.load(urllib.request.urlopen(url))["prefixes"]
nets = [ipaddress.ip_network(p.get("ipv4Prefix") or p.get("ipv6Prefix")) for p in prefixes]
ip = ipaddress.ip_address(sys.argv[1])
print("on OpenAI's list" if any(ip in n for n in nets) else "not on the list")How Sitenumbers shows ChatGPT-User
ChatGPT-User visits do not appear in JavaScript analytics, so Sitenumbers counts them on your server or CDN with a Cloudflare Worker or an nginx log shipper. The AI crawler table shows ChatGPT-User's verified hits, the pages it read, when it was last seen and the last response status. Hits are marked verified when the IP is in OpenAI's published ranges. The IP is used once for that check and then discarded.
| Bot | Verified hits | Pages | Last seen | Status |
|---|---|---|---|---|
| GPTBot | 1,284 | 312 | 2 h ago | 200 OK |
| ClaudeBot | 846 | 207 | 5 h ago | 200 OK |
| OAI-SearchBot | 391 | 118 | 1 day ago | 403 blocked |
| ChatGPT-User | 120 | 34 | 20 min ago | 200 OK |
Visitors who click through from chatgpt.com are counted separately as AI assistant referrals. Some assistant traffic arrives without a referrer and shows as direct; the dashboard flags this instead of guessing.
FAQ
What is ChatGPT-User?
ChatGPT-User is the user agent OpenAI uses when ChatGPT or a custom GPT visits a web page because a user asked a question. OpenAI says it is not used for crawling the web automatically.
Is ChatGPT-User the same as GPTBot?
No. GPTBot crawls content that may be used to train OpenAI's models. ChatGPT-User fetches pages for a user's request. OAI-SearchBot indexes pages for ChatGPT search. Each has its own robots.txt token.
Does ChatGPT-User respect robots.txt?
OpenAI says robots.txt rules may not apply, because the actions are initiated by a user. To manage search and automatic crawling, OpenAI points to OAI-SearchBot in robots.txt.
Does blocking ChatGPT-User remove me from ChatGPT search?
No. OpenAI says ChatGPT-User is not used to decide whether content may appear in search. Search is controlled with OAI-SearchBot.
How can I tell if a ChatGPT-User request is real?
Check that the source IP is in OpenAI's published list at openai.com/chatgpt-user.json. The user agent alone can be faked.