Discovery Science · established evidence

Crawlability Is Not One Setting: A Field Guide to the Three Kinds of AI Bots

Last reviewed 2026-07-20. Written by Chandranshu Kumar, Founder, Raveneye Global. · 11 min read

Not all AI crawlers do the same job, so a single robots.txt rule cannot govern all of them. The AI bots reaching your site divide by function into three kinds: training crawlers such as GPTBot, CCBot, and anthropic-ai that bulk-ingest pages for model pretraining; retrieval crawlers such as OAI-SearchBot, PerplexityBot, and Claude-SearchBot that fetch pages live at query time to build an answer in the moment; and user-triggered fetch agents such as ChatGPT-User and Claude-User that act on a specific person's request and behave more like a manually-driven browser. Each visits for a different reason, so "block AI" and "allow AI" are both category errors. The correct posture differs by crawler purpose, and the compliance behavior of any single bot can change, which is why the reliable move is to read what is actually reaching your pages before writing a rule.

One robots.txt rule, three different machines

A single line in a robots.txt file feels like a switch: allow the bots, or block them. That intuition is where most AI-crawler advice goes wrong. The label "AI bot" collapses at least three distinct kinds of automated visitor, each arriving for a different purpose, each with a different relationship to the content it reaches, and each with its own record of whether it honors the rules you write.

The distinction that matters is not which company sent the crawler. It is what the crawler is for. A bot that copies your page into a training set that a model will read months from now is doing something categorically different from a bot that fetches your page this second to compose a live answer for a person who just asked a question. Treating both with one rule means you cannot express the posture most businesses actually want, which is usually some form of "do not ingest me for training, but do read me when a buyer is asking about me right now."

This is the crawlability-is-not-one-setting problem. Before you can decide what to allow, you have to know the three functional categories the ecosystem has settled into, and you have to hold them honestly, because the behavior of any individual bot is a moving target, not a fixed fact.

The three kinds of AI crawlers, by function

The AI-crawler ecosystem is bifurcated by function, not just by company. Multiple independent technical analyses converge on the same three-way split, which is what makes it a usable framework rather than one vendor's taxonomy. The categories are training crawlers, retrieval crawlers, and user-triggered fetch agents.

Training crawlers: bulk ingestion for the model itself

Training crawlers exist to gather large volumes of text that will be folded into a model during pretraining. GPTBot (OpenAI), CCBot (the Common Crawl bot whose archives feed many models), and anthropic-ai are the canonical examples. Their work is offline and cumulative: a page they copy today may influence answers a model gives long after the visit, and blocking one does not remove content the model already absorbed in an earlier crawl.

These crawlers are also the ones with the clearest published opt-out story. As a class they generally respect robots.txt directives aimed at their named user agents, which is why the "block training" posture is the most reliably enforceable of the three. It is worth being precise about what blocking buys you: it governs future ingestion, not the knowledge already inside a deployed model.

Retrieval crawlers: live fetching to build an answer now

Retrieval crawlers fetch pages at query time to assemble a synthesized answer in the current session. OAI-SearchBot (OpenAI's search surface), PerplexityBot, and Claude-SearchBot are the visible examples. This is the crawler class tied to the retrieval-augmented generation architecture underneath modern answer engines: the founding RAG work paired a language model with a live document index queried at inference time, and these bots are the fetch step of that loop.

For most local and service businesses this is the consequential category. Being reachable by a retrieval crawler is the precondition for being named in the answer a buyer sees when they ask about your category. Blocking retrieval crawlers to stop "AI scraping" can quietly remove you from the exact surface where the purchase decision is now being made, which is why a blanket block is rarely what an owner actually wants once the trade-off is spelled out.

User-triggered fetch agents: a person pressing the button

User-triggered fetch agents act on a specific human instruction rather than a background schedule. ChatGPT-User and Claude-User are the examples: they fetch a page because a person asked the assistant to read that page, click that link, or check that site right now. Functionally they behave more like a manually-driven browser than like a crawler, because there is a human in the loop initiating each request.

Because these agents sit closer to "a user visiting your site" than to "a machine harvesting the web," they enforce robots.txt less consistently than the other two classes, and reasonable people disagree about whether a robots.txt block should even apply to a fetch a human explicitly requested. This is the least settled of the three categories, and it is the one where you should expect behavior to keep shifting.

AI bot user agents you will actually see in your logs

The framework only helps if you can map it to strings in your access logs. The named user agents below are the ones commonly cited in current technical write-ups, grouped by the three functions. Treat the list as a starting inventory rather than a closed set, because vendors add, rename, and split agents regularly.

  • Training crawlers (bulk ingestion for pretraining): GPTBot, CCBot, anthropic-ai.
  • Retrieval crawlers (live fetch at query time to build an answer): OAI-SearchBot, PerplexityBot, Claude-SearchBot.
  • User-triggered fetch agents (a person initiated the request): ChatGPT-User, Claude-User.

Why one rule cannot govern all three

Once the three functions are separated, the category error in "block AI" or "allow AI" becomes obvious. The posture a business usually wants is not uniform across the three. A common, defensible stance is to decline training ingestion while remaining fully reachable by retrieval crawlers and fetch agents, so that you are not feeding future models for free but you are still eligible to be the answer when a live buyer asks. A single directive cannot express that, because it cannot tell the three apart.

There is a second reason a blanket rule misleads. The three classes are enforceable to different degrees. The training class is the one that most reliably honors a named-agent block. The retrieval class is the one you most likely want to keep open. The fetch-agent class is the one whose compliance is least predictable. A rule that treats all three identically will over-block the traffic you value and give you false confidence about the traffic you meant to stop.

This is also why crawlability belongs in the Technical Foundation pillar and not in a content or authority discussion. Whether a retrieval crawler can reach and read your key pages is an eligibility question that sits below everything else. A page that a retrieval crawler cannot fetch cannot be cited in an answer whatever else is true about it, in the same way that a page an engine cannot index cannot appear in a classic result.

Does robots.txt actually stop AI crawlers?

Writing a rule and having it obeyed are different things, and the gap is documented. In August 2025 Cloudflare reported that Perplexity was using an undeclared, generic browser-spoofing crawler, impersonating Chrome on macOS, to continue fetching pages after being blocked through robots.txt and its declared user agent, rotating both IP address and ASN to evade the blocks across tens of thousands of domains. Cloudflare said it verified through live query-testing that Perplexity's answers still reflected content from domains that had explicitly blocked its crawler, and it subsequently de-listed Perplexity as a verified bot. Perplexity publicly disputed Cloudflare's methodology and framing.

Two things are true at once here. The incident itself is independently documented and verifiable. Whether it characterizes Perplexity's ongoing, general practice is contested, because it is a single vendor's report rather than a third-party audit, and the company denies the framing. The durable lesson is not "distrust one named engine." It is structural: a robots.txt directive is a request that a well-behaved crawler honors, not a wall that enforces itself, and the fetch-agent class in particular treats it inconsistently. Assuming a block is airtight is the mistake.

The same caution applies in the other direction, to the tooling sold as a way to control AI visibility. The llms.txt file, promoted as a way to hand AI systems a curated summary of your site, is not read at meaningful scale: an analysis of 137,210 domains found 97 percent of valid llms.txt files received zero requests in the month studied, and Google has stated publicly that llms.txt is not used by its Search systems. Crawl control is younger and leakier than the marketing around it suggests, which is a reason to measure what reaches your pages rather than trust a setting to do the governing for you.

Being reached is not the same as being read faithfully

Suppose you get the posture right and a retrieval crawler fetches your page cleanly. That is necessary, but it is not the finish line, and pretending otherwise is where a lot of AI-visibility claims overreach. Two separate gaps sit between "my page was fetched" and "my business was named accurately."

The first is rendering. Retrieval crawlers vary in how much of a page they execute, and content that only appears after client-side JavaScript runs can be invisible to a crawler that does not render it (Google Search Central, JavaScript SEO documentation, describes the two-wave crawl-render-index behavior for Google's own systems). A page that looks complete in a browser can be partly blank to the machine that fetched it, so reachability and readability are distinct checks.

The second gap is attribution. Even when a system does cite sources, the citation and the reasoning can be decoupled: an attribution survey of tested open-source models reported that over 95 percent of their answers contained at least one unattributed sentence, and the RAG faithfulness literature shows that a cited source is not reliably the source the model actually reasoned from. Being fetched, being rendered, and being faithfully credited are three separate outcomes. A field guide to the crawlers is the first of the three, not a shortcut past the other two.

Should you block AI crawlers? A posture, not a switch

The right question is not "should I block AI crawlers" as a yes or no. It is "which function do I want to allow, for which pages, and how will I know whether the rule is being honored." That reframing turns a switch into a posture, and a posture is something you can hold and revisit as bot behavior changes.

A workable default for a business that wants to be found: keep retrieval crawlers and user-triggered fetch agents fully able to reach the pages that describe what you do, decide training ingestion on your own view of the trade-off, and instrument your logs so you can see which of the three functions is actually arriving rather than assuming your robots.txt describes reality. The table below tiers the claims in this article by how settled they are, so you can weight them accordingly.

Where this fits in a technical read of your site

Crawlability sits at the technical floor of visibility, underneath content and authority. The functional taxonomy tells you what to check for; a technical read tells you what is actually happening on your own domain. Which retrieval crawlers are reaching your key templates, whether your important pages are readable without JavaScript execution, whether your robots.txt is expressing the posture you think it is, and whether anything is fetching you in ways your rules did not anticipate, are all questions answered by inspection, not assumption.

That inspection is a bounded, reproducible engineering exercise against published standards, which is exactly why the Technical Foundation is the most objective surface to measure. The rest of this guide is the framework. The value of the framework is realized only when it is pointed at a specific site and turned into a ranked list of what to fix first.

The evidence

Key findings, with their sources

  • The AI-crawler ecosystem divides by function into three kinds: training crawlers (GPTBot, CCBot, anthropic-ai), retrieval crawlers that fetch live at query time (OAI-SearchBot, PerplexityBot, Claude-SearchBot), and user-triggered fetch agents that behave like a manually-driven browser (ChatGPT-User, Claude-User), so a single robots.txt rule cannot govern all three.

    established Multiple independent 2025-26 technical analyses converging on a common AI-crawler taxonomy (bot-specific compliance behavior is subject to change and should be re-verified).

  • Cloudflare reported Perplexity using an undeclared, browser-spoofing crawler that rotated IP address and ASN to keep fetching pages after being blocked via robots.txt and its declared user agent, and de-listed Perplexity as a verified bot; Perplexity disputed the methodology.

    contested Cloudflare Blog, "Perplexity is using stealth, undeclared crawlers to evade website no-crawl directives", August 4, 2025.

  • Of 137,210 domains analyzed, 97% of valid llms.txt files received zero requests in the month studied; Google has stated llms.txt is not used by its Search systems.

    established Ahrefs, "We Analyzed 137K Sites: 97% of llms.txt Files Never Get Read", June 2026; Google Search Central guidance on generative-AI features.

  • An attribution survey of tested open-source LLMs reported over 95% of answers contained at least one unattributed sentence, and RAG faithfulness research shows a cited source is not reliably the source the model reasoned from.

    established "Attribution Techniques for Mitigating Hallucinated Information in RAG Systems: A Survey", arXiv:2601.19927, 2025-26; "Measuring and Enhancing Trustworthiness of LLMs in RAG through Grounded Attributions and Learning to Refuse", arXiv:2409.11242, 2024.

  • Retrieval-augmented generation, the architecture underneath modern answer engines, pairs a pretrained language model with a live document index queried at inference time, which is the fetch loop retrieval crawlers serve.

    established Lewis, P. et al., "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", arXiv:2005.11401, NeurIPS 2020.

  • When an AI summary is present on a Google search, users clicked a traditional result in about 8% of searches versus 15% without one, and clicked a link inside the summary only about 1% of the time, so being reachable on the surface where the answer forms matters more than raw link traffic.

    established Pew Research Center, "Do people click on links in Google AI summaries?", July 22, 2025 (900 U.S. adults, 68,879 searches, 12,593 with an AI summary).

Calibration

What is proven, what is promising, what is unproven

Evidence tierTacticsWhat the evidence says
establishedThe three-way functional taxonomy (training / retrieval / user-triggered), the RAG architecture beneath answer engines, the llms.txt non-adoption data, and the RAG attribution gap.Converging technical analyses; Lewis et al. 2020; Ahrefs 2026 and Google guidance; arXiv:2409.11242 and 2601.19927.
emergingThe precise, current compliance behavior of any single named bot, which shifts as vendors update agents and policies.Vendor documentation and technical write-ups that are directionally consistent but change between publication and reading.
contestedWhether the Cloudflare-Perplexity incident characterizes ongoing general practice, as opposed to being a documented single event.Cloudflare Blog, August 2025 (single vendor report, not third-party audited); Perplexity disputes the framing.

Reference

Glossary

Training crawler
An AI bot that bulk-ingests pages to be folded into a model during pretraining (for example GPTBot, CCBot, anthropic-ai). Its effect is cumulative and offline; blocking it governs future ingestion, not knowledge already inside a deployed model.
Retrieval crawler
An AI bot that fetches pages live at query time to assemble a synthesized answer in the current session (for example OAI-SearchBot, PerplexityBot, Claude-SearchBot). It is the fetch step of a retrieval-augmented generation loop.
User-triggered fetch agent
An AI bot that fetches a page because a specific person asked the assistant to read it (for example ChatGPT-User, Claude-User). It behaves more like a manually-driven browser and enforces robots.txt less consistently.
robots.txt
A root-level file that requests which paths automated visitors should or should not fetch. It is honored by well-behaved crawlers as a request, not enforced as a wall, and different crawler classes respect it to different degrees.
User agent
The self-declared identity string a bot sends with each request. It is how you recognize a crawler in your logs, but it can be spoofed, so a declared agent is a claim, not a guarantee.
Retrieval-augmented generation (RAG)
The architecture underneath most answer engines: a language model paired with a document index that is queried at inference time so the model can ground an answer in fetched sources.

Straight answers

Frequently asked questions

What are the three kinds of AI crawlers?

Training crawlers (such as GPTBot, CCBot, anthropic-ai) that bulk-ingest pages for model pretraining; retrieval crawlers (such as OAI-SearchBot, PerplexityBot, Claude-SearchBot) that fetch pages live at query time to build an answer; and user-triggered fetch agents (such as ChatGPT-User, Claude-User) that act on a specific person's request and behave more like a browser. They visit for different reasons, which is why one robots.txt rule cannot govern all three.

Should I block AI crawlers in robots.txt?

It is a posture, not a yes-or-no switch. A common, defensible stance is to decline training ingestion while keeping retrieval crawlers and fetch agents able to reach the pages that describe what you do, because those are the surfaces where a live buyer is asking about you. Blocking everything can quietly remove you from AI answers, and it also gives false confidence, since a robots.txt block is a request a crawler honors, not a wall that enforces itself.

What AI bot user agents should I look for in my logs?

For training: GPTBot, CCBot, anthropic-ai. For retrieval: OAI-SearchBot, PerplexityBot, Claude-SearchBot. For user-triggered fetches: ChatGPT-User, Claude-User. Treat any such list as a starting inventory, not a closed set, because vendors add, rename, and split agents regularly, and a declared user agent can be spoofed.

Is GPTBot the same as OAI-SearchBot?

No. They are from the same company but do different jobs. GPTBot is a training crawler that ingests pages for model pretraining, an offline and cumulative process. OAI-SearchBot is a retrieval crawler that fetches pages live to build an answer in the moment. Blocking one does not imply blocking the other, and most businesses that want to be found will treat them differently.

Does robots.txt actually stop AI crawlers?

Only to the degree a given crawler chooses to honor it. Training crawlers as a class most reliably respect a named-agent block; user-triggered fetch agents are the least consistent. Cloudflare documented a case in 2025 where a crawler continued fetching blocked pages by spoofing a browser and rotating IPs, which the vendor disputes as a general characterization. The practical takeaway is that robots.txt is a request, so you should verify what is actually reaching your pages rather than assume the rule is airtight.

If I block training crawlers, will I disappear from ChatGPT answers?

Not necessarily, and this is exactly why the distinction matters. Training crawlers feed a model's pretrained knowledge; retrieval crawlers and fetch agents supply the live, in-session sources an answer is built from. Blocking training ingestion does not by itself remove you from answers assembled by live retrieval, and content a model already ingested in an earlier crawl stays inside the deployed model regardless. The safe way to know your real exposure is to measure which functions reach your site.

Provenance

Sources

  1. Multiple independent 2025-26 technical analyses converging on the training / retrieval / user-triggered AI-crawler taxonomy; specific per-bot compliance behavior subject to change (established as taxonomy)
  2. Cloudflare Blog, "Perplexity is using stealth, undeclared crawlers to evade website no-crawl directives", August 4, 2025 (established as incident, contested as ongoing characterization)blog.cloudflare.com
  3. Ahrefs, "We Analyzed 137K Sites: 97% of llms.txt Files Never Get Read", June 2026; Google Search Central guidance on generative-AI features (established)
  4. Lewis, P. et al., "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", arXiv:2005.11401, NeurIPS 2020 (established)arxiv.org
  5. "Attribution Techniques for Mitigating Hallucinated Information in RAG Systems: A Survey", arXiv:2601.19927, 2025-26; "Measuring and Enhancing Trustworthiness of LLMs in RAG through Grounded Attributions and Learning to Refuse", arXiv:2409.11242, 2024 (established finding of the faithfulness gap; emerging on which mitigation closes it)arxiv.org
  6. Pew Research Center, "Do people click on links in Google AI summaries?", July 22, 2025 (established)pewresearch.org
  7. Google Search Central, JavaScript SEO documentation (two-wave crawl-render-index behavior) (established)

Every figure above is attributed to a real, dated source and tagged with its evidence tier. Where a claim could not be verified to a primary source, it is not stated as fact.

What this means for your site

Knowing the three kinds of AI crawlers is the framework. The operational question is what is actually reaching your own pages: which retrieval crawlers can read your key templates, whether your important content is visible without JavaScript, and whether your robots.txt is expressing the posture you think it is. A Technical Foundation Fix-List answers that by inspection, then returns it as one ranked, sourced list of what to fix first, ordered by impact on whether you can be crawled, rendered, indexed, and named.

diagnostic Technical Foundation Fix-List A specialist-directed diagnostic that finds what blocks your pages from being crawled, rendered and indexed, including what non-rendering AI crawlers cannot read, returned as one ranked fix list plus your Technical Foundation pillar score. See how it works

Start free with a Machine-Readiness Score, a specialist-reviewed read of where you stand across search and AI answers. No guaranteed number, and no obligation.