Skip to content
Join the waitlist

GEO, AEO and AI Visibility

GPTBot, OAI-SearchBot and robots.txt: allow or block AI crawlers

GPTBot is OpenAI’s crawler for pages that may be used to train its models. It is separate from OAI-SearchBot, which makes pages eligible for ChatGPT search, and from ChatGPT-User, which fetches a page when a person asks. GPTBot and OAI-SearchBot follow separate robots.txt groups, so a site can refuse training and stay in search.

By QueryRev ResearchPublished Updated9 min read

Key takeaways

  • GPTBot crawls pages that may be used to train OpenAI’s models; OAI-SearchBot makes pages eligible for ChatGPT search; ChatGPT-User fetches a page when a person asks.
  • GPTBot and OAI-SearchBot follow separate robots.txt groups, so a site can refuse training and stay in search: only a rule for OAI-SearchBot takes it out.
  • A crawler obeys only the group that names it, so repeat in every named group the rules that should hold for every crawler.
  • robots.txt is a request, not a lock: a crawler that ignores it, or a fetch made on a person’s behalf, is stopped only by the server.
  • In QueryRev Research’s October 2026 study, training crawlers were blocked by name on 7.9% of sites on average, AI search crawlers on 4.8%[11].

OpenAI’s user agents

OpenAI documents its crawlers and user agents on one page[1]. Three of them, GPTBot, OAI-SearchBot and ChatGPT-User, decide how a site works with ChatGPT search, model training and requests people make in ChatGPT. Each setting is independent of the others: a site can allow OAI-SearchBot to appear in search results while it disallows GPTBot to say its pages should not be used for training[1]. A fourth agent, OAI-AdsBot, only visits pages submitted as ads on ChatGPT.

OpenAI’s user agents for search, training and user requests, and how robots.txt applies to each, as OpenAI describes them[1]
  • GPTBot

    What it does
    Crawls pages that may be used to train OpenAI’s generative AI foundation models.
    How robots.txt applies
    Disallowing it tells OpenAI that the site’s pages should not be used for training.
  • OAI-SearchBot

    What it does
    Crawls pages so they can be surfaced in ChatGPT’s search features.
    How robots.txt applies
    It is the setting for search: a site that disallows it is not shown in ChatGPT search answers, though it can still appear as a navigational link.
  • ChatGPT-User

    What it does
    May visit a web page when a person asks ChatGPT or a custom GPT a question. It does not crawl the web automatically.
    How robots.txt applies
    The visit is started by a user, so robots.txt rules may not apply. OpenAI does not use it to decide what may appear in search.

OpenAI adds that, for search results, a change to robots.txt can take about 24 hours to reach its systems, and it publishes the IP addresses each agent uses, so a request that claims one of these names can be checked[1].

The consequence is the one most people search for: blocking GPTBot does not take a site out of ChatGPT search. Only a rule for OAI-SearchBot does that. And a rule for GPTBot alone does not stop a page being fetched when a person asks ChatGPT to read it.

The other crawlers covered here

Other vendors split the same jobs in their own ways. Some run a crawler of their own for training, and some for search, such as PerplexityBot. Others offer a product token, such as Google-Extended: a name you write in robots.txt that no crawler sends, which says how the pages their ordinary crawler fetches may be used.

Crawlers and tokens covered in this guide, from each vendor’s documentation
  • PerplexityBot

    Vendor
    Perplexity
    What a Disallow rule for it controls
    Whether pages are surfaced and linked in Perplexity’s search results. Perplexity says it is not used to crawl content for AI foundation models[2].
  • Perplexity-User

    Vendor
    Perplexity
    What a Disallow rule for it controls
    Little: it fetches a page when a user asks, and Perplexity says it generally ignores robots.txt for that reason[2].
  • Google-Extended

    Vendor
    Google
    What a Disallow rule for it controls
    Whether content Google crawls may be used to train future Gemini models and for grounding in Gemini apps. A token with no crawler of its own; it does not affect Google Search[3].
  • Applebot-Extended

    Vendor
    Apple
    What a Disallow rule for it controls
    Whether content Applebot crawls may be used to train Apple’s foundation models. A token that does not crawl; pages that disallow it can still appear in Apple’s search results[4].
  • CCBot

    Vendor
    Common Crawl
    What a Disallow rule for it controls
    Whether Common Crawl crawls the site for its open repository of web crawl data, which anyone may access and analyse[5].
  • Meta-ExternalAgent

    Vendor
    Meta
    What a Disallow rule for it controls
    Crawling for uses such as training AI models or improving products by indexing content directly[6].
  • Bingbot

    Vendor
    Microsoft
    What a Disallow rule for it controls
    Bing’s controls for its chat answers are robots meta tags, not a robots.txt group: with NOCACHE an answer shows only the page’s address, title and snippet; with NOARCHIVE the page is left out of the answers. Either way the page stays in Bing’s search results[7].

This guide covers these crawlers and tokens. Others exist, and vendors add and rename them; each vendor’s own page is the reference for its current names.

How robots.txt rules are read

robots.txt is a plain text file at the root of each host, standardised as RFC 9309[8]. It holds groups. Each group starts with one or more User-agent lines and lists Allow and Disallow rules for paths. Five rules of reading cause most surprises:

  • A crawler obeys the group that names it and ignores the rest. Only a crawler with no group of its own falls back to the group for User-agent: *[8].
  • So a group for GPTBot that says only Disallow: /private/ lets GPTBot fetch everything else, even paths your User-agent: * group closes. Repeat in every named group the rules that should hold for every crawler.
  • Within a group, the most specific rule wins: the one with the longest matching path. When an Allow and a Disallow rule match equally, the Allow rule should be used[8].
  • The file covers one host and one protocol: shop.example and www.shop.example each need their own. Google reads at most 500 KiB of it and ignores the rest[9].
  • robots.txt is a request, not a lock. The standard says its rules are not a form of access authorization[8]. A crawler that ignores them, or a fetch made on a person’s behalf, is stopped only by the server: a login, or a firewall rule.

Rules for a product token, such as Google-Extended or Applebot-Extended, decide how the pages the vendor’s ordinary crawler fetches may be used. They do not stop that crawler, and they do not take a site out of the vendor’s search[3][4].

Google’s AI features in Search, such as AI Overviews, draw on the pages Google crawls for Search, so Google-Extended does not control them. Their controls are the ones of Search itself: a page must be indexed and allowed a snippet to be shown, and nosnippet, data-nosnippet, max-snippet and noindex limit what appears[10].

What top sites do

QueryRev Research reads the robots.txt of the Tranco top 10,000 domains every month for its State of AI crawler access study. In the October 2026 edition, 6,294 sites gave an answer that could be read, and 14.2% of them shut at least one AI crawler out of the whole site by name[11].

Sites that shut each crawler out of the whole site by name, of the 6,294 sites read[11]
  • Bytespider

    What it is for
    AI training
    Blocked by name
    9.5%
  • CCBot

    What it is for
    AI training
    Blocked by name
    9.4%
  • GPTBot

    What it is for
    AI training
    Blocked by name
    9.2%
  • Google-Extended

    What it is for
    AI training
    Blocked by name
    6.5%
  • Amazonbot

    What it is for
    AI search
    Blocked by name
    6.5%
  • Meta-ExternalAgent

    What it is for
    AI training
    Blocked by name
    6.4%
  • Applebot-Extended

    What it is for
    AI training
    Blocked by name
    6.3%
  • PerplexityBot

    What it is for
    AI search
    Blocked by name
    5.1%
  • ChatGPT-User

    What it is for
    User fetch
    Blocked by name
    4.2%
  • Perplexity-User

    What it is for
    User fetch
    Blocked by name
    3.0%
  • OAI-SearchBot

    What it is for
    AI search
    Blocked by name
    2.7%

The study measures two crawlers this guide does not cover: Bytespider, ByteDance’s crawler, whose purpose is not documented and which the study counts with the training crawlers, and Amazonbot, which it counts with AI search. The table shows all eleven, as the study classes them.

The pattern is clear: sites refuse training more often than search. Across those eleven, the crawlers that collect pages for training are blocked by name on 7.9% of the sites on average, those that index pages for AI search on 4.8%[11]. Far fewer sites shut out OAI-SearchBot, at 2.7%, than GPTBot, at 9.2%[11]. And only 0.7% shut out every crawler the study covers[11].

Choosing what to allow

Three questions settle most robots.txt files. Answer them vendor by vendor, because each vendor splits its crawlers differently.

  1. Do you want your pages found and cited in AI search answers? Then allow the search crawlers, OAI-SearchBot and PerplexityBot: OpenAI and Perplexity both recommend it for a site that wants to appear in their search results[1][2]. A search crawler that may not fetch a page cannot read what it says, and a page it has not read cannot be quoted as an AI citation.
  2. Do you accept that your pages may be used to train models? If not, disallow the training crawlers and tokens: GPTBot, Google-Extended, Applebot-Extended, CCBot and Meta-ExternalAgent. By their vendors’ own documentation, these rules do not take your pages out of OpenAI’s, Google’s or Apple’s search[1][3][4].
  3. Do you need to stop fetches a person asks for? robots.txt is the wrong tool for that: OpenAI, Perplexity and Meta all say their user-started agents may not follow it[1][2][6]. If a section must stay private, put it behind a login, not behind a Disallow line.

Every block has a cost to weigh: a crawler you block cannot read the pages you later want it to read, such as a new pricing page, until the rule changes.

Whatever you choose, write the reason down beside the rule. A robots.txt outlives the person who wrote it, and a rule nobody can explain is the hardest to change safely.

robots.txt for three common choices

Each file below is complete for the crawlers it names. Keep your own rules for User-agent: * as they are, and repeat in every named group any path that should stay closed to every crawler, such as an account area.

One set of rules for every crawler
# No named groups: every crawler, AI crawlers included,# follows the rules of User-agent: *User-agent: *Disallow: /account/ Sitemap: https://www.shop.example/sitemap.xml
Out of OpenAI’s training, in ChatGPT search
# GPTBot reads only its own group: it is closed out.# OAI-SearchBot has no group, so it follows the rules of *.User-agent: GPTBotDisallow: / User-agent: *Disallow: /account/ Sitemap: https://www.shop.example/sitemap.xml
In AI search, out of the training crawlers covered here
# Search crawlers: the same paths as everyone else.User-agent: OAI-SearchBotUser-agent: PerplexityBotDisallow: /account/ # Training crawlers and tokens: closed out.User-agent: GPTBotUser-agent: Google-ExtendedUser-agent: Applebot-ExtendedUser-agent: CCBotUser-agent: Meta-ExternalAgentDisallow: / User-agent: *Disallow: /account/ Sitemap: https://www.shop.example/sitemap.xml

A group may start with several User-agent lines, as the last file does: they share its rules[8]. Search crawlers you do not name follow the group for User-agent: *, so the last file keeps them where they are.

Check that the rules work

  1. Open /robots.txt on every host you serve, with and without www. It should answer 200 with plain text.
  2. Read each named group as its crawler would: only its own group counts. Make sure the paths you closed for User-agent: * are closed there too.
  3. Search your server logs for each user agent and confirm what it fetched after the change. OpenAI, Perplexity, Common Crawl and Apple publish the addresses or host names their crawlers use, so a real request can be told from one that only borrows the name[1][2][5][4].
  4. Check your CDN and firewall. A bot rule there can refuse a crawler that robots.txt allows; Google asks that crawling be allowed by any CDN or hosting infrastructure as well, and Perplexity explains how to let its crawlers through a firewall[10][2].
  5. Give the change a day: OpenAI and Perplexity both say an update can take up to about 24 hours to reach their systems[1][2].
  6. Then watch the result where it shows: which AI answers cite your pages, prompt by prompt, over the weeks that follow.

If you also publish an llms.txt, the crawlers you allow must be able to fetch it too. What the file is, and whether your site needs one, is the subject of its own guide.

Sources

Primary sources only, each read on the day given.

  1. 1.Overview of OpenAI Crawlers. OpenAI. Read .
  2. 2.Perplexity Crawlers. Perplexity. Read .
  3. 3.List of Google’s common crawlers. Google Search Central. Read .
  4. 4.About Applebot. Apple. Read .
  5. 5.CCBot. Common Crawl. Read .
  6. 6.Meta Web Crawlers. Meta for Developers. Read .
  7. 7.Announcing new options for webmasters to control usage of their content in Bing Chat. Bing Webmaster Blog, Microsoft. Read .
  8. 8.RFC 9309: Robots Exclusion Protocol. IETF, RFC Editor. Read .
  9. 9.How Google interprets the robots.txt specification. Google Search Central. Read .
  10. 10.AI features and your website. Google Search Central. Read .
  11. 11.State of AI crawler access, October 2026 edition. QueryRev Research. Read .

Cite this guide

A suggested citation. Its link goes to this page, whose address does not change.

QueryRev Research. “GPTBot, OAI-SearchBot and robots.txt: allow or block AI crawlers.” QueryRev AI, 18 Oct 2026. https://queryrev.com/guides/gptbot-robots-txt

Read next