PilotOpen protocol for stores.Explore ACP
Skip to content
Back to Guides
Agent Commerce8 min read5 chapters

OpenAI Crawlers: Four Bots and What Each Does

OpenAI runs four crawlers with different jobs and different robots.txt rules. What each one does, how to verify one is genuine, and what to allow.

Cresva Team

Chapter 1How Many Crawlers Does OpenAI Run?

Four, and they do different jobs. As of 3 August 2026, OpenAI documents OAI-SearchBot, OAI-AdsBot, GPTBot and ChatGPT-User. Treating them as one category, which is what a blanket AI-bot rule does, is the single most expensive mistake available here: it takes a defensible decision about training data and silently applies it to the bot that decides whether ChatGPT can recommend you at all.

BotUser-agent tokenWhat it does
OAI-SearchBotOAI-SearchBot/1.4Surfaces websites in search results in ChatGPT's search features. This is the one that decides whether you can be recommended.
OAI-AdsBotOAI-AdsBot/1.0Validates the safety of web pages submitted as ads on ChatGPT. If you buy OpenAI Ads, this bot has to reach your landing pages.
GPTBotGPTBot/1.4Crawls content that may be used in training OpenAI's generative AI foundation models.
ChatGPT-UserChatGPT-User/1.0Visits pages when a person asks ChatGPT or a Custom GPT a question that needs one.

Roster and tokens per OpenAI's crawler documentation, developers.openai.com/api/docs/bots, retrieved 3 August 2026. This roster moves: it went from two documented bots to four inside a year, so check the source rather than any article, including this one, before acting on it.

Two of the four are the ones brands miss. OAI-SearchBot is the recommendation crawler, and blocking it removes you from ChatGPT answers regardless of ad spend. OAI-AdsBot reviews the landing pages you submit as ads, so blocking it can stall campaigns at review while your organic visibility looks fine.

Chapter 2Which Ones Obey Robots.txt?

Not all of them, and the exception is the reason a single blanket rule cannot express what you want. OpenAI's table marks OAI-SearchBot and GPTBot as honouring robots.txt. For ChatGPT-User it says plainly that because these actions are initiated by a user, robots.txt rules may not apply. That is a different contract, and it is the one people are surprised by.

What the documentation does not say

For OAI-AdsBot, OpenAI's page does not state a robots.txt position either way as of 3 August 2026. We are not going to infer one. If you are running OpenAI Ads, do not rely on a robots.txt Allow to guarantee this bot reaches your landing pages, and do not assume a Disallow will stop it either. Check your server logs for the token, which is the only answer specific to your setup. Inferring a contract that a vendor has not published is how a campaign ends up stuck in review with nobody able to say why.

The practical consequence is that robots.txt governs your exposure to crawling, not your exposure to ChatGPT. A user who asks ChatGPT about your product can cause a fetch that robots.txt does not control. If your reason for blocking is legal or contractual rather than about crawl budget, robots.txt is the wrong instrument and you want a server-side or WAF rule.

Chapter 3How Do You Verify a Bot Is Really OpenAI?

By IP, not by user agent. A user-agent string is a claim anyone can make, and impersonating a well-known crawler to get past bot rules is routine. OpenAI publishes a live IP range per bot, which makes verification a lookup rather than a guess.

BotPublished IP ranges
OAI-SearchBotopenai.com/searchbot.json
OAI-AdsBotopenai.com/adsbot.json
GPTBotopenai.com/gptbot.json
ChatGPT-Useropenai.com/chatgpt-user.json

Endpoints as documented on OpenAI's crawler page, retrieved 3 August 2026. Two things follow from these existing. First, traffic claiming to be OAI-SearchBot from outside the published ranges is not OpenAI, and treating it as OpenAI is how a scraper gets whitelisted. Second, if you are going to allow these bots past a WAF, allow them by verified IP rather than by user-agent string, or the allowance is available to anyone who types the token.

Allow by IP, log by token. The published JSON is the only authoritative answer to whether a request was OpenAI, and it is the difference between a bot allowance and an open door.

Chapter 4What Should Your Robots.txt Actually Say?

The configuration most DTC brands actually want separates training from retrieval. Block the training crawler if that is your policy, and explicitly allow the two that decide whether you can be found and advertised. Distinct User-agent groups, distinct rules, and the explicit Allow blocks placed above any wildcard rule so a broad Disallow does not capture them.

  1. Search your robots.txt for OAI-SearchBot

    If the token does not appear at all, you are visible to ChatGPT by default, which is the right state. If it appears under a Disallow, you are structurally invisible to every ChatGPT recommendation including paid ones, and no amount of spend changes that.

  2. Give each bot its own User-agent group

    A single group listing several agents, or a blanket AI-bot rule, cannot express the split you want. Blocking training while allowing retrieval requires two groups, not one.

  3. Add an explicit Allow for OAI-AdsBot if you run ads

    Given the documentation does not state this bot's robots.txt position, an explicit Allow costs nothing and removes one variable if an ad review stalls. It is not a guarantee, which is why the next step exists.

  4. Confirm against your logs, not your intent

    Grep your access logs for each of the four tokens over a week. The presence or absence of real requests is the only evidence your file is doing what you meant, and it is the step that catches a CDN silently overriding you.

The same split exists for other assistants and is worth setting at the same time. Anthropic documents three bots, ClaudeBot for training, Claude-SearchBot for search indexing and Claude-User for user-initiated fetches. Perplexity documents two, PerplexityBot for indexing and Perplexity-User, which Perplexity states generally ignores robots.txt. Both rosters were read from those vendors' own documentation on 3 August 2026 and both are worth re-checking on the same cadence as OpenAI's.

Chapter 5Why Your CDN Can Override All of It

Because a CDN refuses the request before your origin is involved, so robots.txt is never read. This is the failure that survives a correct robots.txt, and it is invisible in your own analytics for the same reason: the request never reaches you, so it produces no session, no error and no line on any dashboard.

The Cloudflare model, as of 3 August 2026

Cloudflare retired its single block-all-AI-bots switch on 1 July 2026 and replaced it with three categories. Search is behaviour that collects or indexes content to answer questions about it later. Training is a crawler taking content to train or fine-tune a model. Agent is automated behaviour acting in real time on a person's behalf. Search is allowed by default. From 15 September 2026, new domains onboarding to Cloudflare block Training and Agent by default on pages that display ads, while Search stays allowed. Source: blog.cloudflare.com, 1 July 2026.

The trap is that this is a change to defaults, not a retroactive fix. A domain that enabled the older blanket rule any time after summer 2024 is still running whatever that rule was set to, and that rule predates the split between the search and training crawlers entirely. Open the dashboard and read the Search category directly rather than assuming the July change reset it for you.

Check the file, then check the edge, then check the logs. Those are three different systems and any one of them can silently veto the other two. The logs are the only one that tells you what actually happened rather than what you configured.

The free growth audit runs this against a URL you give it: whether an automated client can open your store at all, what your robots.txt says, and whether your product data is readable once it gets there. No account connection, public surfaces only.

Written by the Cresva Team. Questions? Email us.