GPTBot: what it is, its user agent, and how to block it in robots.txt.
GPTBot is the crawler that collects web pages for training ChatGPT's models. It is not the bot that decides whether ChatGPT search shows your site. That job belongs to OAI-SearchBot, and a third bot, ChatGPT-User, may not read robots.txt at all. Most “block AI” templates lump all of them together. This guide covers what each bot does, the user agent strings, the exact rules, and how to decide.

What is GPTBot?
GPTBot is OpenAI's web crawler for model training. It crawls public pages that may be used to train OpenAI's generative AI foundation models and identifies itself with the user agent token GPTBot (current string: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot). It is not the bot behind ChatGPT search: OAI-SearchBot crawls for that, and ChatGPT-User fetches a page when someone in ChatGPT asks for it. Each robots.txt setting is independent. To keep your pages out of training while staying visible in ChatGPT search, add 'User-agent: GPTBot' and 'Disallow: /' to robots.txt on every host and leave OAI-SearchBot allowed. Blocking GPTBot has no effect on Google rankings.
The SEO Agent picks keywords from live search data, writes one source-checked article a day and publishes it to your site. Enter your site to start.
Free trial · Cancel in one click- 01What GPTBot is, and who runs it.
- 02GPTBot vs OAI-SearchBot vs ChatGPT-User: four OpenAI bots, four jobs.
- 03The GPTBot user agent, and how to verify a real visit.
- 04How to block GPTBot in robots.txt (and how to allow it).
- 05Should you block GPTBot? Training vs ChatGPT visibility.
- 06GPTBot vs ClaudeBot and the other AI crawlers.
- 07How GPTBot gets blocked without anyone deciding to.
- 08A worked example: one robots.txt, fixed.
- 09Common mistakes when blocking or allowing GPTBot.
1. What GPTBot is, and who runs it.
GPTBot is the web crawler run by OpenAI, the company that makes ChatGPT. Its crawler documentation says it is used to crawl content that may be used in training OpenAI's generative AI foundation models, and that disallowing it indicates a site's content should not be used for that training. It does not answer anyone in real time, and it does not decide what ChatGPT shows when it searches the web. Section two covers the bots that do.
It has been around since August 2023, when it launched with a two-line opt-out: “User-agent: GPTBot” and “Disallow: /”. The launch documentation said crawled pages were filtered to remove paywalled sources, sources known to aggregate personal data, and text that breaks the company's policies. Every request carries the token GPTBot, it reads robots.txt before it crawls, and it comes from a published list of IP addresses (section three).
It is also one of the busiest crawlers on the web. Cloudflare reported that GPTBot made up 11.7% of AI and search crawler traffic across its network in July 2025, up from 4.7% a year earlier, and 28.1% of traffic from AI crawlers alone. Vercel counted 569 million GPTBot requests across its network in a single month in late 2024. And an analysis of more than 7 billion log events from large sites, published in April 2026 by Chris Long of Nectiv with Botify, found GPTBot activity up about 2.9 times after August 2025.
That growth is why the robots.txt question keeps coming up. But the same study found OAI-SearchBot, the search crawler, growing even faster (about 3.5 times), which is the first hint that GPTBot is the wrong lever for anyone who cares about showing up in ChatGPT's answers.
If you came here for the other side of the name, using ChatGPT in your own content work, that is a different page: our guide to using ChatGPT for SEO work covers the setups and prompts. This page is about the bot that reads your site.
2. GPTBot vs OAI-SearchBot vs ChatGPT-User: four OpenAI bots, four jobs.
OpenAI's crawler page lists four user agents, and it says plainly that each setting is independent of the others. Here is what each one does, how it treats robots.txt, and what a block costs you, as of October 15, 2026:
| Bot | What it does | robots.txt | What blocking it does |
|---|---|---|---|
| GPTBot | Crawls public pages that may be used to train foundation models | Honored | Signals your content should not be used for training. No effect on ChatGPT search |
| OAI-SearchBot | Crawls pages to surface them in ChatGPT's search features | Honored, about 24 hours to take effect | Pages are not shown in ChatGPT search answers, but can still appear as navigational links |
| ChatGPT-User | Visits a page when a ChatGPT or custom GPT user asks, and runs GPT Actions | May not apply (user-initiated) | Unreliable through robots.txt, and it does not decide search inclusion |
| OAI-AdsBot | Checks landing pages submitted as ads on ChatGPT | Not stated | Only visits pages submitted as ads. Its data is not used for training |

The split matters because each bot pays you back differently. GPTBot feeds what the model knows by itself, months later. OAI-SearchBot decides whether your pages are in the pool ChatGPT search draws from, and it is the one the crawler page recommends allowing if you want to appear in search results. ChatGPT-User shows up when a person asks ChatGPT about your page, which is the closest of the four to a real visitor. Which crawl feeds which kind of answer is the practical core of LLM SEO.
Three details catch people out. First, ChatGPT-User is not used to decide what appears in search, and because a person triggers each visit, the crawler page says robots.txt rules may not apply to it. Second, a site that opts out of OAI-SearchBot is kept out of ChatGPT search answers but can still appear as a navigational link. Third, when a site allows both GPTBot and OAI-SearchBot, the two can share one crawl to avoid fetching the same page twice, so fewer GPTBot hits in your logs is not proof of a block.
OAI-AdsBot is the newest of the four. It only visits landing pages submitted as ads on ChatGPT, and its data is not used for training. ChatGPT's agent mode is not on the list at all: it identifies itself by signing its requests (a Signature-Agent header pointing at chatgpt.com) rather than with a token you can name in robots.txt.
3. The GPTBot user agent, and how to verify a real visit.
These are the strings the crawler page shows on October 15, 2026. GPTBot is first; note that OAI-SearchBot uses a full Chrome-style prefix while the other three do not:
# 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/adsbotMatch on the token, not the full string. The version number moves (launch-era copies of the GPTBot string read 1.0, today it is 1.4), and when GPTBot or OAI-SearchBot fetches robots.txt it may add an extra “robots.txt” marker to the string, so that log lines without paths still show which requests were for the rules file. robots.txt itself only ever uses the token (“User-agent: GPTBot”).
Then verify. Anyone can put GPTBot in a user agent header, and scrapers do, because some sites wave known crawlers through. Each bot crawls from its own published IP list. The GPTBot file at openai.com/gptbot.json, checked for this guide on October 15, 2026, was generated on September 22, 2026 and lists 18 IPv4 ranges. The OAI-SearchBot list (searchbot.json) has 39 and the ChatGPT-User list (chatgpt-user.json) has 234, and that last one changes often. A request that says GPTBot from an address outside its list is not GPTBot, and blocking it costs you nothing.
curl -s https://openai.com/gptbot.json | jq -r '.prefixes[].ipv4Prefix'To see which of the four bots visit and from where, pull the source IPs out of your access log. In the common combined log format the client IP is the first field:
grep -E "GPTBot|OAI-SearchBot|ChatGPT-User|OAI-AdsBot" access.log \
| awk '{print $1}' | sort | uniq -c | sort -rn | head -20Use the IP lists to catch fakes, not as your training opt-out: robots.txt is the documented signal, and an IP block also stops the bot from reading your rules. Log checks like this one belong with the crawl-access checks in a technical SEO audit, where you already confirm Googlebot can reach what you want ranked.
4. How to block GPTBot in robots.txt (and how to allow it).
robots.txt lives at the root of each host, for example example.com/robots.txt. blog.example.com reads its own file, not the one on example.com, so every subdomain needs its own copy. The four rules most sites need come first, then the trap that breaks them.
User-agent: GPTBot
Disallow: /User-agent: GPTBot
User-agent: OAI-SearchBot
Disallow: /User-agent: GPTBot
Disallow: /members/
Disallow: /courses/User-agent: *
Disallow: /
User-agent: OAI-SearchBot
Allow: /Several User-agent lines above one set of rules give all of those bots the same rules, which is how rule 2 covers two bots at once. Rule 4 shows why OAI-SearchBot needs its own group on a locked-down site: without it, the wildcard block catches it too. Changes to the OAI-SearchBot group take about 24 hours to show in ChatGPT search.

Two lines you will see in templates and should not rely on. Crawl-delay: the crawler page does not mention it for any of the four bots, so if server load is the problem, rate-limit at your server or CDN instead. And a ChatGPT-User group: robots.txt may not apply to user-initiated visits, so if you truly need them stopped, block the chatgpt-user.json ranges at the edge, knowing that people asking ChatGPT about your page will then get nothing.
One rule trips up more sites than any other. Under the robots.txt standard (RFC 9309), a crawler follows the group that names it and ignores the wildcard group entirely. So the moment you add a GPTBot group, everything in your “User-agent: *” group stops applying to GPTBot:
User-agent: *
Disallow: /admin/
User-agent: GPTBot
Disallow: /drafts/
# GPTBot now ignores the * group above,
# so /admin/ is open to it unless repeated here.The fix is to repeat every private path inside each named group. It is dull, and it is the line people forget. robots.txt is one item on a much longer list; the rest of the crawl and indexing basics are in our SEO checklist.
5. Should you block GPTBot? Training vs ChatGPT visibility.
Start with what blocking does not do. It does not touch Google rankings: Google Search crawls with Googlebot, and GPTBot plays no part in it. And it does not remove you from ChatGPT search, because OAI-SearchBot does that crawling under its own rules. A GPTBot-only block leaves your ChatGPT search visibility exactly where it was.
What it does is keep your future pages out of training. That cost shows up slowly. When someone asks ChatGPT a question and it answers without searching, the answer comes from what the model learned in training. Launch a product, change your pricing or publish your best guide after the block, and the model's own knowledge of you stops at the block. Only a search can fill the gap. How often your buyers ask without search is the question to answer first; the AI SEO statistics we track are a starting point.

The case for blocking is the exchange rate. Cloudflare tracks how many pages each AI company crawls for every visit it sends back. For the company behind ChatGPT it measured about 1,217 crawls per referral in January 2025 and about 1,091 in July 2025, against about 38,066 for Claude's maker and about 195 for Perplexity that month. So every visitor ChatGPT sends you costs about a thousand page fetches, and most of that crawling is training: 79% of all AI bot crawling in July 2025, by Cloudflare's count.
Most sites still let GPTBot in. Known Agents, which scans the robots.txt files of the top 1,000 websites every day, reported on October 14, 2026 that 21% of them block it. How to choose:
- Block GPTBot, allow OAI-SearchBot. Publishers and anyone whose content is the product (paid archives, licensed data, course material) who wants it out of training but still found when someone asks ChatGPT to search.
- Allow both. SaaS, ecommerce, agencies and most brands. You want the model to know what you sell, and training is the only route into answers given without a search.
- Block both. Sites that want no reuse by ChatGPT at all and accept zero presence in its answers, bar the odd navigational link.
- Rate-limit instead of blocking. If the problem is server load rather than reuse, throttle at the server or CDN. Crawl-delay is not a documented option here.
If ChatGPT answers matter to you, letting OAI-SearchBot in is the start, not the strategy. The pages still have to be the ones worth citing, which is what ranking in ChatGPT comes down to, and the direct-answer format behind it is covered in answer engine optimization.
6. GPTBot vs ClaudeBot and the other AI crawlers.
The other big assistants split their bots the same way: one for training, one for a search index, one for fetches a user asks for. The tokens differ, and each one needs its own robots.txt line. The ones that matter most for an AI-visibility decision:
| Token | Product | Job |
|---|---|---|
| GPTBot | ChatGPT | Training data |
| OAI-SearchBot | ChatGPT | Search index |
| ChatGPT-User | ChatGPT | Fetch a user asked for (robots.txt may not apply) |
| OAI-AdsBot | ChatGPT | Ad landing page checks |
| ClaudeBot | Claude | Training data |
| Claude-SearchBot | Claude | Search index |
| Claude-User | Claude | Fetch a user asked for |
| PerplexityBot | Perplexity | Search index |
| Perplexity-User | Perplexity | Fetch a user asked for (documented as generally ignoring robots.txt) |
| Google-Extended | Gemini | Control token for Gemini use, not a separate crawler |
| CCBot | Common Crawl | Open web archive many models train on |
ClaudeBot is the closest match to GPTBot: a training crawler with a search bot and a user fetcher beside it, and blocking one does nothing to the others. One difference is worth knowing. Claude's three bots all honor robots.txt and the Crawl-delay directive, while robots.txt may not apply to ChatGPT-User at all. The exact rules per bot are in our ClaudeBot guide.
Two more rows behave differently from the rest. Google-Extended is not a crawler at all: Googlebot does the fetching, and the token only tells Google whether that content may be used for Gemini. Google says it does not affect inclusion or ranking in Google Search, and AI Overviews draw on Googlebot's crawl either way (more in our guide to ranking in Google's AI Mode). And Perplexity documents that Perplexity-User generally ignores robots.txt, for the same reason ChatGPT-User may: a person asked for the page.
The practical rule: decide per job, not per company. A common pattern is to block the training crawlers (GPTBot, ClaudeBot and CCBot) and leave every search crawler open. Some sites also publish an llms.txt file alongside robots.txt; it is a reading list, not an access rule, and no bot treats it as one. Which assistants your buyers actually use is covered in our roundup of AI search engines.
7. How GPTBot gets blocked without anyone deciding to.
Plenty of sites block the ChatGPT bots by accident, and the most common cause is not robots.txt. Since July 1, 2025, Cloudflare has blocked known AI crawlers by default on newly onboarded domains. On September 15, 2026 it moved to three categories (Search, Agent and Training): the new defaults block Training and Agent crawlers on pages that show ads and leave Search crawlers allowed. GPTBot counts as Training and ChatGPT-User as Agent. A block at the edge means the bot never reaches your robots.txt, so check the CDN dashboard before you edit the file.
The other usual suspects: a security plugin or firewall rule that blocks by user agent, a “Disallow: /” left over from a staging site, a wildcard group that blocks everything with no OAI-SearchBot group to override it, and an IP blocklist that happens to catch the published ranges.
The last one is not a block at all. Vercel's December 2024 analysis found that none of the major AI crawlers render JavaScript, GPTBot included, and that 34.82% of ChatGPT's crawler requests hit 404 pages. If your content only appears after client-side JavaScript runs, every OpenAI bot can be allowed and still read an empty shell. Server-render the pages you want read. A five-minute check:
- Open /robots.txt on every host and find each group that names an OpenAI bot, plus the wildcard group.
- Check the AI crawler or bot settings in your CDN, host and security plugin.
- Search a week of access logs for the four tokens (section three).
- Check the source IPs against the published lists.
- View the source of a key page with JavaScript turned off and confirm the text is there.
For the Googlebot side of the same checks, run a free SEO audit on the domain. ChatGPT is one surface among many now, and the full map of where people search is in search everywhere optimization.
A worked example: one robots.txt, fixed.
Take a fictional online course company, Brindle Academy, that sells bookkeeping courses. It has a marketing site and free guides on www, a blog subdomain, paid lessons under /lessons/ and a logged-in app under /app/. The company and its numbers are invented; the rules and how the bots treat them are real. The goal was simple: keep the course material out of AI training while staying visible when someone asks ChatGPT for the best bookkeeping course. Someone pasted a “block AI” template:
User-agent: *
Disallow: /app/
User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
Disallow: /It blocks training, and it also blocks OAI-SearchBot, the opposite of the goal. Within a day of the change, Brindle's guides stopped appearing in ChatGPT search answers, leaving only the occasional navigational link. Two weeks of logs on www showed OAI-SearchBot requesting robots.txt (with the robots.txt marker) and nothing else, while ChatGPT-User still fetched 19 pages, because the ChatGPT-User line was never a reliable block. The fixed file:
User-agent: *
Disallow: /app/
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Disallow: /app/
Disallow: /lessons/Unchanged. Every crawler without a named group stays out of the logged-in app.
Training only. Future pages, lessons included, are flagged as not for training, which was the goal.
Allowed everywhere except /app/ and /lessons/. The Disallow: /app/ line is repeated on purpose: a named group replaces the wildcard group, so without it the search bot could crawl the app's login and signup paths. Blocking /lessons/ keeps paid material out of search snippets while the free guides stay in.
Removed. It does not decide search inclusion and robots.txt may not apply to it, so it only gave the team false confidence. The paid lessons sit behind a login, which is the control that actually holds.
blog.brindleacademy.com serves its own robots.txt, so the same groups were copied there. The first version of the fix only touched www, and the blog stayed out of ChatGPT search for another week.
In the 14 days after the change, OAI-SearchBot fetched 187 pages on www and 64 on the blog, and GPTBot fetched robots.txt and nothing else. Every request checked out against the published IP lists. The same check caught a scraper sending the GPTBot name from a residential IP range, which the team blocked at the firewall without touching robots.txt.
The rules took an afternoon. The harder finding was what OAI-SearchBot had to work with: nine of the free guides were thin pages written years earlier, and two still quoted last year's course prices. Being crawlable is not the same as being cited. To see whether the fix turns into mentions, one of the AI visibility tools can track how often ChatGPT names you over the following months.
Common mistakes when blocking or allowing GPTBot.
- Blocking OAI-SearchBot to stop training. Training is GPTBot's job alone. Adding OAI-SearchBot to the block removes you from ChatGPT search answers and protects nothing extra.
- Blocking GPTBot and expecting to leave ChatGPT search. The reverse mistake. Search runs on OAI-SearchBot, so a GPTBot block leaves your pages in search answers.
- Trusting a ChatGPT-User line. The crawler page says robots.txt rules may not apply to user-initiated visits. If those visits must stop, block the published ChatGPT-User ranges at the server or CDN.
- Assuming the wildcard rules still apply. A crawler with its own group ignores the “User-agent: *” group. Repeat every private path inside the GPTBot and OAI-SearchBot groups.
- Fixing one host. robots.txt is per host. A rule on www does nothing for blog, docs or shop subdomains, which each need their own copy.
- Expecting a block to work instantly, or backwards. OAI-SearchBot changes take about 24 hours to reach search. A GPTBot block is a signal about your content from here on; the crawler page does not say anything already collected is removed.
The robots.txt part takes an afternoon.
For most sites the right file is short. Block GPTBot if you do not want your pages in training, give OAI-SearchBot its own group so ChatGPT search can still reach you, repeat your wildcard rules inside each named group, and copy the file to every subdomain. Then check the CDN, verify the IPs, and make sure the pages render without JavaScript. After that, what decides whether ChatGPT cites you is what is on the page.
Publishing those pages, every day, is the job we built our AI SEO agent to do. The SEO Agent turns it into fixed stages:
- Real keyword data. Live monthly search volume and difficulty behind every article it plans, checked against the pages you already have.
- Source-checked drafts. Every claim is checked against its sources, and unsupported sentences are softened or cut by the AI fact checker.
- Written to be cited. Direct answers and sourced statistics, the shape generative engines pick their sources by, and the one a GEO agent is built around.
- Native publishing, daily. Into WordPress, Webflow, Shopify, Wix, Ghost or Framer, or anywhere else through a webhook, with every stage laid out on the automated SEO content pipeline page.
It costs a flat $99 a month after a free trial, and you cancel in one click from inside the app. The story of why we built it is a short read.
What is GPTBot?
GPTBot is OpenAI's web crawler for model training. It crawls public web pages that may be used to train OpenAI's generative AI foundation models, identifies itself with the user agent token GPTBot, and follows robots.txt. It is not the bot behind ChatGPT search: OAI-SearchBot crawls for that, and ChatGPT-User fetches a page when someone in ChatGPT asks for it.
What is the GPTBot user agent?
The current string on the crawler page is: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot. The version number changes (launch-era copies read GPTBot/1.0), and requests for robots.txt may carry an extra robots.txt marker, so match the token GPTBot in log filters and use only the token in robots.txt.
How do I block GPTBot in robots.txt?
Add two lines to the robots.txt file at the root of your site: "User-agent: GPTBot" and then "Disallow: /". Repeat it on every subdomain, because each host reads its own file, and repeat any private paths from your wildcard group inside it. This blocks training only. Your pages can still appear in ChatGPT search, which is controlled by the OAI-SearchBot group.
Does blocking GPTBot remove my site from ChatGPT search?
No. OpenAI says each robots.txt setting is independent: GPTBot covers training, and OAI-SearchBot covers whether your pages are shown in ChatGPT search answers. To leave search, disallow OAI-SearchBot. Even then, an opted-out site can still appear as a navigational link, and the crawler page says the change takes about 24 hours to reach search.
What is OAI-SearchBot?
OAI-SearchBot is OpenAI's search crawler. It crawls pages so they can be surfaced in ChatGPT's search features, and its user agent ends in OAI-SearchBot/1.4; +https://openai.com/searchbot. OpenAI recommends allowing it, and the IP ranges it crawls from, if you want to appear in ChatGPT search results. Blocking it does not affect training, which is GPTBot's job.
Does GPTBot respect robots.txt?
Yes. Disallowing GPTBot is the documented way to signal that your content should not be used for training, and OAI-SearchBot follows its own robots.txt group too. ChatGPT-User is the exception: because a person triggers each visit, the crawler page says robots.txt rules may not apply to it. To stop those visits reliably, block the ChatGPT-User IP list at your server or CDN.
Does blocking GPTBot hurt my SEO?
Not in Google. Google Search crawls with Googlebot, and GPTBot plays no part in its rankings or in AI Overviews. It does not remove you from ChatGPT search either. What it changes is training: your future pages are left out, so what ChatGPT knows about you without searching stops growing at the block.
How do I know a visit is really from GPTBot?
Check the source IP against the published list at openai.com/gptbot.json. On October 15, 2026 that file listed 18 IPv4 ranges and was generated on September 22, 2026. OAI-SearchBot and ChatGPT-User have their own lists (searchbot.json and chatgpt-user.json). A request that claims to be GPTBot from an address outside the list is a scraper using the name.
Does GPTBot render JavaScript?
Not as of the last public measurement. Vercel's December 2024 analysis of AI crawler traffic found that none of the major AI crawlers render JavaScript, GPTBot included. Text that only appears after client-side JavaScript runs is invisible to it, so server-render the pages you want read.
What is OAI-AdsBot?
OAI-AdsBot checks landing pages submitted as ads on ChatGPT, to make sure they comply with ad policies and to judge when an ad is relevant. It only visits pages submitted as ads, and its data is not used to train foundation models. If you do not run ChatGPT ads, it has no reason to visit you.
One researched, source-checked article a day, built to be the page AI answers cite.
The SEO Agent picks keywords from live search volume and difficulty, checks every claim against its sources, softens or cuts what they do not back, and publishes natively to WordPress, Webflow, Shopify, Wix, Ghost or Framer. $99 a month after a free trial. Cancel in one click.
FREE TRIAL · CANCEL IN ONE CLICK