Glossary Updated

GPTBot vs OAI-SearchBot vs ChatGPT-User: what’s the difference?

Short answer

OpenAI runs three main user agents. GPTBot crawls pages that may be used to train its models. OAI-SearchBot crawls pages so they can be shown in ChatGPT search, and opting out of it keeps you out of those answers. ChatGPT-User opens a page when a person in ChatGPT asks for it, and OpenAI says robots.txt may not apply to it. Each robots.txt setting is independent, so you can refuse training and still appear in ChatGPT search.

The short answer

OpenAI uses three user agents you will meet in your logs, and each has its own robots.txt token. GPTBot is for training. OAI-SearchBot is for ChatGPT search. ChatGPT-User opens a page because a person asked ChatGPT to. OpenAI says each setting is independent, so a site can allow OAI-SearchBot to appear in search and disallow GPTBot to keep its content out of training (OpenAI, “Overview of OpenAI Crawlers”, read 15 Oct 2026). If both are allowed, OpenAI may use one crawl for both jobs.

The three side by side

Token What it does robots.txt If you block it Published IPs
GPTBot Crawls content that may be used to train OpenAI’s foundation models Followed Your content is marked as not for training. ChatGPT search is unaffected. openai.com/gptbot.json
OAI-SearchBot Crawls pages so they can be surfaced in ChatGPT’s search features Followed; changes take about 24 hours You aren’t shown in ChatGPT search answers (you may still appear as a navigational link) openai.com/searchbot.json
ChatGPT-User Visits a page when a user’s question in ChatGPT or a custom GPT needs it; not automatic crawling May not apply, because a user started it ChatGPT can’t open your page when a user asks for it; search inclusion isn’t affected openai.com/chatgpt-user.json

Source for every row: OpenAI crawlers, read 15 Oct 2026. OpenAI lists a fourth agent, OAI-AdsBot, which only checks landing pages submitted as ChatGPT ads.

The user agent strings, as OpenAI publishes them on 15 Oct 2026 (it says the version numbers may change):

GPTBot:        Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
OAI-SearchBot: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot
ChatGPT-User:  Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
OAI-AdsBot:    Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot

When OAI-SearchBot fetches your robots.txt, its user agent may read …OAI-SearchBot/1.4; robots.txt; +https://openai.com/searchbot, and GPTBot may add a similar robots.txt marker, so those requests stand out in logs that don’t record paths.

Which one decides whether ChatGPT can cite you

For search, it’s OAI-SearchBot. Block it and ChatGPT search has nothing of yours to quote, whatever you do with the others. ChatGPT-User matters when someone pastes your link into a chat: if your CDN returns a 403, ChatGPT can’t read the page even though the person asked for it. GPTBot affects what future models learn, not what ChatGPT search shows today. That makes it the one real choice you have to make; the other two should simply stay open.

Example: a robots.txt that keeps you in ChatGPT

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: GPTBot
Allow: /

Sitemap: https://yoursite.com/sitemap.xml

The first two groups keep search and user-triggered fetches open. The GPTBot group is your training decision: to refuse training and stay in ChatGPT search, change its Allow: / to Disallow: / and leave the other two alone.

A bot follows only the most specific group that names it, so a User-agent: * block elsewhere in the file doesn’t apply to these three once they have their own groups. The same pattern for Claude, Perplexity, Google and the rest is on the AI crawler user agents list.

Test what each bot actually gets

robots.txt is a request; your CDN decides first. Test the door:

  1. Run this from your own machine (replace the URL):
URL=https://yoursite.com/
for ua in \
  "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot" \
  "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot"; do
  printf '%s  %s\n' "$(curl -s -o /dev/null -D - -A "$ua" "$URL" | head -n 1 | tr -d '\r')" "${ua##*compatible; }"
done
  1. Every line should start with HTTP/2 200 (or HTTP/1.1 200). A 403 or a challenge page means a firewall rule matched the user agent; the usual cause is on Cloudflare is blocking AI crawlers.
  2. If curl gets a 200 but your logs never show OpenAI, your firewall may filter by IP. OpenAI recommends allowing the ranges in searchbot.json. A spoofed user agent from your laptop can’t test IP rules.
  3. To check a log entry is genuine, match its IP against the JSON file for that bot. Anyone can type “GPTBot” into a user agent.

The free AI crawler checker runs the same user agent test from your browser.

What Katman does here, and what it can’t

Katman runs inside your AI coding tool. katman_audit_site reads your robots.txt for AI bot rules, tests bot access through your CDN, and tells your coding tool which line or setting to change; katman_generate writes a robots.txt from your own decision on training. Your coding tool makes the change; Katman checks it afterwards. Katman Pro is $99 a month for up to 3 sites, with fix prompts and page briefs uncapped. Or have us do it: Growth writes 30 pages a month for you.

It can’t imitate OpenAI’s IP addresses, so an IP-only rule shows up as “the logs stay empty”, not as a 403. And allowing OAI-SearchBot only opens the door: nobody can promise an assistant will recommend you. If the bots get a 200 and ChatGPT still doesn’t name you, read why ChatGPT doesn’t recommend your brand. Terms used here are defined in the glossary.

Written by the Katman team, Rnify Limited. OpenAI’s crawler page checked 15 October 2026.

Who this is not for

  • Owners who want to block every OpenAI visit: ChatGPT-User may not follow robots.txt, so that needs a firewall rule, which this page doesn’t cover.
  • Questions about Google, Anthropic or Perplexity bots: they are on the full AI crawler user agents list.
  • Proving that ChatGPT will cite you: allowing the right bot is a precondition, not a promise.

Frequently asked questions

Which OpenAI bot do I need to allow to show up in ChatGPT search?

OAI-SearchBot. OpenAI says sites opted out of OAI-SearchBot are not shown in ChatGPT search answers, though they can still appear as navigational links. Allow its IP ranges at your CDN too.

Does ChatGPT-User respect robots.txt?

Not reliably. OpenAI says that because these visits are started by a user, robots.txt rules may not apply. It also says ChatGPT-User doesn’t decide whether content can appear in search.

Can I allow OAI-SearchBot and block GPTBot?

Yes. OpenAI describes the two settings as independent and gives exactly that combination as its example: appear in search, keep your content out of training.

Why do I see “robots.txt” inside an OpenAI user agent in my logs?

OpenAI may add a robots.txt marker to the OAI-SearchBot and GPTBot user agents when they fetch your robots.txt file, so you can tell those requests apart when your logs don’t record paths.

How fast does ChatGPT notice a robots.txt change?

OpenAI says it can take about 24 hours for its search systems to adjust after you update robots.txt. OAI-SearchBot still has to crawl the pages afterwards.

What is OAI-AdsBot?

A fourth OpenAI user agent that only visits landing pages submitted as ads on ChatGPT, to check them against OpenAI’s policies. OpenAI says its data isn’t used to train foundation models.