How-To October 16, 2026 · 15 min read

Cloudflare Settings That Block Scrapers but Keep AI Crawlers

Half of the users in our analytics last month were datacenter bots from one country, and Cloudflare's default answer to bots is a managed rule that also blocks GPTBot, ClaudeBot and PerplexityBot, the crawlers that send us our best visitors. This is the configuration that separates the two: what to turn off, what to turn on, the exact rules in the order they run, and how to verify that Googlebot and the AI crawlers still get a 200.

~50% Of Our Users Last Month Were Datacenter Bots
1 Default Rule That Blocks AI Crawlers Too
5 Rules, In Order, On The Free Plan
3 Places To Verify After Setup
Quick Answer

On Cloudflare, the settings that stop scrapers and the settings that stop AI crawlers are different switches, and the defaults conflate them. First, go to Security and set AI bot blocking to off (the managed "Block AI bots" rule has been on by default for every zone created after July 1, 2025 and blocks GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot and the rest), and in AI Crawl Control allow the crawlers you want cited by. Second, leave Bot Fight Mode off, because it cannot be customized or skipped by your own rules and it challenges verified crawlers' peers indiscriminately. Third, write WAF custom rules in this order: a Skip rule for verified bots (cf.client.bot, available on every plan) so nothing below touches Googlebot, Bingbot or the AI crawlers; a Block rule for requests that hit login, xmlrpc and search endpoints at volume; a Managed Challenge for traffic from the countries and networks your analytics show as datacenter junk, scoped to non-verified clients; a rate limit on the paths scrapers hammer; and, on Pro and above, Super Bot Fight Mode set to challenge likely-automated and block definitely-automated traffic with Optimize for WordPress on. Then verify in three places: Security Events should show blocks only on the traffic you meant to block, AI Crawl Control should show the allowed crawlers getting 200s, and Search Console crawl stats should be unchanged. Robots.txt still governs the polite crawlers; Cloudflare governs the ones that ignore it.

The bots you want to block ignore robots.txt. The bots you want to keep obey it. Cloudflare's one-click answer blocks the obedient ones.

This is a first-party how-to. Our site sits behind Cloudflare, our robots.txt welcomes every crawler, and in the last thirty days of analytics about half of all users were from a single country at roughly one second of engagement, which is a datacenter rather than a person. The AI crawler log analysis published earlier in this series showed which bots read the site; this post is what we did about the ones we did not want, without touching the ones we did.

Scope And Dates

Cloudflare settings as of September 16, 2026, on the free plan first, with paid-plan variants noted. Cloudflare renames and reorganizes these controls often (AI Audit became AI Crawl Control; the Bots page moved into Security Settings), and one guide reports a further change to AI Crawl Control on September 15, 2026 that splits crawlers into Search, Agent and Training categories with different defaults; that is labeled as reported below. Menu paths may differ from what you see; the rule logic does not. Evolve Media Agency sells AI search visibility services and has an interest in your crawlers being let in; we do not sell Cloudflare configuration.

01/12 Section

Two Problems That Look Like One

Definition

Verified bot vs unverified automation. Cloudflare verifies the identity of well-known crawlers (Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot and others) through reverse DNS, published IP ranges, ASN checks and, increasingly, cryptographic signatures, and exposes that verification as a boolean (cf.client.bot on every plan; cf.bot_management.verified_bot on Bot Management). Unverified automation is everything else that is not a browser: scrapers, vulnerability scanners, credential stuffers and the datacenter traffic that inflates analytics. The two are separable in rules, and the whole configuration rests on separating them.

The scrapers are the problem: they consume bandwidth, hit login and XML-RPC endpoints, copy content, and pollute GA4 badly enough that sitewide engagement rates are meaningless. The AI crawlers are the opportunity: they are the retrieval agents behind ChatGPT, Claude and Perplexity answers, and the visitors they send engage at organic-search rates. The should-you-block-AI-crawlers guide makes the case for letting them in; this post assumes you agree and shows how to do it without letting the scrapers in with them.

02/12 Section

What Cloudflare Blocks By Default

ControlDefaultWhat It DoesEffect On AI Crawlers
Block AI bots (managed rule)On, for zones created after July 1, 2025Hard-blocks a published list of AI user agents: GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended, CCBot, Bytespider, Amazonbot, Applebot, Meta-ExternalAgent and more, plus unverified bots with similar fingerprintsBlocks the crawlers behind AI citations. Cloudflare reported hundreds of billions of blocked AI requests in the months after launch.
AI Crawl ControlPer-crawler; inherits the blockPer-crawler allow or block, request counts by crawler, and (reported, from September 15, 2026) Search / Agent / Training categories with Search allowed and Agent and Training blocked on ad-bearing pages by defaultThe place to allow the crawlers you want, individually
Bot Fight ModeOffChallenges traffic Cloudflare's heuristics flag as automated; cannot be customized or skipped by custom rulesVerified bots are meant to be exempt, but it is a blunt instrument and its behavior cannot be tuned
Super Bot Fight ModeOff; Pro plan and aboveSeparate handling for definitely automated, likely automated and verified bots; Optimize for WordPress; static resource protectionConfigurable: verified bots allowed, automation challenged or blocked
WAF custom rulesNoneYour own expressions and actions, evaluated in order; free plan includes a handful of rulesWhatever you write

The first row is the one that catches people. A brand that moved to Cloudflare after July 2025, or spun up a new zone for a redesign, has the AI block on and does not know it, and the technical audit for AI crawler blockers finds this more often than any other cause of zero AI citations.

03/12 Section

Step 1: Turn Off The AI Block, Set AI Crawl Control

security > settings > bot traffic AI bot blocking: set to "Do not block" (the label has varied; the managed Block AI bots rule must be off) ai crawl control review every listed crawler; set Allow for the ones you want: allow GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, Bingbot, Googlebot, Applebot, Amazonbot, DuckAssistBot your call CCBot (Common Crawl; feeds many training sets), Bytespider (ByteDance; ignores robots.txt historically), Meta-ExternalAgent, PetalBot, GoogleOther, TikTokSpider if categories are shown (reported) Search: Allow. Agent: Allow (the user-triggered fetchers behind live answers). Training: your policy decision; we allow it, since the training crawlers and the citation crawlers overlap and we want to be in both. # Cloudflare's own Robots Access Control / managed robots.txt options exist here too; we leave them off and manage robots.txt ourselves so the file says what we wrote.

The Search / Agent / Training split, if it is live on your zone, is a real improvement: it lets a publisher allow search-style crawlers while declining training, which is the compromise many ad-funded sites want. For an ecommerce brand or an agency that wants to be cited, all three categories are on, because the retrieval agents (Agent) are what fetch your page when a shopper asks an assistant a question, and blocking them means the assistant answers from memory or from a competitor. The AI crawler list has the per-crawler purposes.

04/12 Section

Step 2: Leave Bot Fight Mode Off

Bot Fight Mode is the free plan's one-toggle bot defense, and the temptation is to turn it on and be done. Two reasons not to, from Cloudflare's own documentation: it cannot be customized, and it cannot be bypassed by WAF custom rules. So if it decides to challenge a request you wanted through, there is no rule you can write to fix it. Verified bots are supposed to be exempt, and in practice the reports of it interfering with legitimate crawlers and with monitoring services are common enough that the safer position is off, with the targeted rules below doing the work.

The exception is an active attack, where a blunt instrument is what you want for an afternoon. Turn it on, ride it out, turn it off. For steady-state protection, it is the wrong tool for a site that wants to be crawled.

05/12 Section

Step 3: The Skip Rule For Verified Bots

Custom rules run in order, and the first one should exempt every verified bot from everything that follows, so that no rule you write later can accidentally catch Googlebot or ClaudeBot.

name Allow verified bots expression (cf.client.bot) action Skip skip check: All remaining custom rules; Rate limiting rules; and, if the option is shown, Bot Fight Mode / Super Bot Fight Mode and the managed Block AI bots rule log on, so Security Events shows the skips and you can see who is being let through # cf.client.bot is true when Cloudflare has verified the client's identity. It is available on every plan. On Bot Management it is equivalent to cf.bot_management.verified_bot, and cf.verified_bot_category lets you narrow to "AI Crawler" or "Search Engine Crawler" if you want to treat them differently. # Do not write this as a user-agent match. A scraper can send "Googlebot" as its user agent; it cannot pass verification.

This rule is the reason the rest can be aggressive. Everything below applies only to traffic Cloudflare could not verify, which is exactly the population you want to be strict with.

06/12 Section

Step 4: Block And Challenge The Junk

# Rule 2: block the endpoints only attackers and scrapers want name Block attack surface expression (http.request.uri.path eq "/xmlrpc.php") or (http.request.uri.path contains "/wp-login.php" and not ip.src in $office_ips) or (http.request.uri.path contains "/wp-json/wp/v2/users") action Block # $office_ips is an IP list you create under Manage Account > Configurations > Lists; put your own addresses in it or use a managed challenge on wp-login instead of a block if your team's IPs change.# Rule 3: challenge the countries and networks that are datacenters for your site name Challenge datacenter-heavy geos expression (ip.src.country in {"SG"}) and not cf.client.bot action Managed Challenge # SG is our example because ~50% of our GA users came from Singapore at ~1s engagement. Yours will differ: read the crawler log analysis first, and put in the countries where you have no customers and lots of one-second sessions. A managed challenge lets a real person through and stops a headless browser. Never Block a whole country you sell to.# Rule 4: challenge obvious automation signatures on the free plan (no bot score available) name Challenge headless and empty clients expression (http.user_agent eq "" or lower(http.user_agent) contains "headless" or lower(http.user_agent) contains "python-requests" or lower(http.user_agent) contains "curl/" or lower(http.user_agent) contains "scrapy" or lower(http.user_agent) contains "go-http-client") and not cf.client.bot action Managed Challenge # Crude, and it catches the lazy majority. Sophisticated scrapers spoof a browser and need the bot score (section 8) or rate limits (section 7).

Order matters: 1 skip, 2 block, 3 challenge, 4 challenge. A verified crawler never reaches 2 through 4. A real customer in Singapore gets a challenge page once and then browses normally. A datacenter session that cannot solve the challenge stops existing in your analytics, which is the point of section 11.

One more note on the free plan: the number of custom rules is capped (five at the time of writing), so the four rules above plus one rate limit use most of it. If you need more, combine rules 3 and 4 into one expression with an "or" between the geo clause and the user-agent clause; the action is the same Managed Challenge, and the Skip rule still protects the crawlers.

07/12 Section

Step 5: Rate Limits On The Paths Scrapers Hit

name Rate limit content scraping match (http.request.uri.path contains "/blog/" or http.request.uri.path contains "/product") and not cf.client.bot characteristic IP address rate more than 60 requests in 10 seconds (tune: a person cannot open 60 pages in 10 seconds; a scraper does) action Managed Challenge, for 10 minutes second rule (paid) login and search endpoints: more than 10 requests in 10 seconds per IP; Block for 1 hour # Verified crawlers are excluded by the "not cf.client.bot" clause, so Googlebot's bursts and GPTBot's fetches are never rate limited. That is deliberate: a crawler that hits a 429 slows its crawl of your site for weeks.

The rate limit is what catches the scraper that passed rule 4 by sending a real browser's user agent. A person reads a page every twenty seconds; a scraper requests three a second. The threshold in the example is generous on purpose; tighten it after a week of reading Security Events.

08/12 Section

Paid Plans: Super Bot Fight Mode And Bot Scores

On Pro and above, Super Bot Fight Mode replaces rule 4 with something better, because it uses Cloudflare's detections rather than a user-agent list.

Super Bot Fight Mode SettingSet ToWhy
Definitely automatedBlockTraffic Cloudflare is certain is a bot; minimal false-positive risk
Likely automatedManaged ChallengeA person passes; a headless browser does not
Verified botsAllowGooglebot, Bingbot and the verified AI crawlers pass untouched
Optimize for WordPressOnExempts WordPress loopback requests (cron, REST calls from the site to itself) that otherwise get challenged and break plugins
Static resource protectionOff unless image scraping is the problemOn, it can challenge hotlinked images and some CDN fetches; on for a site being image-scraped
JavaScript detectionsOnInvisible checks that improve the automated/likely-automated split

On Bot Management (Enterprise, or as an add-on), you get the numeric bot score and Cloudflare's own recommended rules become available as expressions: block cf.bot_management.score eq 1, challenge score between 2 and 29, both with "and not cf.bot_management.verified_bot". Cloudflare's documentation recommends exactly that pair, and it is what the free-plan rules in sections 6 and 7 approximate. The only thing the paid tiers add for this purpose is precision; the architecture is the same.

09/12 Section

Robots.txt Still Does Its Job

Cloudflare and robots.txt are two layers, and the mistake in either direction is thinking one replaces the other.

  • Robots.txt governs the polite crawlers. GPTBot, ClaudeBot, PerplexityBot, Googlebot and Bingbot read it and obey it. A Disallow in robots.txt stops them before Cloudflare ever sees a request. If you want them in, robots.txt has to say so, and ours does: a comment line welcoming AI crawlers, Allow for everything except admin, search and API paths, and a pointer to llms.txt.
  • Cloudflare governs the impolite ones. Scrapers, headless browsers and datacenter fetchers do not read robots.txt. Only a rule at the edge stops them.
  • Cloudflare's managed robots.txt can prepend directives to yours (it is the mechanism behind its content-signals and pay-per-crawl initiatives). If it is on, your published robots.txt is not the one you wrote; check the live file, and turn the managed option off if the prepended lines conflict with your policy.
  • A robots.txt Allow with a Cloudflare block is the worst state. The crawler is invited, requests the page, and gets a 403. Some crawlers back off for weeks after that. Section 10 catches it.

The robots.txt guide for AI crawlers covers the file itself; the llms.txt guide covers the companion file the polite crawlers may also read.

10/12 Section

Verifying You Did Not Block The Good Bots

Three Checks, After Setup And Quarterly Ten Minutes
Check 01
Security Events

Security > Events, last 24 hours, filtered by action. Blocks and challenges should be the geos, user agents and paths you targeted. If a verified crawler's name appears under Block or Challenge, rule 1 is not first, or its skip options are incomplete.

Check 02
AI Crawl Control

Per-crawler request counts and status. GPTBot, ClaudeBot, PerplexityBot and OAI-SearchBot should show requests succeeding (200s). A crawler with requests but no successes is being blocked somewhere; a crawler with zero requests is not visiting, which is a content problem rather than a configuration one.

Check 03
Search Console And Bing Webmaster Tools

Crawl stats should be flat through the change: same request volume, same response codes, no rise in 403s or 429s. A dip in Googlebot crawl after a Cloudflare change is a rule catching it.

Check 04
Fetch As A Crawler

From a machine outside your office, curl a page with a GPTBot user agent. You should get a challenge or a 200 depending on your rule 4 (an unverified client claiming to be GPTBot is exactly what rule 4 should challenge); the real GPTBot, verified, gets 200 per check 02. Both results are correct.

The last check confuses people, so to be explicit: a fake GPTBot from your laptop being challenged is the system working. The real one, from OpenAI's verified ranges, is what check 02 confirms is getting through.

11/12 Section

What Changed In Our Analytics

Before: about half of GA4 users in thirty days from one country at one second of engagement; sitewide engagement rate 20.6%, 7 seconds; every channel-versus-sitewide comparison wrong by about a factor of two. After the geo challenge and the rate limit went in, the datacenter sessions could not complete a challenge, so they stopped reaching the page and stopped firing GA4. We will publish the after numbers once there is a clean month; the honest expectation from the arithmetic in the AI visitor conversion post is a sitewide engagement rate near 40%, which is roughly what organic search already showed.

What did not change: verified crawler traffic, checked in AI Crawl Control and Search Console, and the AI assistant referral channel, which continued to grow. That is the whole test of the configuration. If bot-filtered sitewide engagement rises and crawler traffic holds, you blocked the right things.

Free Resource

The Ecom Profit Box

Our library of ecommerce growth guides, including the AI search visibility and measurement frameworks behind this post.

Get It Free
30 Minutes

Find Out Who Is Getting Blocked

We will check your Cloudflare zone and robots.txt for the AI-crawler blockers, read your bot traffic, and hand you the rule set for your site with the geos and paths filled in.

Book A Call
12/12 Section

The Full Configuration

[ ] security > settings AI bot blocking: off. Bot Fight Mode: off. (Pro+: Super Bot Fight Mode per section 8, Optimize for WordPress on.) [ ] ai crawl control Allow the crawlers you want cited by; decide CCBot, Bytespider and the rest per your policy; if Search/Agent/Training categories are shown, Search and Agent on, Training per policy; managed robots.txt off unless you want its lines [ ] custom rule 1 Skip all remaining rules and rate limits for (cf.client.bot); log on [ ] custom rule 2 Block xmlrpc.php, wp-login outside your IP list, the users REST endpoint [ ] custom rule 3 Managed Challenge for datacenter-heavy geos, and not cf.client.bot [ ] custom rule 4 Managed Challenge for empty or tool user agents, and not cf.client.bot (free plan; superseded by Super Bot Fight Mode on Pro+) [ ] rate limit 60 requests / 10 s per IP on content paths, not cf.client.bot, Managed Challenge 10 min [ ] robots.txt Allow for the crawlers you want; check the live file matches what you wrote [ ] verify Security Events, AI Crawl Control, Search Console crawl stats, curl test; repeat quarterly [ ] analytics note the sitewide engagement rate the day you deploy; read it again in 30 days

The counterweight, since we sell the visibility work that this protects: this is an hour in the Cloudflare dashboard and it is free. Nobody needs an agency to do it, and an agency that charges to "unblock AI crawlers" is charging for switching off one managed rule. What is worth paying for is the content that makes the crawlers worth letting in; the configuration above just opens the door.

Skip the verified bots first, then be as strict as you like with everything else. The order of the rules is the entire trick.
The configuration in one sentence
Key Takeaways

What To Remember

  • Cloudflare's managed "Block AI bots" rule has been on by default for zones created after July 1, 2025 and blocks GPTBot, ClaudeBot, PerplexityBot and the other citation crawlers; turn it off and allow crawlers individually in AI Crawl Control.
  • Leave Bot Fight Mode off; it cannot be customized or skipped by your own rules, and the targeted rules below do the job with control.
  • The first custom rule is a Skip for verified bots (cf.client.bot, on every plan), so nothing written afterward can touch Googlebot, Bingbot or the AI crawlers; never identify good bots by user-agent string.
  • Then block the attack surface, managed-challenge the datacenter-heavy geos and tool user agents, and rate-limit content paths, all scoped to non-verified clients.
  • On Pro and above, Super Bot Fight Mode replaces the user-agent rule: block definitely automated, challenge likely automated, allow verified, Optimize for WordPress on.
  • Robots.txt still governs the polite crawlers; a robots.txt Allow with a Cloudflare block is the worst state, and Cloudflare's managed robots.txt can rewrite your file without telling you.
  • Verify in Security Events, AI Crawl Control and Search Console after setup and quarterly; success is bot-filtered engagement rising while verified crawler traffic holds.
Sources

Where This Came From

  1. Cloudflare Developer Docs, Challenge bad bots, for the bot-traffic settings table, the statement that verified bots bypass custom rules, and Cloudflare's recommended score-based rules (block score 1; challenge scores 2-29). Cloudflare Developer Docs (Terraform bot_management resource) for the managed robots.txt, content-bot protection and Bot Fight Mode fields.
  2. Adam Arant, August 2026, for the July 1, 2025 default, the managed rule's crawler list as documented in AI Crawl Control, and the skip-rule approach. MQL Magnet, September 2026, for Cloudflare's reported blocked-request volume, the per-crawler allow list and the three verification checks. CF Garage, September 2026, for cf.client.bot availability on every plan versus the Bot Management-only fields. Bitdoze, August 2026, for the reported September 15, 2026 Search / Agent / Training categories and defaults; treated as reported.
  3. Evolve Media Agency's own Cloudflare zone, robots.txt and GA4 property for evolveamz.com, September 2026. First-party; the geo example, the rule ordering and the analytics before-state are ours. After-state numbers will be published once a clean month exists.

Questions

Twelve things site owners ask when the bot chart and the citation chart disagree.
Does Cloudflare block AI crawlers by default?

Yes, for zones created after July 1, 2025. Cloudflare's managed "Block AI bots" rule is on by default and hard-blocks a published list of AI user agents including GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended, CCBot and Bytespider. Older zones that did not opt in are not blocked by the managed rule but may have Bot Fight Mode or per-crawler blocks set. Check Security settings and AI Crawl Control on your zone.

How do I allow GPTBot and ClaudeBot in Cloudflare without letting scrapers through?

Turn the managed AI bot block off, allow the crawlers you want in AI Crawl Control, and make your first WAF custom rule a Skip for verified bots using the expression (cf.client.bot), which is available on every plan. Every rule after it, and your rate limits, then apply only to clients Cloudflare could not verify, which is where the scrapers are. Never identify good bots by user-agent string; a scraper can claim to be Googlebot but cannot pass verification.

Should I turn on Cloudflare Bot Fight Mode?

Not for steady-state protection on a site that wants to be crawled. Per Cloudflare's documentation, Bot Fight Mode cannot be customized and cannot be bypassed by custom rules, so if it challenges a request you wanted through there is no rule you can write to fix it. Use it during an active attack and turn it off after. On Pro and above, Super Bot Fight Mode is configurable and is the better tool.

What is cf.client.bot?

A boolean field in Cloudflare's rule language that is true when Cloudflare has verified the client's identity as a known good bot through reverse DNS, published IP ranges, ASN checks or cryptographic signatures. It is available on every plan and carries the same information as cf.bot_management.verified_bot. The richer fields, cf.verified_bot_category (for example "AI Crawler") and the numeric cf.bot_management.score, require the Bot Management add-on.

What is Cloudflare AI Crawl Control?

Cloudflare's per-crawler dashboard (formerly AI Audit) that lists the AI crawlers hitting your zone with request counts and status, and lets you allow or block each one. One guide reports that from September 15, 2026 it also groups crawlers into Search, Agent and Training categories with Search allowed and Agent and Training blocked on ad-bearing pages by default; if your zone shows those categories, an ecommerce brand that wants citations allows Search and Agent and decides Training by policy.

How do I stop datacenter bot traffic from polluting Google Analytics?

Find where it comes from (a country-level report with engagement time; ours was about half of users from one country at one second), then add a WAF custom rule that applies a Managed Challenge to that geo scoped to non-verified clients: (ip.src.country in {"XX"}) and not cf.client.bot. A headless fetcher cannot complete the challenge, so it never reaches the page and never fires GA4; a real customer from that country passes once and browses normally. Pair it with a rate limit on content paths.

Will these rules block Googlebot or hurt my SEO?

Not if the Skip rule for verified bots is first in order with all remaining rules and rate limits checked in its skip options. Googlebot and Bingbot are verified bots and never reach the block, challenge or rate-limit rules. Verify after setup: Search Console and Bing Webmaster Tools crawl stats should be flat through the change, with no rise in 403 or 429 responses, and Security Events should show no verified crawler under Block or Challenge.

What is the difference between robots.txt and Cloudflare bot rules?

Robots.txt is a request that polite crawlers (Googlebot, GPTBot, ClaudeBot, PerplexityBot) honor before Cloudflare sees anything; a Disallow stops them, and an Allow invites them. Cloudflare rules are enforcement at the edge that applies to everything, including scrapers that never read robots.txt. You need both: robots.txt to invite the crawlers you want, Cloudflare to stop the ones that ignore it. An Allow in robots.txt with a Cloudflare block is the worst combination, because the crawler is invited and then refused.

Does Cloudflare change my robots.txt?

It can. Cloudflare offers a managed robots.txt option that prepends its own directives (used for its content-signal and pay-per-crawl programs) to your file. If it is on, the robots.txt the world sees is not the one you uploaded. Check the live file at yourdomain.com/robots.txt, and turn the managed option off if the added lines conflict with your crawler policy.

How do I rate limit scrapers without rate limiting crawlers?

Add "and not cf.client.bot" to the rate limit's match expression, so verified crawlers are excluded, and set a threshold no person could hit: 60 requests in 10 seconds per IP on content paths is a generous start, with a Managed Challenge for 10 minutes as the action. A crawler that receives 429 responses slows its crawl of your site for weeks, which is why the exclusion matters.

How do I verify AI crawlers can reach my site after configuring Cloudflare?

Three places: Security Events should show blocks and challenges only on the geos, user agents and paths you targeted; AI Crawl Control should show GPTBot, ClaudeBot, PerplexityBot and OAI-SearchBot with requests succeeding (200s); Search Console and Bing crawl stats should be unchanged. A curl from your laptop with a GPTBot user agent being challenged is correct, since it is an unverified client claiming to be a crawler; the real, verified GPTBot getting 200s in AI Crawl Control is the confirmation.

Do I need a paid Cloudflare plan to do this?

No. The free plan gives you the AI bot toggle, AI Crawl Control, the cf.client.bot field, several custom rules and a rate limiting rule, which is everything in the configuration above. Pro adds Super Bot Fight Mode, which replaces the user-agent-based challenge rule with Cloudflare's own automated-traffic detections and an Optimize for WordPress option. Bot Management (Enterprise or add-on) adds the numeric bot score and the verified-bot category field for finer rules; the architecture is the same.

Ian Smith, founder of Evolve Media Agency
Ian Smith
Founder, Evolve Media Agency

Ian founded Evolve Media Agency in 2017 and has spent a decade building Amazon, TikTok Shop and Shopify brands, including his own. The agency produces product photography, video, listing content, email and AI-search visibility work for ecommerce brands in the $1M to $10M range, and runs its own site behind Cloudflare.

Read Ian's Story

Who Is Your Zone Blocking?

Bring your Cloudflare login or a screenshot of your Security settings and AI Crawl Control. In 30 minutes we will find the AI-crawler blockers, read your bot traffic, and hand you the rule set with your geos and paths filled in.

1
Skip Rule, First In Order