Skip to content

Module 04 · Technical SEO · Guide 2 of 9

AI Crawlers & Bot Access

Which AI crawlers exist in 2026, which respect robots.txt, and how to allow AI search while choosing your policy on training, with robots.txt recipes.

By Published 9 min readIntermediate

What you'll learn

  • Sort any AI bot into training, search-index or user-triggered, and predict what blocking it costs.
  • Write robots.txt rules (and a Next.js app/robots.ts) that allow AI search but block training.
  • Choose between Google-Extended, nosnippet and Search Console's Search generative AI setting.
  • Check whether your CDN is blocking AI crawlers without your knowledge.
  • Verify real bots by IP and reverse DNS and measure AI bot traffic in your logs.

AI companies now send more crawlers to your site than search engines ever did, and they do very different things. Some collect pages to train models, some build a search index that answers cite, and some fetch a page because a person asked right now. Block the wrong one and you vanish from ChatGPT, Claude or Perplexity answers. Allow everything without thinking and your content trains models you never agreed to. This guide is the map, current as of 2026-10-05.

The three kinds of AI bot#

Every major vendor now splits its bots by purpose:

TierWhat it doesExampleWhat blocking costs you
TrainingCollects pages to train foundation modelsGPTBot, ClaudeBot, CCBotNothing in search or citations; your content just isn't used for future training
Search indexBuilds the index that AI answers retrieve and citeOAI-SearchBot, Claude-SearchBot, PerplexityBotCitations and links in that vendor's AI search
User-triggeredFetches a page live because a user asked or an agent is actingChatGPT-User, Claude-User, Perplexity-User, Google-AgentAnswers and agent tasks that need your live page; most of these ignore robots.txt anyway

Three rules follow, and they are the whole game:

  1. Blocking a training bot does not remove you from that vendor's AI search. Blocking its search bot does.
  2. Most user-triggered fetchers ignore robots.txt, because a human initiated the request. Anthropic's Claude-User is the documented exception.
  3. Google is different: its AI features are built from the normal Search index, so the Googlebot rules and Search Console controls apply, not a separate AI crawler.

The 2026 bot directory#

From each vendor's own documentation, fetched 2026-10-05. Tokens are what you write after User-agent: in robots.txt.

VendorTokenTierRespects robots.txt?
OpenAIGPTBotTrainingYes
OpenAIOAI-SearchBotSearch (ChatGPT search)Yes; changes take about 24 hours
OpenAIChatGPT-UserUser-triggered"robots.txt rules may not apply"
OpenAIOAI-AdsBotChecks pages submitted as ChatGPT ads; not used for trainingSee OpenAI docs
AnthropicClaudeBotTrainingYes, including Crawl-delay
AnthropicClaude-SearchBotSearchYes
AnthropicClaude-UserUser-triggeredYes
PerplexityPerplexityBotSearch (not used for training)Yes
PerplexityPerplexity-UserUser-triggered"Generally ignores robots.txt"
GoogleGooglebotSearch, including AI Overviews and AI ModeYes
GoogleGoogle-ExtendedToken only (no crawler): Gemini training and groundingYes (it is a robots.txt token)
GoogleGoogle-AgentUser-triggered agents (added 2026-03-20)Generally ignores robots.txt
MicrosoftBingbotSearch, also grounding for CopilotYes; AI use is controlled with meta tags (below)
AppleApplebotSearch (Siri, Spotlight, Safari); may also trainYes
AppleApplebot-ExtendedToken only: opt out of Apple model trainingYes (token)
Metameta-externalagentTraining and product indexingYes
Metameta-webindexerAI search qualityYes
Metameta-externalfetcherUser-triggeredMay bypass robots.txt
AmazonAmazonbotProduct improvement; may trainYes (robots.txt cached up to 30 days)
AmazonAmzn-SearchBotSearch, including Alexa; not trainingYes
AmazonAmzn-UserUser-triggeredMay bypass some directives
Common CrawlCCBotOpen web archive, widely used as AI training dataYes

Vendors add and rename bots several times a year (Google renamed its NotebookLM fetcher to Google-GeminiNotebook on 2026-07-16). Re-check the vendor pages in the sources before you ship a policy, and paste your file into the AI crawler checker to see the result per bot.

robots.txt is a request, not a wall#

robots.txt only works on bots that choose to honour it. In August 2025 Cloudflare published evidence that when PerplexityBot and Perplexity-User were blocked, requests continued from a generic Chrome user agent and unlisted IP addresses, and it removed Perplexity from its verified bot list. Whatever you decide, robots.txt states your policy; only a firewall or bot-management layer enforces it.

robots.txt recipes#

One rule trips up almost everyone: a crawler obeys only the most specific group that names it. Once you add User-agent: GPTBot, GPTBot ignores your User-agent: * rules. Repeat any private paths inside every named group.

Recipe 1: allow all AI bots#

If you have no rules for AI bots, they fall under User-agent: *. That is the default: maximum visibility, and your content can be used for training.

Recipe 2: allow AI search, block training#

The most common choice for businesses that want citations but not to supply training data:

public/robots.txt
User-agent: *
Disallow: /api/
Disallow: /admin/
 
# Training crawlers and opt-out tokens
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: meta-externalagent
User-agent: Amazonbot
Disallow: /
 
Sitemap: https://example.com/sitemap.xml

Search bots (OAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot, Bingbot) fall through to the * group. The costs: blocking Google-Extended also stops grounding in Gemini Apps, and Amazonbot and meta-externalagent serve product features as well as training, so check the vendor pages if those surfaces matter to you.

The same policy in Next.js, generated from code so the private paths stay in one place:

app/robots.ts
import type { MetadataRoute } from "next";
 
const privatePaths = ["/api/", "/admin/"];
 
const trainingBots = [
  "GPTBot",
  "ClaudeBot",
  "CCBot",
  "Google-Extended",
  "Applebot-Extended",
  "meta-externalagent",
  "Amazonbot",
];
 
export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      {
        userAgent: "*",
        disallow: privatePaths,
        // Optional: Cloudflare's Content Signals line (Next.js 16.3+ "other")
        other: { "Content-Signal": "search=yes, ai-train=no" },
      },
      { userAgent: trainingBots, disallow: "/" },
    ],
    sitemap: "https://example.com/sitemap.xml",
  };
}
public/robots.txt (excerpt)
User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: ClaudeBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: CCBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: meta-externalagent
User-agent: meta-webindexer
User-agent: Amazonbot
User-agent: Amzn-SearchBot
Disallow: /

What it costs: no citations in ChatGPT search, Claude or Perplexity. What it doesn't do: remove you from Google's AI Overviews and AI Mode (that's Googlebot plus the controls below), stop fetchers that ignore robots.txt, or stop bots that don't identify themselves.

Google's AI features: the right control#

You wantUse
Out of AI Overviews, AI Mode and Discover's generative features, but still in normal results with normal snippetsSearch Console → Settings → Search generative AI → Exclude (UK from 2026-06-03, global from 2026-08-31). Options are Include (default), Exclude and Inherit from parent. Google says it isn't used as a ranking or inclusion signal for the rest of Search; it takes about 1 to 2 days
Keep one passage out of snippets and AI answersdata-nosnippet on that element
Limit how much text can be quotedmax-snippet:[n] robots meta
No snippet at all, including AI usenosnippet (also removes your classic snippet)
Content not used to train Gemini or ground Gemini AppsGoogle-Extended in robots.txt
Out of Google entirelynoindex

The Search Console setting works per property, so a URL-prefix property can scope it to one section. Note one inconsistency in Google's docs: the Search Console help page says Google-Extended also limits training of the models behind Search's generative features, while the crawler page only lists Gemini Apps and Vertex AI. Don't promise a client more than either page says. Weigh the trade-off with data first: Measuring AI Visibility shows how to see what AI features send you.

Bing and Copilot#

Bing doesn't document a separate AI crawler token. Bingbot crawls, and you control AI use with meta tags, per Bing's September 2023 announcement (Search Engine Journal reported in February 2026 that the same controls now appear in Bing's webmaster guidelines):

  • <meta name="robots" content="nocache">: Copilot may use only the URL, title and snippet.
  • <meta name="robots" content="noarchive">: content is not used in Copilot answers or for training Microsoft's foundation models.

The CDN layer: you may be blocking AI bots already#

Check this before anything else, because it overrides your robots.txt:

  • 2025-07-01: Cloudflare began blocking AI crawlers by default for new domains and launched pay per crawl (HTTP 402 responses that let crawlers pay for access, in private beta).
  • 2025-09-24: Cloudflare published the Content Signals Policy, a robots.txt extension: Content-Signal: search=yes, ai-input=…, ai-train=no. Its managed robots.txt adds search=yes, ai-train=no by default. These are stated preferences, not enforcement, and no major AI vendor has publicly committed to honouring them.
  • 2026-09-15: for domains onboarding from that date, Cloudflare's AI Crawl Control defaults to three categories: Search allowed everywhere, Agent and Training blocked on pages that display ads. Crawlers that mix search and training are caught by the training block.

If your site is on Cloudflare, open AI Crawl Control in the dashboard and compare it with your intended policy. Other CDNs and WAFs (Akamai, Fastly, Vercel's firewall) have their own bot rules. A permissive robots.txt does nothing if the edge returns 403.

Verifying real bots#

User agent strings are trivially spoofed, and scrapers love to claim they are GPTBot or Googlebot. Verify before you allowlist or trust log numbers:

  • Google: run a reverse DNS lookup on the IP, check it ends in googlebot.com, google.com or googleusercontent.com, then run a forward lookup and confirm it returns the same IP. Or match against the JSON IP lists, which moved to developers.google.com/crawling/ipranges/ in February 2026 (including user-triggered-agents.json for Google-Agent).
host 66.249.66.1
# 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.
host crawl-66-249-66-1.googlebot.com
# crawl-66-249-66-1.googlebot.com has address 66.249.66.1
  • OpenAI: openai.com/gptbot.json, openai.com/searchbot.json, openai.com/chatgpt-user.json.
  • Anthropic: claude.com/crawling/bots.json.
  • Perplexity: perplexity.com/perplexitybot.json and perplexity.com/perplexity-user.json.
  • Common Crawl: index.commoncrawl.org/ccbot.json, plus reverse DNS to crawl.commoncrawl.org.

Some agents are moving to cryptographic identity: Google documented experimental Web Bot Auth signing on 2026-05-04. Anthropic notes that blocking its bots by IP also stops them reading your robots.txt, so prefer robots.txt for policy and IP checks for verification.

Reading your logs#

Your server or CDN logs show which AI bots actually visit and what they fetch. A quick first pass:

Count AI bot hits in an access log
grep -oE "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User|Google-Agent|CCBot|meta-externalagent|meta-webindexer|Amazonbot|Amzn-SearchBot|Applebot" access.log \
  | sort | uniq -c | sort -rn

How to read it:

  • Search bots (OAI-SearchBot, Claude-SearchBot, PerplexityBot) on a page mean it is in, or being considered for, that index.
  • User-triggered hits (ChatGPT-User, Claude-User, Perplexity-User) are the closest thing to demand data: a real person's question led to your page. Group them by URL to see which pages answer engines use.
  • Training bots hitting thousands of URLs with no referral traffic is normal; Cloudflare measured crawl-to-referral ratios in the thousands to one for some AI vendors in mid-2025.
  • Errors: 403s or 429s to bots you meant to allow usually point at a WAF rule.

Verify suspicious entries against the IP lists above before drawing conclusions.

Two things not to do#

  • Don't cloak. Serving AI bots different content from what users see (stuffed keywords, hidden claims) breaks Google's spam policies, which since 2026-05-15 explicitly cover attempts to manipulate generative AI responses. The same page for everyone.
  • Don't rely on llms.txt as an access or visibility control. It is an optional file for agents; Google said on 2026-06-15 that Google Search doesn't need or use it, and no major AI vendor has committed to using it for citations. The details are in the GEO Playbook.

A five-minute audit#

  1. Fetch https://yoursite.com/robots.txt and paste it into the AI crawler checker.
  2. Confirm every named user-agent group repeats your private-path rules.
  3. Check your CDN's AI bot settings (Cloudflare: AI Crawl Control).
  4. Decide your Google AI-features stance in Search Console's Search generative AI setting.
  5. Grep a week of logs for AI bots and verify the top IPs.

Related: Crawling & Indexing for robots.txt fundamentals, JavaScript SEO for why most AI crawlers need server-rendered HTML, and Generative Engine Optimization for earning the citations once the bots can get in.

Check your understanding

0 of 5 answered

  1. 1.You add User-agent: GPTBot / Disallow: / to robots.txt. What happens to your visibility in ChatGPT search?
  2. 2.A publisher blocks Google-Extended expecting to leave AI Overviews. Two weeks later they are still cited there. Why?
  3. 3.Which of these user-triggered fetchers is documented as honouring robots.txt?
  4. 4.Your logs show thousands of requests with a ClaudeBot user agent from IPs on a residential ISP. What should you conclude?
  5. 5.A new site on Cloudflare gets no ChatGPT or Claude citations, and its robots.txt allows everything. What should you check first?

Sources

Primary documentation this guide was checked against, last reviewed 5 October 2026.

  1. Overview of OpenAI crawlers · OpenAI
  2. Does Anthropic crawl data from the web, and how can site owners block the crawler? · Anthropic
  3. Perplexity crawlers · Perplexity
  4. Google common crawlers (Googlebot, Google-Extended) · Google Crawling Infrastructure
  5. Google user-triggered fetchers (Google-Agent) · Google Crawling Infrastructure
  6. Verify requests from Google crawlers and fetchers · Google Crawling Infrastructure
  7. Search generative AI control · Search Console Help
  8. About Applebot · Apple
  9. Meta web crawlers · Meta for Developers
  10. Amazonbot and Amazon crawlers · Amazon
  11. CCBot · Common Crawl
  12. Announcing new options for webmasters to control usage of their content in Bing Chat · Bing Webmaster Blog
  13. Content Independence Day: no AI crawl without compensation · Cloudflare
  14. Giving users choice with Cloudflare's new Content Signals Policy · Cloudflare
  15. New AI traffic options (Search, Agent, Training defaults from 2026-09-15) · Cloudflare changelog
  16. Perplexity is using stealth, undeclared crawlers to evade website no-crawl directives · Cloudflare

Spotted something wrong or outdated? Report itHow we review

Finished reading?

Mark it complete to track your progress. Saved in this browser, no account needed.