They are three different OpenAI bots
People search “is my site blocked from ChatGPT” and then block GPTBot. That is the wrong lever for live answers. OpenAI publishes separate user agents for training, live fetches, and search indexing.
GPTBot trains models
GPTBot crawls the public web to collect training data. If you do not want your pages in future model weights, block GPTBot in robots.txt. That choice is common and legitimate. It does not, by itself, stop ChatGPT from fetching your page when a user asks about it.
ChatGPT-User is the live fetch
ChatGPT-User retrieves a URL during a conversation. If this bot is blocked, ChatGPT can still talk about you from memory or other sources, but it cannot pull the current page. For “can ChatGPT open my site right now?”, this is the bot that matters.
OAI-SearchBot vs GPTBot
OAI-SearchBot builds the ChatGPT search index. GPTBot does not. Blocking GPTBot and leaving OAI-SearchBot allowed is a coherent policy: no training corpus, still eligible for ChatGPT search. Blocking OAI-SearchBot while allowing GPTBot does the opposite — you may feed training data and still stay out of search.
If you want to show up in ChatGPT search, allow OAI-SearchBot. If you only care about live browsing in a chat, allow ChatGPT-User. If you want neither, block both search/fetch agents and treat GPTBot as a separate training decision.
Why the badge only fails on search and fetch bots
amisearchable.cc marks a site “AI-Search Ready” when OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot, and Claude-User are not blocked. GPTBot and other training crawlers appear on the report but do not fail the badge.
A pass still only means crawlers are allowed. It does not mean ChatGPT will cite you. See the full user-agent list.
A clear robots.txt split
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /Put more specific groups above or beside your User-agent: * rules. The matching user-agent group wins for that bot.