Skip to content
Tenten GEO

Split-Bot robots.txt Strategy

Block Training, Allow Retrieval

Separate training, search indexing, and user-triggered fetching before changing robots.txt. This guide covers provider-specific controls, Google-Extended, CDN checks, and a split-bot template. Crawl access does not guarantee a citation or referral.

v1.0 · June 2026 · Tenten GEO Research

CH.01

The Cost of Blocking Everything: You're Not Blocking Crawlers, You're Blocking Referrals

A blanket block can restrict search crawlers along with training crawlers. Identify each provider’s training, search, and user-triggered fetchers before choosing what to allow. Their controls and exceptions differ.

Most people block AI crawlers because they 'don't want to be used for training.' The reasoning is sound; the execution is where it falls apart. They write User-agent: * / Disallow: / in robots.txt, or flip on Cloudflare's one-click 'Block AI Bots,' thinking it only stops training. In reality, you've also blocked the 'retrieval crawlers' that power the cited answers in ChatGPT, Perplexity, and Claude - the very ones that send traffic back to your site.

Lay out the proportions and you'll see why a blanket block is pure waste. Cloudflare's May 2026 observations show that 51.8% of AI crawler requests are pure training, 35.7% are mixed-purpose, and only 9.3% are pure retrieval. The training traffic you actually want to block is more than half; the pure retrieval you must never block is under a tenth. Block everything with one rule and you're locking out the only guests who bring money back - that sub-10% - just to shoo away the half you didn't want.

Figure 1.1

AI Crawler Request Mix: Training vs Mixed vs Retrieval

Cloudflare (May 2026) AI crawler traffic observation

Pure training
51.8%
Mixed-purpose
35.7%
Pure retrieval
9.3%

Source: Cloudflare (May 2026). Pure retrieval is just 9.3% - the very type that sends users back to your site, and the one most often killed off as collateral damage by a blanket block. This chart is fully open; feel free to cite it with attribution: Tenten GEO, 'Block Training, Allow Retrieval.'

How high is the cost? 87.4%

ChatGPT drives 87.4% of AI referral traffic (Conductor). Block its retrieval crawler and you're voluntarily shutting off the single biggest AI traffic faucet there is right now. The training bandwidth you save is measured in KB; the referral traffic you lose is measured in revenue - no matter how you do the math, you lose.

Training and search access have separate controls. OpenAI separates GPTBot from OAI-SearchBot, and Anthropic separates ClaudeBot from Claude-SearchBot. Google-Extended controls Gemini training and some grounding uses without affecting Google Search inclusion or rankings. These distinctions do not establish a universal ranking or citation guarantee.

CH.02

Crawler Map: Check Each Purpose and Control

One provider can use different agents for training, search indexing, and user-triggered retrieval. Check the documented purpose and control for each name; a shared company name does not make their rules interchangeable.

GPTBot collects content that may be used for training; OAI-SearchBot supports ChatGPT search. ChatGPT-User handles certain user-triggered visits and does not determine Search inclusion. Anthropic distinguishes ClaudeBot, Claude-SearchBot, and Claude-User for training, search, and user requests. Search access supports discovery; it does not guarantee a source link in every answer.

Conceptual diagram: splitting two kinds of AI crawlers at the door - letting through the retrieval crawler carrying an attribution tag, and blocking the training crawler
Both are AI crawlers: allow retrieval, block training
Bot namePurposeAllow / BlockEngine / Purpose
GPTBotTrainingBlockOpenAI content collection for potential foundation-model training
OAI-SearchBotRetrievalAllowSupports ChatGPT search; separate from user-triggered ChatGPT-User visits
ChatGPT-UserRetrieval (live)AllowUser-triggered visits; robots.txt rules may not apply
ClaudeBotTrainingBlockAnthropic model training (NoHacks / Rankry)
Claude-SearchBotRetrievalAllowIndexes content for Claude search; Claude-User handles user requests
CCBotTrainingBlockCommon Crawl, feeds training for many models
PerplexityBotRetrievalAllowPerplexity search results and links; not foundation-model training
GooglebotRetrieval / RankingAllowGoogle Search crawling; AI links require indexing and snippet eligibility, without guaranteed inclusion
Google-ExtendedTraining / Grounding controlDepends on needA robots control token for Gemini training and some Gemini/Vertex grounding, not a separate HTTP user-agent; it does not affect Google Search inclusion or rankings
BingbotRetrieval / RankingAllowBing Search and Microsoft Copilot

Provider-specific controls: training, search, and user requests have different roles. Google-Extended also covers grounding; search access alone does not guarantee a citation.

Chapter takeaway

Use each provider’s documented agent and purpose rather than a naming shortcut. OAI-SearchBot opt-out excludes content from ChatGPT search answers, although navigational links may remain. User-triggered fetchers have separate rules; do not assume every agent with “Search” or “User” in its name behaves alike.

CH.03

Precise Split-Bot Setup: Line-by-Line robots.txt Rules

Match the crawler’s product token to its robots.txt group. Under RFC 9309, matching groups are combined; the * group is the fallback when no product-token group matches. Within the applicable group, the longest matching path rule applies; an equivalent Allow takes precedence over Disallow.

A named group with Allow: / can allow a search crawler even when the fallback User-agent: * group has Disallow: /. Omitting a named group does not mean access is allowed: that crawler may inherit the wildcard restriction. Check the applicable group and path instead of assuming file order controls the result.

  • →Training policy: use separate User-agent groups for GPTBot, ClaudeBot, and CCBot with Disallow: / if you want to restrict those crawlers. Treat Google-Extended separately: its Disallow also restricts covered grounding uses, not just training.
  • →Search access: use User-agent: OAI-SearchBot with Allow: /, and assess Claude-SearchBot and PerplexityBot separately. ChatGPT-User is user-triggered and robots.txt may not apply; Perplexity-User generally ignores it. Anthropic states that its three agents honor robots.txt.
  • →Search engines - allow them, no exceptions: keep Googlebot and Bingbot fully crawlable; don't lump them in with AI training crawlers
  • →Check the wildcard fallback: User-agent: * with Disallow: / can block agents without a matching named group. Explicit matching groups are not automatically overridden by that wildcard. robots.txt is a crawl instruction, not enforced access control.

The ceiling of robots.txt

robots.txt is a crawl instruction rather than a server lock. Anthropic says its agents honor it; OpenAI warns that ChatGPT-User rules may not apply, and Perplexity says Perplexity-User generally ignores it. Use host or CDN controls when enforcement is required, and verify agent identity rather than trusting a name alone.

CH.04

CDN-Layer Control: The Wall That Actually Holds

Robots.txt is a request, the CDN is enforcement. If what you need is a 'guaranteed block' rather than a 'polite ask,' access control belongs at the host or CDN layer - returning a 403 on a user-agent rule, not just a line in robots.txt.

Why? Because robots.txt has no enforcement power. A crawler that spoofs its user-agent or simply ignores the rules can still scrape the directories you Disallowed. When your goal is something with real stakes, like 'don't get used for training,' a sign on the door isn't enough - you need the CDN/WAF to intercept by user-agent before the request ever reaches your content.

Control layerMechanismGood forLimitation
robots.txtA declared sign (voluntary compliance)Splitting training / retrieval for well-behaved mainstream crawlersNo enforcement; can be ignored or bypassed by spoofing
CDN / WAF ruleReturn 403 / intercept by user-agentForcibly blocking training crawlers - actually 'holds the line'Requires a correctly maintained list; don't hit retrieval crawlers by mistake
Cloudflare one-click blockManaged rule, one-click Block AI BotsConvenienceOften blocks retrieval crawlers too - a high-risk blanket move

Three layers of access control compared - robots.txt declares the split, CDN/WAF enforces it, and the one-click blanket block is the easiest and the most dangerous

The right way to pair the two layers

Spell out your split intent in robots.txt (allow retrieval, block training), and have the CDN/WAF add forced interception for the training crawlers you've marked 'block.' Whatever you do, don't use a 'block all AI crawlers' managed rule at the CDN - that's the express route to shutting off the 87.4% referral stream from Chapter 1 (Conductor) with your own hands. When you set the rules, be sure to explicitly whitelist retrieval crawlers like OAI-SearchBot, Claude-SearchBot, and PerplexityBot.

CH.05

Verify It Took Effect: Confirm Retrieval Crawlers Can Still Get In

Configured doesn't mean correct. The most dangerous failure of a split is 'silently blocking the wrong one' - you think you only blocked training, but you actually blocked the retrieval crawlers too, with no error anywhere. You have to verify actively, not assume.

Verification has only one goal: confirm that 'the training crawlers you wanted blocked are blocked, and the retrieval crawlers you wanted allowed flow freely.' Check both sides - checking only that training was blocked, without checking that retrieval was allowed, is verifying just half. The five steps below run in under half an hour for one pass.

STEP 1

Check the server access log

Inspect verified crawler requests for 200, 403, or 429 responses and compare them with your intended policy. A robots.txt Disallow does not itself produce a 403: that response requires an enforced host or CDN rule. Check training restrictions and search access separately.

STEP 2

Spoof the user-agent with curl and test live

Use curl -A to check how your host or CDN responds to a supplied agent string. Expect 403 for training only when an enforcing rule is configured. This tests that rule, not the identity or behavior of a real crawler; corroborate actual requests with provider IP ranges and logs.

STEP 3

Check the robots.txt parse

Use a robots.txt testing tool and enter each user-agent one by one, confirming OAI-SearchBot/Claude-SearchBot/PerplexityBot are judged Allowed and GPTBot/ClaudeBot/CCBot are judged Disallowed. Pay special attention to any leftover User-agent: * / Disallow: / that's hitting retrieval crawlers by mistake.

STEP 4

Test by asking the AI engines live

Ask ChatGPT and Perplexity about your brand and topics, then record any cited URLs as answer observations. A citation can come from an existing index; its presence does not prove a fresh fetch, and its absence does not by itself prove access was blocked.

STEP 5

Monitor AI referrals

Track referrals from chatgpt.com and perplexity.ai as outcome observations. Access changes do not guarantee that referrals hold or rise. If traffic changes, check logs and crawl policy alongside other possible causes before assigning it to a blocked crawler.

Chapter takeaway

The order of verification is 'machine first, answers second': use logs and curl to confirm the crawler layer is clear (STEP 1-3), then use real questions and referrals to confirm the effect (STEP 4-5). Skip the machine layer and jump straight to the answers, and you'll mistake 'the index hasn't updated yet' for 'the setup failed,' then scramble to fix the wrong thing.

CH.06

The Split-Bot Template: Copy, Paste, Done

You don't have to write it from scratch. The robots.txt template below already blocks training and allows retrieval for you - read it line by line, swap in your domain, and it's ready to ship.

How to use it: write the directives in the table below, in order, into the /robots.txt at your site's root. Every training crawler is its own block (one User-agent line, one Disallow line); retrieval crawlers get an explicit Allow; keep the Sitemap at the end. Remember to pair this with Chapter 4 - add the same 'block' crawlers to your CDN/WAF's forced interception rules.

User-agentDirectiveNotes
GPTBotDisallow: /Restricts GPTBot training access; OAI-SearchBot is controlled separately
ClaudeBotDisallow: /Blocks Anthropic training
CCBotDisallow: /Blocks Common Crawl (a training source for many models)
Google-ExtendedDisallow: /A robots control token for Gemini training and some Gemini/Vertex grounding, not a separate HTTP user-agent; it does not affect Google Search inclusion or rankings
OAI-SearchBotAllow: /Supports ChatGPT search; separate from user-triggered ChatGPT-User visits
ChatGPT-UserAllow: /User-triggered visits; robots.txt rules may not apply
Claude-SearchBotAllow: /Indexes content for Claude search; Claude-User handles user requests
PerplexityBotAllow: /Allow - Perplexity answer indexing
GooglebotAllow: /Google Search crawling; AI links require indexing and snippet eligibility, without guaranteed inclusion
BingbotAllow: /Allow - Bing and Copilot
(end of file)Sitemap: https://your-domain/sitemap.xmlLets every allowed crawler find your full content list

Example policy template: four Disallow and six Allow groups. Google-Extended also restricts covered grounding; ChatGPT-User Allow is advisory. Review each provider’s scope and your own access policy before use.

One last word

In 2026, the cost of blocking the wrong user-agent is being silently deleted from the world's biggest AI traffic gateway (ChatGPT, 87.4% of AI referral traffic, Conductor) - with no error message to warn you. Block training, allow retrieval. This isn't a multiple-choice question of whether to do it; it's a life-or-death question of whether you still want to be cited.

Sources & methodology

The cited request mix of 51.8% / 35.7% / 9.3% is attributed to Cloudflare (May 2026), and the 87.4% AI referral share to Conductor. These are different measures and should not be combined. Crawler purposes and exceptions were checked against official OpenAI, Anthropic, Perplexity, and Google documentation on 5 October 2026: https://developers.openai.com/api/docs/bots ; https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler ; https://docs.perplexity.ai/docs/resources/perplexity-crawlers ; https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers . robots.txt group and path rules follow RFC 9309: https://www.rfc-editor.org/rfc/rfc9309 . The templates are example policies to check against your architecture, not a claim about this site’s deployed policy or guaranteed rankings, citations, or revenue.

© 2026 Tenten GEO · Feel free to cite this whitepaper with attribution.

Discuss your AI search priorities

Request a 30-minute benchmark interpretation

Send a booking request. We’ll email you to confirm a time within 24 hours.