ChatGPT-User user agent
Operated by OpenAI
ChatGPT-User is the user agent ChatGPT uses when it opens a web page because a user asked a question or shared a link.
The ChatGPT-User bot at a glance
- ChatGPT-User is operated by OpenAI and fetches a page when a person asks an AI assistant about it or shares its link.
- The robots.txt token for ChatGPT-User is ChatGPT-User.
- Blocking an AI assistant fetcher has no effect on search rankings.
- ChatGPT-User robots.txt support: Not for user-requested fetches.
- Recommendation for Generative Engine Optimization (GEO): Allow.
What is ChatGPT-User?
ChatGPT-User visits pages on behalf of a ChatGPT user, for example to read a link the user pasted or to check a page while answering. It is not an automatic crawler and does not decide what appears in ChatGPT search.
OpenAI notes that, because these visits are started by a user, robots.txt rules may not apply to them.
Should you block ChatGPT-User?
Allow ChatGPT-User unless it causes a measurable load problem.
| Effect on search rankings | Blocking an AI assistant fetcher has no effect on search rankings. |
|---|---|
| Effect on AI visibility | Blocking stops the assistant from reading your page when a user asks about it or pastes your link, so its answer falls back to other sources. |
| Follows robots.txt | Not for user-requested fetches |
| Recommendation | Allow |
How to block or allow ChatGPT-User
Put the robots.txt rule in the file at the root of every domain and subdomain, for example https://example.com/robots.txt. The token ChatGPT-User is matched case-insensitively. robots.txt alone may not stop ChatGPT-User, so add the Nginx, Apache or Cloudflare rule as well.
robots.txt: block
# Block ChatGPT-User
User-agent: ChatGPT-User
Disallow: /robots.txt: allow
# Allow ChatGPT-User
User-agent: ChatGPT-User
Allow: /robots.txt: partial
# Keep ChatGPT-User out of private areas only
User-agent: ChatGPT-User
Disallow: /wp-admin/
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Allow: /Nginx
# Nginx: return 403 to ChatGPT-User
if ($http_user_agent ~* "(ChatGPT\-User)") {
return 403;
}Apache
# Apache .htaccess: return 403 to ChatGPT-User
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (ChatGPT\-User) [NC]
RewriteRule .* - [F,L]Cloudflare WAF
# Cloudflare > Security > WAF > Custom rule, action: Block
(http.user_agent contains "ChatGPT-User")How to verify real ChatGPT-User traffic
OpenAI publishes the IP ranges that ChatGPT-User uses. A request with the ChatGPT-User user agent from an IP outside that list is an impersonator.
How to find ChatGPT-User in your server logs
Search the web server access log for the token. The command below counts ChatGPT-User requests per URL on Nginx or Apache.
grep -i "ChatGPT-User" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20For a full report per AI bot, upload the log to the AI Log File Analyzer, a free tool by Justin Hà.
ChatGPT-User user agent string
The full user agent OpenAI publishes for ChatGPT-User. Version numbers such as Chrome/W.X.Y.Z change over time, so match the token, not the whole string.
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/botChatGPT-User FAQ
ChatGPT-User identifies itself with the robots.txt token "ChatGPT-User". A typical request header reads: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
Partly. ChatGPT-User fetches pages because a user asked for them, and OpenAI says robots.txt rules may not apply to those user-requested fetches. Use a firewall rule if you must stop it.
Blocking an AI assistant fetcher has no effect on search rankings. Blocking stops the assistant from reading your page when a user asks about it or pastes your link, so its answer falls back to other sources.
Add two lines to the robots.txt file at the root of each domain and subdomain: "User-agent: ChatGPT-User" followed by "Disallow: /". The token is case-insensitive. Changes can take up to 24 hours to be picked up.
Yes. OpenAI publishes the IP ranges ChatGPT-User uses. Check the request IP against that list; a matching user agent from any other IP is an impersonator.
Search your server access log for "ChatGPT-User", for example with: grep -i "ChatGPT-User" access.log. The AI Log File Analyzer by Justin Hà counts visits per AI bot from an uploaded log file.
Sources: OpenAI crawler documentation. Last reviewed by Justin Hà.
See which of these bots actually reach your website
The AI Log File Analyzer by Justin Hà counts visits from GPTBot, ClaudeBot, PerplexityBot and other AI crawlers in your server log, for free. The GEO Technical Package sets up robots.txt, llms.txt and crawler access for AI search.