AI Crawlers

The three kinds of AI crawler — training bots, AI-search indexers, and user-triggered fetchers — the major named ones, and how to control each without hurting SEO.

First published: Jun 24, 2026 · Last updated: Jul 30, 2026 · Advanced
demand #8 in Crawling#19 in How Search Works#110 in Technical SEO#146 on the site
2 evidence signals on this page

AI crawlers come in three kinds, and conflating them is the #1 mistake: (1) training/model-improvement bots such as GPTBot, ClaudeBot, and CCBot; (2) AI-search indexers such as OAI-SearchBot, PerplexityBot, and Applebot; and (3) user-triggered fetchers such as ChatGPT-User, Perplexity-User, and Claude-User. Controls are provider- and agent-specific: blocking GPTBot does not block OAI-SearchBot, and OAI-AdsBot has a separate ads scope. Google-Extended and Applebot-Extended are product/control tokens, not independent crawlers. Google-Extended covers Gemini/Vertex model improvement and grounding but not Google Search inclusion, ranking, AI Overviews, or AI Mode; Applebot-Extended controls Apple foundation-model use without removing pages from Apple search. llms.txt remains a proposal, not a broadly adopted control standard.

OpenAI says the settings for GPTBot, OAI-SearchBot, and ChatGPT-User are independent. Evidence for this claim OpenAI publishes separate controls for GPTBot, OAI-SearchBot, and ChatGPT-User, and says each setting is independent. Scope: OpenAI-declared crawlers and user agents; their purposes and robots behavior are platform-specific. Confidence: high · Verified: OpenAI: Crawlers Anthropic separately identifies ClaudeBot, Claude-SearchBot, and Claude-User and documents robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. handling. Evidence for this claim Anthropic documents ClaudeBot, Claude-SearchBot, and Claude-User separately and says its bots honor robots.txt directives. Scope: Anthropic-declared bots; user-initiated retrieval has additional product-specific conditions. Confidence: high · Verified: Anthropic: Bot information

TL;DR — AI crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. split into three categories, and conflating them is the mistake almost everyone makes. Training bots (GPTBot, ClaudeBot, CCBot, Bytespider, Amazonbot, Meta-ExternalAgent) scrape to build model corpora. AI-search bots (OAI-SearchBot, PerplexityBot, Applebot, Amzn-SearchBot) build a citing indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. User-triggered fetchers (ChatGPT-User, Perplexity-User, Claude-User) grab a page live when a person asks. Each has its own user-agentA user agent is the HTTP request header a client (browser, crawler, or bot) sends to identify itself. For crawlers, a short user-agent token — a substring of that string — is what robots.txt rules actually target. and its own robots.txt rule, so blocking GPTBot doesn’t touch OAI-SearchBot. Google-Extended and Applebot-Extended are tokensA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory., not bots — they don’t crawl, they only opt you out of training/groundingGrounding is anchoring an AI model's answer to source documents it retrieves at the moment you ask — not to the patterns frozen into its weights during training. Retrieval-Augmented Generation (RAG) is the most common way to do it.. Blocking training bots has no effect on Google rankings (Google says so, and empirical data agrees); blocking AI-search bots does reduce your visibility in AILLM visibility (or AI visibility) is the aggregate measure of how often and how prominently a brand or page shows up in AI-generated answers — across AI Overviews, ChatGPT, Perplexity, Copilot, and Gemini. It's the AI-search analog of organic visibility, but it's driven by different signals. answers. The robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. debate is real for user fetchers (operators say it “may not apply”) and for Perplexity (reported stealth crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor.). llms.txtllms.txt is a proposed (not adopted) Markdown file at /llms.txt that gives AI systems a curated map of a site's most important pages. Proposed by Jeremy Howard in 2024, it's read mostly by coding agents like Claude Code — not search crawlers — and Google ignores it. is a proposal, largely unread, not adopted by the majors.

The three categories — the spine of this whole topic

Classify the purpose before writing the rule: training, AI-search visibility, and live user fetching are separate decisions. Source: /technical-seo/how-search-works/crawling/crawler/ai-crawlers/

Training crawlers such as GPTBot, ClaudeBot, and CCBot collect data for model corpora. AI-search crawlers such as OAI-SearchBot and PerplexityBot build indexes used for answers and citations. User-triggered agents such as ChatGPT-User and Claude-User fetch a page for a live request. Blocking one category does not automatically block the others.

© Patrick Stox LLC · CC BY 4.0 ·

Every named AI bot belongs in one of three buckets. Get the bucket right and every downstream decision (block it? allow it? what happens to my SEO?) falls out of it.

1. Training / data-collection crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.. These crawl at scale to build corpora for training and fine-tuning LLMs. They’re the bots most publishers want to block, and disallowing them has no effect on search rankings. Members: GPTBot (OpenAI), ClaudeBot (Anthropic), CCBot (Common Crawl), Bytespider (ByteDance), Amazonbot (Amazon), Meta-ExternalAgent (Meta), AI2Bot (Allen Institute), cohere-training-data-crawler (Cohere), Diffbot, Timpibot (Timpi), webzio-extended (Webz.io). Plus two control tokens that are NOT separate crawlers — Google-Extended and Applebot-Extended — covered below.

2. AI-search / indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. crawlers. These build a live index used to answer queries with citations and links back to you. Blocking these can remove you from AI searchAI search uses large language models and retrieval-augmented generation (RAG) to synthesize an answer from multiple sources rather than returning a ranked list of links. Examples include Google AI Overviews, ChatGPT Search, and Perplexity. results. Members: OAI-SearchBot (OpenAI — distinct from GPTBot), PerplexityBot (Perplexity), Applebot (Apple — powers Spotlight/Siri/Safari suggestions), Amzn-SearchBot (Amazon).

3. User-triggered / on-demand fetchers. These fetch a specific page live because a user asked a question, not because a bot is roaming. Operators typically claim robots.txt doesn’t bind a user-initiated fetch — contested territory. Members: ChatGPT-User (OpenAI), Perplexity-User (Perplexity), Claude-User and Claude-SearchBot (Anthropic), Amzn-User (Amazon, for Alexa), Meta-ExternalFetcher (Meta).

The full table with user-agent tokens and robots.txt compliance is in the Cheat Sheets tab — that table is the centerpiece of this article.

The “token, not bot” trap (Google-Extended and Applebot-Extended)

This is the single most misunderstood fact in the space, so I’ll be precise. Google-Extended and Applebot-Extended do not crawl anything. They have no independent user-agent and generate no crawl traffic. They are robots.txt control tokens that change what existing crawls are allowed to do with your content.

  • Google-Extended controls use for improving Gemini Apps and Vertex AI generative models, including groundingGrounding is anchoring an AI model's answer to source documents it retrieves at the moment you ask — not to the patterns frozen into its weights during training. Retrieval-Augmented Generation (RAG) is the most common way to do it. outside Google Search. It does not control Google Search’s AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index. or AI Mode; those use GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. access. Google is explicit: “Google-Extended does not impact a site’s inclusion in Google Search nor is it used as a ranking signal in Google Search.” Disallowing it does nothing to Googlebot or your rankings.
  • Applebot-Extended is the same idea for Apple. Apple states: “Applebot-Extended does not crawl webpages. Webpages that disallow Applebot-Extended can still be included in search results.” It opts you out of training Apple’s foundation models (Apple Intelligence) — your pages still appear in Spotlight/Siri via the real crawler, Applebot.

So Disallow: Google-Extended and Disallow: Applebot-Extended are product-use controls rather than independent crawl blocks. Their published scopes do not remove pages from the corresponding search index, but they are not interchangeable and should not both be shortened to “training bot.”

The major operators, bot by bot

OpenAI runs four declared bots, each independent: GPTBot (training — “used to make our generative AI foundation models more useful and safe”), OAI-SearchBot (search — “used to surface websites in search results in ChatGPT’s search features”), ChatGPT-User (user fetcher — “used for certain user actions in ChatGPT”), and OAI-AdsBot (an independent ads scope, not training and not the search-index crawler). OpenAI’s policy line is the model for the whole space: “Each bot setting is independent, allowing webmasters granular control over how their content interacts with different OpenAI systems.” Disallowing GPTBot “signals that future data from these materials should be excluded from model training datasets”; disallowing OAI-SearchBot means your site “won’t appear in ChatGPT search results.”

Anthropic runs three: ClaudeBot (training), Claude-SearchBot (search indexing), and Claude-User (user fetch). Anthropic states its bots “respect ‘do not crawl’ signals by honoring industry standard directives in robots.txt”. Its current support page also points to a shared published IP list for Anthropic-specific verification. That provider-specific list is evidence of identity, not a universal IP or reverse-DNS verification rule for every bot.

Google — the key fact is the one above: Google-Extended is a token, not a bot. Google also runs Google-CloudVertexBot (crawls for site-owner-requested Vertex AI Agents; doesn’t affect ranking) and user-triggered agents like Gemini-Deep-Research and Google-NotebookLM.

Apple runs Applebot (the real crawler powering Spotlight/Siri/Safari suggestions, and “may also be used to help train Apple foundation models”) and the Applebot-Extended token. Blocking Applebot removes you from Apple search; blocking Applebot-Extended only opts out of training.

Perplexity declares two bots: PerplexityBot (search/citations — explicitly “not used to crawl content for AI foundation models”, so Perplexity has no declared training crawler) and Perplexity-User (user fetch). Its docs state Perplexity-User “generally ignores robots.txt rules” because the fetch is user-initiated. Perplexity is also the subject of reported stealth-crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. — see the controversy below.

Amazon runs three, and this is a useful exception: Amazonbot (improves products and “may be used to train Amazon AI models”), Amzn-SearchBot (search), and Amzn-User (Alexa user fetches). Per Amazon’s docs, Amzn-SearchBot and Amzn-User explicitly do NOT crawl for generative AI model training — so “all AI companies scrape for training” is a myth. Amazon also honors a noarchive meta tag with a special meaning: do not use the page for model training — a rare per-page training opt-out.

Amazon’s robots handling has two unusual operational edges: its crawlers may use a robots.txt copy cached within the previous 30 days, and Amazon says that if the file cannot be fetched, its crawlers behave as though it does not exist. That does not mean a failed audit fetch proves Amazon saw an allow-all state; the audit and Amazon may be reaching the host at different times or through different network paths. Evidence for this claim Amazon says its crawlers may use a robots.txt copy cached within the previous 30 days. Scope: Amazon crawler behavior only; a current audit fetch cannot identify which cached copy Amazon used. Confidence: high · Verified: Amazon: Amazonbot Evidence for this claim Amazon says its crawlers behave as if robots.txt does not exist when they cannot fetch it. Scope: Amazon crawler behavior only; a tool-side fetch failure is not proof that Amazon observed the same failure. Confidence: high · Verified: Amazon: Amazonbot

Meta runs Meta-ExternalAgent (training/indexing for Llama and Meta AI), Meta-ExternalFetcher (user fetch), and separately Facebookbot (link previews — not an AI crawler). Blocking Meta-ExternalAgent doesn’t affect your Facebook link previews.

Common Crawl (CCBot) is run by a non-profit foundation that maintains an open web archive. It’s the hidden layer: the Common Crawl dataset has been used to train ChatGPT, Claude, LLaMA, and many others — so blocking CCBot has downstream effects on models that never crawl you directly. Common Crawl also warns that impostors spoof CCBot.

ByteDance (Bytespider) is the aggressive one: declared as respecting robots.txt, but widely reported violating it, with very high request volumes. Others worth knowing: AI2Bot (Allen Institute, open models / the Dolma dataset), Cohere, Diffbot (structured-data extraction whose output feeds many downstream AI pipelines), and Timpibot / webzio-extended.

Do AI bots actually obey robots.txt?

For training and search crawlers, the major operators (OpenAI, Anthropic, Google, Apple, Amazon) all state in their docs that they respect robots.txt. The contested zone is user-triggered fetchers, where several operators explicitly say robots.txt may not apply because a person initiated the request — OpenAI says “these actions are initiated by a user, robots.txt rules may not apply”; Perplexity says Perplexity-User “generally ignores robots.txt rules.” That’s stated policy, not a violation.

The Perplexity controversy is the headline dispute, and I’ll flag it as reported, not settled. In June 2024, Wired and developer Robb Knight reported that Perplexity accessed content from sites that had blocked it, apparently using unlisted IPs. In August 2025, Cloudflare reported that Perplexity used a stealth user-agent impersonating Chrome on macOS, rotated IPs and ASNs to evade blocks, and fetched content from newly created test domains that carried a full Disallow: / — and Cloudflare subsequently delisted Perplexity as a verified bot. Present this as documented reporting from those sources; Perplexity’s own docs maintain that PerplexityBot respects robots.txt.

Because some bots ignore robots.txt at some level, Cloudflare has become the practical enforcement layer — network-level blocking, a one-click “AI Scrapers and Crawlers” toggle, managed robots.txt, robots.txt-violation tracking, and a pay-per-crawl beta. As of July 2025, new Cloudflare domains block known AI crawlersAI crawlers are bots from AI companies that fetch web pages to train language models, build AI-search indexes, or answer live user questions. They come in three categories, each with its own user-agent tokens and its own robots.txt controls. by default.

How to control AI crawlers

  • Per-user-agent robots.txt is the primary lever, and it’s granular: blocking GPTBot does not block OAI-SearchBot or ChatGPT-User. The robots.txt recipes (block all training bots, block AI-search bots) are in the Scripts tab.
  • The training tokensGoogle-Extended and Applebot-Extended — opt you out of Gemini/Apple-Intelligence training with no search cost.
  • Amazon’s noarchive meta tag is a per-page training opt-out for Amazon.
  • Cloudflare AI Crawl Control — block/allow/charge at the network level, plus managed robots.txt and Content Signals directives (search, ai-input, ai-train); default is search=yes, ai-train=no.
  • llms.txt is a proposal (Jeremy Howard / Answer.AI, Sept 2024), not an adopted standard — and not honored by major crawlers. It’s a curated markdown map meant to be read at inference time, but an Ahrefs study of 137K sites found 97% of published llms.txt files get zero requests, and no major LLM provider has formally adopted it. Treat it as documentation tooling, not AI-search tooling.
  • The ai.robots.txt community project maintains a comprehensive Disallow: / file listing 150+ AI bot user-agents — a useful reference for blanket blocking.

A visibility-first crawler policy

For a public educational or commercial site that wants AI-search visibility, my default policy is:

  1. Allow conventional search crawlers that feed the search surfaces you want, including Googlebot and BingbotBingbot is Microsoft Bing's primary web crawler — the bot that discovers, fetches, and renders pages to build the Bing index. That index also powers Yahoo, DuckDuckGo, Ecosia, and Microsoft Copilot, so Bingbot's reach is far wider than Bing's own search-market share..
  2. Allow documented AI-search/indexing crawlers such as OAI-SearchBot, Claude-SearchBot, and PerplexityBot on public content.
  3. Allow intended user-directed fetchers such as ChatGPT-User, Claude-User, and Perplexity-User, while recognizing that provider robots behavior differs. Evidence for this claim OpenAI publishes separate controls for GPTBot, OAI-SearchBot, and ChatGPT-User, and says each setting is independent. Scope: OpenAI-declared crawlers and user agents; their purposes and robots behavior are platform-specific. Confidence: high · Verified: OpenAI: Crawlers Evidence for this claim Anthropic documents ClaudeBot, Claude-SearchBot, and Claude-User separately and says its bots honor robots.txt directives. Scope: Anthropic-declared bots; user-initiated retrieval has additional product-specific conditions. Confidence: high · Verified: Anthropic: Bot information Evidence for this claim Perplexity documents PerplexityBot for search indexing separately from Perplexity-User for user-requested fetches, with different robots behavior. Scope: Perplexity-declared crawlers and published IP ranges; a user-agent string alone does not verify identity. Confidence: high · Verified: Perplexity: Crawlers
  4. Make a separate rights decision for training/model-development access. GPTBot, ClaudeBot, Google-Extended, and other training controls do not need to share the search policy. Allow them only if that use matches your publishing policy.
  5. Protect private and operational routes with authentication. Keep /admin/, previews, account data, and non-public APIs behind server-side authorization; a Disallow is only a crawler preference.
  6. Verify identity before bypassing WAF controls. Combine the documented user-agent with current provider IP ranges, reverse-DNS verification, or supported bot authentication. Never create a broad WAF allow rule from a spoofable user-agent alone.

Do not add a specific user-agent group merely to say Allow: / unless you repeat every restriction that must still apply to that crawler. Under robots matching rules, a specific group can supersede the wildcard group rather than inherit its private-path exclusions under provider-specific robots parsing. The simplest safe file is often one independently safe wildcard group plus narrowly scoped training opt-outs.

For this site specifically, the current public policy is an explicit allow posture for search, AI input, and AI training while excluding admin, preview, API, trap, and gateway routes. I would keep search and user-directed retrieval allowed. I would change ai-train=yes only as an editorial-rights decision—not as an AI visibility tactic—because training access has no demonstrated citation benefit.

AI crawler access is not AI readiness

An allow rule proves, at most, that the declared robots policy permits a named agent to request a URL. It does not prove the operator obeyed the policy, fetched the page, rendered it, extracted the important information, placed it in model context, cited it, or completed an action.

Keep five layers separate:

LayerQuestionEvidence
PermissionMay this named agent request the URL under the declared policy?Effective robots and network-access test
ExtractabilityIs the important content present in stable text, links, metadata, or structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding.?Raw and rendered capture with field extraction
RenderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.Does the content survive the agent’s actual browser/JavaScript capability?Provider-specific fetch evidence where available; otherwise a stated test limitation
OperabilityCan an agent identify and safely invoke the intended action?Documented tool/interface contract and controlled end-to-end test
Commerce readinessDo identity, price, availability, policy, fulfillment, cart, and checkout agree?Feed/page/backend/order reconciliation

A crawler-access checker should therefore report allowed, blocked, or indeterminate for policy—not “AI ready.” A successful log request proves that request occurred; it is not evidence that the page was used in an answer. A valid feed or tool declaration likewise does not prove that a public page renders correctly or that checkout can fulfill the represented offer.

Use How AI Search Works for retrieval and citation layers, and AI Shopping OptimizationAI shopping optimization is the practice of making a merchant's products discoverable, recommendable, and buyable across AI shopping surfaces — ChatGPT, Google AI Mode, Gemini, Copilot, and Perplexity — by treating the structured product feed as a first-class optimization surface alongside the human-facing webpage, not a replacement for it. for catalog and transaction readiness. Keeping the layers separate makes the remedy specific: fix access policy for a block, page output for extraction, rendering for a missing state, an interface contract for operability, or commerce data for a failed purchase.

For ecommerce pages, the extractability test should verify that core product identity and the selected offer—SKU, group ID, price, currency, and availability—exist in the initial response and still agree after rendering. The raw-versus-rendered product-page standardProduct page SEO is the practice of optimizing an individual product detail page (PDP) so it ranks in organic search and earns rich results. It blends unique product copy, structured data, variant canonicalization, image SEO, and customer reviews — but the structured data earns rich results and eligibility for free product listings, it doesn't make the page rank. defines what should be server-visible; crawler permission alone says nothing about that contract.

Here’s the one to get right. Blocking training bots is not the same as blocking AI-search bots. They’re separate robots.txt rules with opposite consequences:

  • Block training bots (GPTBot, ClaudeBot, CCBot, Bytespider, plus the Google-Extended/Applebot-Extended tokens) → no effect on Google rankings, confirmed by Google and by empirical publisher data. You’re opting out of model training, full stop.
  • Block AI-search bots (OAI-SearchBot, PerplexityBot) → you lose visibility in ChatGPT and Perplexity answers. That’s a real trade-off, not a free lunch.

If you block too broadly — say, a blanket block that catches OAI-SearchBot while you only meant to stop training — you can quietly remove yourself from AI search. Be precise about which category each rule hits.

Why publishers block at all: the social contract

The reason this is even a debate comes down to traffic. As I’ve put it in my AI bots analysis, “there’s a cost to bots crawling your websites and there’s a social contract between search engines and website owners, where search engines add value by sending referral traffic to websites. Google sends traffic (for now), so they don’t get blocked.” AI crawlers, so far, mostly don’t send traffic back — and the data backs the unease. In my Cloudflare Radar analysis, AI bots are already firmly the #2 crawler behind search engines and on track to overtake them. More in the Stats tab.

Disclosure: I am a former Ahrefs employee and receive complimentary Ahrefs access. The linked crawler analysis is my published work from that role; Ahrefs does not review or approve this site’s current editorial conclusions.

For the broader pipeline this sits inside — discovery, the crawl scheduler, rendering, and how crawling differs from indexing — see the crawling hub, and the sibling topics on a crawler in general, the user-agent, Googlebot, Bingbot, and robots.txt.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.