Open the access logs of almost any website and a large share of the requests now come from bots run by AI companies. Some of them are building training sets for the next model. Some are building a search index that ChatGPT, Claude or Perplexity will cite from. Some arrive seconds after a person typed a question into an assistant, and leave again with one page. They identify themselves with names like GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot, and each operator documents its own set.
For SEO, this matters in two directions. Let the wrong bot in and you give away content for little return. Shut the wrong bot out and you vanish from an assistant that your customers use to choose a supplier. This guide explains what each kind of crawler does, who runs them, what the data says about how much they take and give back, and the controls you have. Each operator has its own post with the full user agent strings, IP lists and robots.txt lines, linked from the directory below.
How assistants turn crawled pages into answers is covered in the AI search guide, and the wider mechanics of crawling, rendering and indexing in the technical SEO guide. This page stays with the crawlers themselves.
The four jobs an AI crawler can do
The single most useful thing to know about AI crawlers is that the big operators split them by purpose and let you control each one separately. OpenAI, for example, says each of its settings is independent of the others, so a site can allow OAI-SearchBot while disallowing GPTBot.1 Anthropic splits its bots the same way into ClaudeBot, Claude-SearchBot and Claude-User.2 Once you know which job a bot does, the decision about it usually becomes obvious.
| Job | What it does | Examples | What blocking it costs you |
|---|---|---|---|
| Training crawler | Collects pages that may be used to train future models. Works continuously and at volume, with no link back to you. | GPTBot, ClaudeBot, Meta-ExternalAgent, CCBot, and the control tokens Google-Extended and Applebot-Extended | Your content is less likely to shape what future models know about you. No direct traffic is lost. |
| Search crawler | Builds the index an assistant searches when it needs current information, then cites and links what it uses. | OAI-SearchBot, Claude-SearchBot, PerplexityBot, and Googlebot and Bingbot for AI features built on their search engines | You drop out of that assistant's cited answers and the referral visits that come with them. |
| User-triggered fetcher | Fetches a specific page because a person asked the assistant something that needed it, such as pasting your URL into a chat. | ChatGPT-User, Claude-User, Perplexity-User, Meta-ExternalFetcher | The assistant cannot read your page when a customer asks about it directly. Several of these do not follow robots.txt. |
| Agent or AI browser | Loads and operates pages in a browser on a person's behalf: comparing products, filling forms, booking. | Google-Agent and the cloud browser in ChatGPT Work. Both sign some or all of their requests so sites can verify them.34 | The agent cannot complete the task on your site, and may complete it on a competitor's. |
The line between the last three has blurred, and the operators describe them in slightly different terms. The test I use is simple: does a person stand behind the request, and does the product link back to you? A search crawler and a user-triggered fetcher both feed answers that can cite and link your page. A training crawler feeds a model that may know your content later but will not send anyone to it.
Who runs which crawler
Every major operator now publishes a page listing its user agents, what each one is for and, in most cases, the IP ranges it crawls from. The table summarises them as documented in October 2026. Each operator has a dedicated post with the full user agent strings, verification steps and recommended robots.txt lines.
| Operator | Training | Search and citations | User-triggered and agents | Full post |
|---|---|---|---|---|
| OpenAI | GPTBot | OAI-SearchBot, for ChatGPT search | ChatGPT-User, which robots.txt rules may not cover. A fourth bot, OAI-AdsBot, checks ad landing pages.1 ChatGPT's cloud browser has no token and signs its requests.4 | OpenAI's crawlers |
| Anthropic | ClaudeBot | Claude-SearchBot | Claude-User. Anthropic says all three honour robots.txt.2 | Anthropic's crawlers |
Google-Extended, a token with no crawler, which also covers grounding in the Gemini app5 | Googlebot. AI Overviews and AI Mode are part of Search and have no crawler of their own.7 | Google-Agent and other user-triggered fetchers, which generally ignore robots.txt8 | Google's crawlers and AI | |
| Microsoft | No token. Bing's noarchive and nocache meta tags limit use in training and in Copilot.9 | Bingbot, which feeds both Bing and Copilot10 | No separate Copilot fetcher is documented | Bingbot and Copilot |
| Perplexity | None. Perplexity says its crawlers are not used to train foundation models.11 | PerplexityBot | Perplexity-User, which generally ignores robots.txt | Perplexity's crawlers |
| Apple | Applebot-Extended, a token with no crawler | Applebot, for Spotlight, Siri and Safari. nosnippet keeps a page out of AI-generated answers.6 | None documented | Apple's crawlers |
| Meta | Meta-ExternalAgent | Meta-WebIndexer, for Meta AI search | Meta-ExternalFetcher, which may bypass robots.txt. facebookexternalhit builds link previews.12 | Meta's crawlers |
| Common Crawl, Amazon, Mistral, DuckDuckGo and others | CCBot, whose open archive is widely used to train models,13 Amazonbot and MistralAI-Training | Amzn-SearchBot, MistralAI-Index | Amzn-User, MistralAI-User, DuckAssistBot | The other AI crawlers |
Two gaps in that table catch people out. ByteDance's Bytespider is common in logs but has no public documentation I could find, so there is nothing official to say about its purpose or whether it follows robots.txt. And Microsoft and Apple control AI use mostly through meta tags, which robots.txt cannot do for them: a page can stay in Bing and in Apple search while being kept out of Copilot or out of Siri's generated answers.
How much they crawl, and what comes back
AI crawling is no longer a rounding error. In its review of 2025, Cloudflare reported that AI crawlers made up 20% of the verified bot traffic on its network, against 40% for search engine crawlers. GPTBot alone accounted for about 7.5% of verified bot traffic and Googlebot for over 28%. Across HTML requests, AI bots averaged 4.2% of all traffic during the year, slightly less than Googlebot's 4.5% on its own.14
The more useful figure for a business is what each operator sends back. Cloudflare measures this as a crawl-to-refer ratio: the HTML pages a platform's bots requested, divided by the visits that arrived with a referrer from that platform. Over 2025 it reported Anthropic's ratio reaching up to 500,000 to one early in the year and then settling between about 25,000 and 100,000 to one. OpenAI's peaked at 3,700 to one in March. Perplexity's stayed below 200 to one from September. Microsoft's peaks ran between about 50 and 70 to one, and Google's moved between about 3 and 30 to one.14
| Platform | Reported range in 2025 | What drives it |
|---|---|---|
| About 3:1 to 30:1 | Crawling mostly for a search engine that sends traffic | |
| Microsoft | Peaks of about 50:1 to 70:1 | Bing search plus Copilot |
| Perplexity | Below 200:1 from September, after a spike above 700:1 in March | A search product that cites and links on most answers |
| OpenAI | Peak of 3,700:1 in March | Heavy training crawling alongside ChatGPT search |
| Anthropic | About 25,000:1 to 100,000:1 from May, with an early peak of 500,000:1 | Mostly training crawling, with few outbound links |
Purpose explains most of the gap. Across a fixed set of customers in the 12 months to July 2025, Cloudflare classed 80% of AI crawling as training, 18% as search and 2% as user actions.15 Its 2025 review found training crawling running at seven to eight times search crawling at its peak, while user-action crawling grew more than fifteen-fold over the year from a low base.14 That last trend is the one I would watch. User-triggered fetches happen because a real person asked about something, and they are growing faster than either of the other two.
Cloudflare's figures cover traffic on its own network, which skews towards the sites that choose Cloudflare, and the ratio counts only visits that carry a referrer. Some assistant traffic arrives without one, so the real referral numbers are somewhat higher. The direction is still clear: training crawlers take a great deal and return very little, and search crawlers and fetchers are the ones with a route back to your site.
Deciding what to let in
More sites are saying no to training. A large audit by the Data Provenance Initiative, led by Shayne Longpre and covering about 14,000 web domains behind common AI training sets, found that within a single year from 2023 to 2024, restrictions in robots.txt had fully closed off 5% or more of all tokens in the C4 dataset and 28% or more of its most actively maintained, critical sources.16 Cloudflare's 2025 review of the top 10,000 domains found that the user agents with the most whole-site disallows were AI crawlers such as GPTBot, ClaudeBot and CCBot, while Googlebot and Bingbot were mostly given partial disallows.14 Across the web as a whole, naming AI bots is still a minority practice: HTTP Archive's 2025 Web Almanac found GPTBot mentioned in 4.5% of desktop robots.txt files and ClaudeBot in 3.6%.17
None of that tells you what your own site should do. The decision depends on how the business makes money from its content. I work through it with three questions.
For most SaaS, ecommerce, B2B and local businesses my default is the first configuration in how to set up robots.txt for AI crawlers: be cited, but not trained on. That post has the worked files for all three goals and the parsing rules that catch people out, chief among them that a bot named in its own group stops reading your User-agent: * rules.
The controls you actually have
robots.txt is the main control, but it is one of several, and each works at a different layer.
| Control | What it does | Limits |
|---|---|---|
| robots.txt | Tells compliant crawlers which paths they may request, per user agent token. | A request, not access control.18 Some user-triggered fetchers do not follow it. |
| Page-level meta tags and headers | noindex keeps a page out of indexes, and snippet controls limit what an AI answer can use. Google applies nosnippet and max-snippet to AI Overviews and AI Mode,19 Bing's noarchive keeps a page out of Copilot answers,9 and Apple uses nosnippet to keep a page out of AI-generated answers in Siri and Search.6 | The crawler has to be allowed to fetch the page to read the tag. |
| Platform settings | The Search generative AI control in Search Console excludes your content from AI Overviews, AI Mode and generative features in Discover without leaving Google Search.20 | Specific to one platform. |
| CDN and firewall rules | Enforce a block, a challenge or a rate limit before the request reaches your server, whatever robots.txt says. | Easy to set too broadly and block crawlers you wanted. See when your CDN blocks AI crawlers. |
| Pay per crawl | Charges crawlers for access. Cloudflare's version answers with an HTTP 402 status and a price, and relies on the crawler proving its identity with signed requests.21 | Launched as a private beta in July 2025, and only works with crawlers that take part. |
Two pieces of standards work are worth following because they will change these controls. The IETF's AI Preferences working group is drafting a shared vocabulary for how content may be used by automated systems, with three categories so far: AI training, AI use (content used as input to a model, as in grounding) and search. A companion draft covers attaching those preferences to content through robots.txt and HTTP headers. The vocabulary draft was on its eighth revision in September 2026 and states that it does not yet reflect working group consensus.22 If it is adopted, a site could say "search yes, training no" once, in a form every operator reads, in place of listing each company's tokens.
The second is identity, covered in the next chapter.
Telling a real crawler from an impostor
A user agent string is just text, and scrapers routinely borrow the names of well-known crawlers. Before you draw conclusions from your logs, or write a firewall rule that lets a bot through, check that the request really came from the operator. There are three ways to do it, and the operator decides which ones are available.
- Published IP ranges. OpenAI, Anthropic, Perplexity, Microsoft, Apple and Common Crawl publish JSON files listing the IP ranges their bots use,121123624 and Google publishes separate files for its common crawlers, special crawlers and user-triggered fetchers.25 Match the request IP against the list for that user agent. The lists change, so fetch them on a schedule and do not hard-code them.
- Reverse DNS. Look up the hostname for the IP, check it belongs to the operator's domain, then look up that hostname and confirm it resolves to the same IP. Google documents this for its crawlers,25 Microsoft for Bingbot, whose hostnames end in search.msn.com,23 and Apple for Applebot, whose hostnames end in applebot.apple.com.6 Anthropic, Perplexity and Meta document no reverse DNS check, so for them the IP list is the test.
- Signed requests. Newer agents sign each request cryptographically under a protocol called Web Bot Auth, built on the HTTP Message Signatures standard, RFC 9421. The request carries a
Signature-Agentheader pointing at the operator's public keys, so a server or CDN can verify it without trusting the IP. The IETF moved the protocol to a working group draft in September 2026, with authors from Cloudflare and Google,26 and Google already signs some requests from Google-Agent this way.3
In practice most site owners never do this by hand. CDNs such as Cloudflare keep a list of verified bots, checked by signatures, IP lists or reverse DNS,27 and log tools such as Screaming Frog's Log File Analyser verify the main search engine bots automatically.28 What matters is knowing which of your numbers are verified and which only count requests that claim a name.
What an AI crawler can see on your page
Being allowed in is the first gate. The second is whether the crawler can read anything once it arrives. The providers do not document their rendering, so the best public evidence is a December 2024 study by Vercel and MERJ, based on monitoring nextjs.org and the Vercel network over several months. It found that none of the major AI crawlers it measured executed JavaScript, including OpenAI's crawlers, Anthropic's ClaudeBot, Meta's, ByteDance's and PerplexityBot. ChatGPT's and Claude's crawlers fetched JavaScript files without running them. The exceptions were Google's Gemini, which uses Googlebot's infrastructure, and Applebot, which renders with a browser-based crawler.29
The same study found that about 34% of fetches by the ChatGPT and Claude crawlers hit 404 pages, against about 8% for Googlebot.29 AI crawlers are less practised at choosing URLs, so redirects from old URLs and a clean internal link structure matter more for them, not less.
The practical rule follows. Anything you want an assistant to quote, such as prices, plan limits, specifications, opening hours and policies, should be in the HTML your server sends. Checking what crawlers see on a JavaScript site shows how to test it. The study is nearly two years old, so check your own logs before assuming it still holds for a given crawler.
Finding AI crawlers in your logs
Server logs are the only place you can see what every crawler requested and what your server sent back. Analytics tools that run in the browser miss crawlers entirely, because crawlers do not run the tracking script. The method is the same as for Googlebot, covered in the log analysis chapter of the technical SEO guide: filter by user agent, verify the IPs, then look at which URLs each bot requests and which status codes it gets.
# Requests per AI user agent in a combined-format access log
grep -oiE "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User|Meta-ExternalAgent|Meta-ExternalFetcher|Applebot|Amazonbot|CCBot|Bytespider" access.log | sort | uniq -c | sort -rn
# Status codes served to anything calling itself OAI-SearchBot (verify the IPs separately)
grep "OAI-SearchBot" access.log | awk '{print $9}' | sort | uniq -c | sort -rnThree patterns are worth looking for. A search crawler that only ever receives 403s, 429s or challenge pages is being blocked at the edge. A training crawler you have disallowed that keeps requesting pages other than robots.txt more than a day after the change is either not compliant or not genuine. And user-triggered fetches from ChatGPT-User, Claude-User or Perplexity-User are as close as logs come to a record of your pages being used in answers, because each one follows a person's question.1211 They are not a complete record, since assistants also answer from pages fetched earlier.
The other half of the picture is the visits that come back. How to measure visibility in AI search covers referral traffic and what the assistants report.
An order of work
Common questions
01What is the difference between GPTBot, OAI-SearchBot and ChatGPT-User?
02Will blocking AI crawlers hurt my Google rankings?
03Do AI crawlers follow robots.txt?
04Should I block all AI crawlers?
05How do I know a crawler in my logs is real?
Sources
- Platform docs20
- Regulator3
- Industry study4
- Research2
- 01Overview of OpenAI CrawlersOpenAIPlatform docs
- 02Does Anthropic crawl data from the web, and how can site owners block the crawler?Claude Help CenterPlatform docs
- 03Authenticate requests with Web Bot Auth (experimental)Google Crawling InfrastructurePlatform docs
- 04ChatGPT Work's cloud browser allowlistingOpenAI Help CenterPlatform docs
- 05Google's common crawlersGoogle Crawling InfrastructurePlatform docs
- 06About ApplebotApple SupportPlatform docs
- 07AI features and your websiteGoogle Search CentralPlatform docs
- 08List of Google user-triggered fetchersGoogle Crawling InfrastructurePlatform docs
- 10Which Crawlers Does Bing Use?Bing Webmaster ToolsPlatform docs
- 11Perplexity CrawlersPerplexityPlatform docs
- 12Meta Web CrawlersMeta for DevelopersPlatform docs
- 13Training Data for the Price of a Sandwich: Common Crawl's Impact on Generative AIMozilla Foundation, Stefan Baack and Mozilla Insights (February 2024)Research
- 14The 2025 Cloudflare Radar Year in ReviewCloudflare Blog (December 2025, data for 1 January to 2 December 2025)Industry study
- 15The crawl-to-click gap: Cloudflare data on AI bots, training, and referralsCloudflare Blog (August 2025)Industry study
- 16Consent in Crisis: The Rapid Decline of the AI Data CommonsLongpre et al., Data Provenance Initiative (July 2024)Research
- 17SEO: 2025 Web AlmanacHTTP ArchiveIndustry study
- 18RFC 9309: Robots Exclusion ProtocolIETF (September 2022)Regulator
- 19Robots meta tag, data-nosnippet, and X-Robots-Tag specificationsGoogle Search CentralPlatform docs
- 20Search generative AI controlSearch Console HelpPlatform docs
- 21Introducing pay per crawl: enabling content owners to charge AI crawlers for accessCloudflare Blog (July 2025)Platform docs
- 22A Vocabulary For Expressing AI Usage Preferences (draft-ietf-aipref-vocab-08)IETF AI Preferences Working Group (September 2026)Regulator
- 23How to Verify BingbotBing Webmaster ToolsPlatform docs
- 24CCBotCommon CrawlPlatform docs
- 25Verify requests from Google crawlers and fetchersGoogle Crawling InfrastructurePlatform docs
- 26HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00)IETF Web Bot Auth Working Group (September 2026)Regulator
- 27Verified botsCloudflare DocsPlatform docs
- 28Log File AnalyserScreaming FrogPlatform docs
- 29The rise of the AI crawlerVercel and MERJ (December 2024)Industry study