Does ChatGPT actually read my website?

ChatGPT reaches your site three ways: GPTBot, which crawls for model training; OAI-SearchBot, which builds the index behind ChatGPT search; and ChatGPT-User, which fetches a page live when a user's question requires it. Blocking any of them in robots.txt removes that path. Allow all three, and verify with a live request rather than by reading your config.

The three user agents, and what each does

Three routes in · block one and you lose only that one

AgentPurposeBlocking it means
GPTBotCrawls content for model trainingblocked → Your content is less likely to be in model weights
OAI-SearchBotBuilds the ChatGPT search indexblocked → You are absent from ChatGPT’s retrieval index
ChatGPT-UserLive fetch when a prompt needs the pageblocked → A user asking about your page gets nothing
The three are configured separately, so a 2023 GPTBot opt-out costs you training, not retrieval — OAI-SearchBot did not exist until 2024. A blanket AI block written since removes you from both. Which one you have is a curl away.

Some sites blocked GPTBot when it launched in 2023 to opt out of training, then never revisited the decision. That is a defensible choice on its own, but blocking OAI-SearchBot alongside it removes you from retrieval as well, which is almost never what the brand intended.

What to put in robots.txt

All three agents need an explicit allow, or an allow-all that no later rule narrows:

User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

One trap worth knowing: under RFC 9309 a crawler obeys only its most specific matching group. If you later add a Disallow: under User-agent: *, these three groups will ignore it — which may be what you want, but only if you meant it.

How to verify crawler access

A robots.txt that allows a crawler proves nothing if a bot-management rule challenges it at the edge. Start with the real response:

curl -sI -A "GPTBot" https://yourbrand.com/ | head -1
curl -sI -A "OAI-SearchBot" https://yourbrand.com/ | head -1
curl -sI -A "PerplexityBot" https://yourbrand.com/ | head -1

Anything other than 200 is a problem.

Reachable is not the same as readable

The second failure is rendering. Fetch your page with JavaScript disabled and read what comes back:

curl -s https://yourbrand.com/products/hero | wc -c

If a storefront theme renders product descriptions client-side, the crawler receives a shell. Everything you want quoted needs to be present in the initial HTML response.

Related: How AI crawlers work, structured data.

Find out what AI says about your brand.

Send us your brand and category. We run 20 buyer questions across five engines by hand and send you the transcript within 48 hours.

What arrives
20 questions, 5 engines, every answer quoted in full
Who sends it
Snow Lee, by hand, from Seoul
Your email
Used to send the report and reply about it. Privacy.
Free report · your named rateillustrative
Buyer questionEngineNamed
best Korean sunscreen for oily skinChatGPTnot named
K-beauty sunscreen that does not pillClaudenamed
Korean skincare brands sold at UltaAI Overviewsnot named
…17 more questions, with the verbatim answer and every source cited
Three rows from what the free report looks like. Yours is built from your own category and market.