Cloudflare's new Bot Preference Sync writes your AI bot decisions straight into your robots.txt, so the file matches whatever you've set in the dashboard for Search, Agent and Training crawlers. Should you switch it on? For most small sites, yes for AI training bots and no for search and agent categories until you've checked what you're actually blocking.
The feature is two days old at the time of writing, and the pitch is simple: one place to declare your policy, and Cloudflare keeps the plain-text file in sync so you don't have to hand-edit it. That's genuinely handy. It's also the kind of automation that can quietly cut off traffic you wanted, because robots.txt is read by more than the bots Cloudflare has in mind.
This is a decision guide, not a hot take. Below is when to let it run, when to keep your hands on the wheel, and exactly how to audit what it's doing to your file.
What Bot Preference Sync actually changes
It takes the AI crawler policy you set in Cloudflare and mirrors it into the robots.txt served for your domain, split across three intents: Search, Agent and Training. The dashboard becomes the source of truth, and the text file becomes a generated artifact.
The three-way split matters, because "AI bot" is not one thing:
- Training — crawlers gathering text to train models (think GPTBot, ClaudeBot, Google-Extended). Blocking these keeps your content out of future training sets. It has close to zero effect on how people find you.
- Search — bots that index for AI-powered search and answer engines. Block these and you can vanish from the places a growing share of people now start their search.
- Agent — bots acting on behalf of a user in the moment, like an assistant fetching your page to answer a live question. Blocking these can stop real, high-intent visits.
The important thing to understand: robots.txt is a request, not a wall. Well-behaved crawlers respect it; a badly-behaved scraper reads it as a menu. Sync makes your polite sign accurate and consistent — but if you want enforcement, that's Cloudflare's WAF and bot rules doing the work, not the text file.
When auto-sync helps
Turn it on when your AI policy is settled and you're tired of your robots.txt drifting out of date. If you decided months ago to block training crawlers and never got round to updating the file, sync closes that gap for you.
It's a good fit if:
- You've already made a deliberate call on training bots and it isn't going to change weekly.
- You manage several sites and want one consistent policy instead of ten stale text files.
- Nobody on your team is confident hand-editing robots.txt without introducing a typo that blocks the wrong path.
The manual alternative for training-only blocking is genuinely small — a handful of lines like this:
- User-agent: GPTBot → Disallow: /
- User-agent: ClaudeBot → Disallow: /
- User-agent: Google-Extended → Disallow: /
If that's all you want, you don't strictly need automation. Sync earns its place when policy and file keep getting out of step, or when you're managing that across a portfolio.
When it silently costs you traffic
The risk is blanket-blocking Search and Agent bots in one click and losing visitors you never see leave. This is the failure mode nobody notices for weeks, because the graph just... sags.
Search and agent traffic is the front door for a rising slice of discovery. If someone asks an assistant "who does affordable web hosting migration in the EU" and your page is blocked from being fetched, you're not in the answer. There's no bounce, no 404, no error you'll spot in analytics — just an absence. That makes it far more dangerous than a broken link.
Here's the difference in the file itself. An over-broad rule looks like this — one loose category toggle pushing every AI user-agent under a full block:
- User-agent: PerplexityBot → Disallow: /
- User-agent: OAI-SearchBot → Disallow: /
- User-agent: GPTBot → Disallow: /
That top pair are answer-engine fetchers — PerplexityBot and OpenAI's OAI-SearchBot pull your page to build a live response for a real person mid-question. Blocking them with the same brush you use for GPTBot (a training crawler) throws away visits to save your content from a model. A scoped version keeps the discovery bots in and only shuts the training door:
- User-agent: GPTBot → Disallow: /
- User-agent: ClaudeBot → Disallow: /
- User-agent: PerplexityBot → Allow: /
- User-agent: OAI-SearchBot → Allow: /
Two specific traps to watch:
- Over-broad Disallow rules. A generated Disallow: / aimed at one bot category can be wider than you meant if the user-agent match is loose. Read the actual output, not the toggle label.
- Collisions with your existing rules. If you already hand-wrote robots.txt, understand whether sync merges with or overwrites your lines. An overwrite can wipe a carefully-scoped rule that kept crawlers out of /wp-admin/ or a staging path.
My position: block Training freely, and treat Search and Agent as opt-out decisions you make on purpose, one at a time, with a reason you could explain to a colleague. Don't let a single "block AI" switch make all three choices for you.
Merge or overwrite: check before you enable
This is the step people skip, and it's the one that bites. Before you flip sync on, find out whether Cloudflare appends its generated block to your existing robots.txt or replaces the whole file. In the dashboard, look at the robots.txt preview under the AI crawler settings — if your custom lines (your /wp-admin/, staging or faceted-search disallows) aren't in that preview, sync is serving a generated file and your rules are gone.
What to do if you already maintain custom lines:
- Copy your current robots.txt into a canonical file kept in your repo before you touch the toggle. That's your reference.
- Enable sync, then compare the served file against your canonical copy line by line.
- Re-add any scoped Disallow paths that the generated file dropped. Cloudflare's managed section handles the AI categories; your hand-written rules need to sit alongside them, not underneath a wipe.
How to audit what sync is doing
Read the generated file directly and diff it against what you had before — never trust the dashboard summary alone. Two minutes here saves a month of quiet losses.
A quick audit routine:
- Fetch the live file: run curl -s https://yourdomain.com/robots.txt and read every line. This is what crawlers see, cache included.
- Check each user-agent block. Confirm Search and Agent bots aren't sitting under a Disallow: / unless you meant it.
- Test a specific bot against a specific path in Google Search Console's robots.txt report, or with an offline parser, before you assume a page is crawlable.
- Grep your access logs. On a standard Nginx or Apache combined log the user-agent is the last quoted field and the client IP is field one, so run grep -iE 'gptbot|claudebot|perplexitybot|oai-searchbot' access.log | awk '{print $1}' | sort | uniq -c to count hits per IP. Falling counts after you enabled sync tell you the policy landed — for better or worse.
- Set a calendar reminder to re-check monthly. Bot names change, new ones appear, and a sync feature this young will keep evolving.
On TPC Hosting your raw access logs are yours to read, so you can confirm what's actually crawling you rather than guessing from a third-party graph. If a page you care about stopped getting bot visits, the log line is where the truth is.
A simple decision table
Match your goal to the setting, then verify the file.
| Your goal | Training | Search | Agent |
|---|---|---|---|
| Keep content out of AI training sets, stay findable | Block | Allow | Allow |
| Maximise discovery everywhere | Allow | Allow | Allow |
| Paywalled / members-only content | Block | Consider | Block |
| You're unsure and want to be safe | Block | Allow | Allow |
| Many sites, one policy to keep consistent | Block | Allow | Allow |
The last row is where sync pays off most: set the policy once, let it propagate, and check one generated file per site instead of hand-editing a dozen. Notice there's no row that blocks all three by default. Blanket-blocking is a strategy for a specific reason — a licensing dispute, a paywall, a legal constraint — not a sensible starting point for a small site that lives on being found.
The bigger picture: robots.txt is a preference, not protection
Bot Preference Sync makes your stated preference tidy and consistent, which is worth having — but it doesn't stop anyone determined to ignore it. Keep those two jobs separate in your head.
If your goal is to keep scrapers off your content, the file is the polite ask and your firewall rules are the enforcement. Cloudflare's own bot management does the enforcing; the synced robots.txt just documents your intent clearly so honest bots comply. Treat sync as good housekeeping, not a lock.
And whatever you decide, keep a copy of your robots.txt in version control or a note somewhere. When a generated file overwrites something and traffic dips, you want to know exactly what changed and be able to put it back in seconds.
If you'd rather spend your time on the site than on crawler policy, that's fair — this is the kind of thing our engineers deal with daily, and on TPC Hosting you can ask a real person 24/7 to help you read your logs and sanity-check what your robots.txt is telling the world.
FAQ
Does Cloudflare Bot Preference Sync block bots by itself?
No — it only writes your policy into robots.txt, which polite bots choose to respect. Actual blocking is done by Cloudflare's WAF and bot management rules, so the synced file documents your intent rather than enforcing it.
Will blocking AI training crawlers hurt my search rankings?
No, blocking training bots like GPTBot or Google-Extended has no effect on traditional search ranking. Rankings are driven by search crawlers, which are a separate category you can keep allowed while blocking training access.
What's the difference between Search, Agent and Training bots?
Training bots collect content to train AI models, Search bots index pages for AI-powered search, and Agent bots fetch your page live to answer a user's question. Blocking Training is low-risk, but blocking Search or Agent can quietly remove you from where people now find answers.
How do I check what sync did to my robots.txt?
Run curl -s https://yourdomain.com/robots.txt and read every user-agent block. Then grep your access log for crawler user-agents to confirm the policy landed the way you intended before assuming anything is working.
Should a small business site block all AI bots?
No, a blanket block is rarely right for a small site that depends on being found. Block training crawlers if you don't want your content in model training, but keep search and agent bots allowed unless you have a specific reason like a paywall.

