Citation measurement
Blocking vs Allowing AI Agents Per Path: A Working Policy
A path-level framework for deciding when to block or allow AI agents, with prerequisites, a reproducible policy template, and a verification test.

Sections in this article
TL;DR
- Core distinction: Blocking and allowing control access only; citation happens downstream and needs separate measurement.
- Prerequisite: Categorize paths and check current agent traffic before writing any rule.
- Template: Classify, set default posture, configure, stage-test, then promote and log the deployment.
- Verification: Test each path category against a real agent request and a pass or fail condition set in advance.
Key takeaways
Treat blocking and allowing as an access-layer decision only, never as a proxy for citation control.
Group paths into a small number of risk categories before writing a single crawl-control rule.
Give transactional paths a scoped allow tied to the specific integration, not a blanket block or open door.
Test every path category with a real agent request and a pass or fail condition defined before you deploy.
Rerun verification after any site restructure or integration change, since either can silently reclassify a path.
Pair access control with an ongoing citation-tracking layer, since one cannot answer the other's question.
tart by separating two decisions that get treated as one. Blocking an AI agent from a path is an access decision: can this agent request this URL at all. Deciding whether a citation results from that access is a separate, later question about what the agent does with the content once it has it. Sites that conflate the two end up writing rules meant to control citation behavior through a mechanism, robots directives and crawl control, that only ever controls access. That mismatch is where most path-level policies quietly fail.
A path, for this decision, is any distinct URL pattern you can express as a rule: a directory like /checkout, a file type, a query parameter, or a single high-value page. Blocking means the agent's request is refused or the content withheld before it reaches the agent. Allowing means the request succeeds and the agent receives the same response a browser would get. There is no third state at the access layer. An agent either gets the content or it does not; what it does afterward, whether it summarizes, cites, or transacts against it, is downstream of that binary and depends on the agent's own design, not your server configuration.
This matters because the two failure modes look identical from a traffic log but have opposite fixes. If a path is blocked and you wanted it cited, the fix is at the access layer: change the directive. If a path is open and being read but never cited, the problem is not access at all; it is content structure, evidence, or how the answer engine chooses sources, which How to Find Source Gaps in AI-Generated Answers: A Technical Audit covers as a distinct diagnostic. Treating both as the same problem wastes a rewrite cycle on a path that was never blocked in the first place.
Keep those two layers separate in your own head before you write a single rule. The rest of this guide assumes you can tell, for any given path, whether you are solving an access problem or a content problem, because the steps for each are not interchangeable.
An agent's journey through your site has three stages, and each stage is where a different kind of path decision gets made. For discovery, record whether the URL appeared in a sitemap, internal link, or search result. For the fetch, request the URL and record whether the server's path rule serves or withholds the content. Third, action: if the content is a page an agent can act on, such as a product page or a cart endpoint, the agent may do something beyond reading, like adding an item or advancing to checkout.
Cloudflare states that for all new domains on Cloudflare, AI training crawlers would be blocked by default unless domain owners chose otherwise . Apply that statement only to the named platform default and crawler class. Check the actual rule for each agent and path instead of extending one default to unrelated answer-engine crawlers.
The practical consequence is that stage two, the fetch, is the only stage where a per-path rule actually operates. You cannot control discovery once a URL is public and linked; you cannot control what a permitted agent does with content once it has fetched it. What you can control is whether the fetch succeeds for a given agent on a given path, which is why every policy in this guide is built around that one lever.
The lever you actually have
Per-path policy controls one thing only: whether a named agent's request to a specific path succeeds or fails. It does not control discovery upstream or citation behavior downstream. Write rules against that one lever and measure the other two stages separately.
A per-path policy written without groundwork tends to either block a path you needed open or leave open a path you meant to protect. Both mistakes are expensive to find later, because the symptom, a missing citation or an unexpected transaction, shows up weeks after the rule went live. Confirm each of the following before you touch a configuration file.
You need an inventory of paths worth differentiating, not a blanket domain rule. Group your site into a small number of categories: public informational content, gated or paywalled content, transactional endpoints like cart and checkout, and internal or admin paths that should never be crawled by anything. Most sites can do this in an afternoon using existing analytics; the categories rarely exceed five or six.
You also need visibility into which agents are actually requesting your paths today, before you decide what to do about any of them. Guessing at your current exposure is the single most common cause of a policy that breaks something on launch.
Related guide: How to Configure robots.txt for AI Crawlers in 2026-Without Guessing
Checklist
- List every path pattern that carries business risk if scraped, transacted against, or left unindexed, and name the category each belongs to
- Pull current server logs or crawler analytics to see which named agents are already requesting which paths, using a method like the one in [How to Use Server Logs to Detect Unannounced AI Crawlers](/blog/how-to-use-server-logs-to-detect-unannounced-ai-crawlers)
- Confirm which paths are transactional versus informational, since a transactional path (cart, checkout, account) carries different risk than a page an agent only reads
- Check whether any storefront paths already expose agent-facing tooling, such as a WebMCP integration, before assuming all agent traffic on that path is a crawler
See where your brand appears in AI answers - and where it does not.
Run a first-party brand check across supported answer engines. Results are measured without a promised citation or conversion. Browse all free tools
This is a reproducible template, not a one-off fix: run it once per path category, and rerun it whenever you add a new category of path or a new class of agent shows up in your logs. The sequence below assumes you have already completed the prerequisites and have a categorized path list in hand.
The first three steps classify and configure; the last two confirm the configuration matches what you intended before you consider the rule live. Complete the confirmation again after the next site restructure and record the result beside the active rule.
Transactional paths deserve particular care in step two. Shopify's changelog on WebMCP support describes tools that let agents search a catalog, manage a shopper's cart, and go to checkout on the shopper's behalf, all in the same tab the shopper is using, and notes that everything an agent does happens on the shopper's live session. A path that supports that kind of interaction is not a candidate for a simple block; it is a candidate for a scoped allow that matches what the integration was built to do, with the risk boundary drawn around specific actions rather than around the whole path.
- Classify each path from your inventory into one of four categories: public informational, gated, transactional, or internal-only
- For each category, decide the default posture: allow for public informational content you want cited, block for internal-only paths, and a scoped allow for transactional paths tied to a specific agent integration like WebMCP
- Write the rule using your crawl-management layer of choice, for example the directive and allow-list controls described in [Cloudflare's AI Crawl Control overview](https://developers.cloudflare.com/ai-crawl-control/), which gives visibility into which AI services are accessing your content and tools to manage that access according to your preferences
- Deploy the rule to a staging path first if your platform supports it, and request the exact path with the agent's declared user agent string to confirm the response code matches your intended posture
- Promote the rule to production and log the deployment date and the path list it covers, so a future audit can tell which rule was active when a citation gap or an unexpected transaction occurred
A rule that looks correct in a configuration file is not the same as a rule that behaves correctly under a real request. Verification means sending an actual request, or as close to one as you can construct, against each path and category, and checking the response against what you intended rather than what you assume happened.
Build a small test matrix: one row per path category, one column for the agent identity you are testing against, and a pass or fail outcome defined in advance. A pass means the response code and body match the intended posture for that agent and path. A failure needs a defined next action, not just a note that something went wrong; the table below gives a starting structure you can extend with your own path categories.
One commenter wrote: A decent LLM should be able to handle browsing the site, if needed it can use the sitemap.
Treat that as one engineer's view, not evidence about the agent classes in your logs. Transactional and internal paths still need a rule you have tested yourself.
For every test, record the timestamp, declared agent identity, target URL, response status, relevant response headers, and a hash of the returned body. Keep that evidence beside the rule version and expected outcome so the next operator can reproduce the result without guessing what changed.
Rerun this verification matrix after any site restructure, any new crawl-control rule, and any change to a transactional integration like a cart or checkout flow, since any of the three can silently move a path from one category to another without anyone updating the rule that governs it.
Related guide: How to Use Server Logs to Detect Unannounced AI Crawlers
Path verification matrix template
| Path category | Test request | Pass condition | Fail action |
|---|---|---|---|
| Public informational | Fetch with declared answer-engine agent string | 200 response, full content served | Check directive for accidental block, correct and retest |
| Gated content | Fetch without auth as an agent | Block or auth challenge, not full content | Tighten access rule, confirm no bypass path exists |
| Transactional (cart/checkout) | Agent action via WebMCP-style tool call | Action completes on the shopper's own session only | Audit scope of the allow rule against the integration's documented actions |
| Internal-only | Fetch with any agent string | Consistent block regardless of agent identity | Investigate why the path is reachable at all, not just why one agent got through |
Access control and citation measurement answer different questions, and it is worth being precise about which approach gives you which answer. Blocking and allowing rules tell you what an agent can reach. They do not tell you whether an answer engine, once it has read an allowed path, actually names your brand or links back to the page. Confirming a path is open is necessary but not sufficient for confirming it is helping your citation rate.
The original paper presents Attributable to Identified Sources as a framework for assessing natural-language generation output when it pertains to the external world . Use that as a separate source-support check after the access test; an access rule cannot establish whether an output is attributable to a specific source.
EdenRank records whether an answer names the brand and whether it links to the brand page, running an ongoing prompt panel and keeping a tracked run history so a team can see whether an access change on a given path actually moved citation behavior, rather than assuming it did because the rule deployed cleanly. That closes the loop the verification matrix leaves open: the matrix confirms an agent can reach a path, and the citation tracking layer confirms what happened after it did.
Cloudflare describes its own measurement release this way: We have discussed this challenge in smaller settings, and today we are excited to publish our findings as a new metric shown on the AI Insights page on Cloudflare Radar.
The table below sets these approaches side by side. None of them replaces the others; a mature policy typically runs a mix of the first three plus an ongoing measurement layer, and picking one at the expense of the rest just moves the blind spot as opposed to closing it.
Approaches to understanding AI agent behavior on your site
| Approach | What it captures | What it requires |
|---|---|---|
| Manual spot checks | A snapshot of whether a specific agent can reach a specific path on a given day | Someone to run the request and record the result by hand, repeated on a schedule |
| Server-log analysis | Which named agents actually requested which paths and what response they got | Log retention, agent-identification rules, and time to review the output regularly |
| Published third-party study | Cloudflare published findings as a metric shown on the AI Insights page on Cloudflare Radar | Compare the study scope with your own site and agent mix |
| EdenRank | Records whether an answer names the brand and whether it links to the brand page | An ongoing prompt panel and a tracked run history |
“We first define AIS and introduce a two-stage annotation pipeline for allowing annotators to appropriately evaluate model output according to AIS guidelines.”
References and further reading
These links are provided for direct inspection. A reference is not treated as proof of every statement in this article.
- 1.Cloudflare Radar crawl-to-refer ratio for AI platformsblog.cloudflare.com
- 2.Cloudflare AI Crawl Control overviewdevelopers.cloudflare.com
- 3.
- 4.Cloudflare agentic Internet bot report, one year onblog.cloudflare.com
- 5.Hacker News debate on the llms.txt proposalnews.ycombinator.com
- 6.
Written by
EdenRank Editorial Team
The product and editorial team documents repeatable ways to inspect AI-answer visibility, source evidence, and content operations.
Expertise
Want insights like this for your own brand?
Talk to the teamKeep building the topical graph.
AI Crawler Check: Find Exactly Where AI Bots Stop Reading You
Use the crawl path to locate the specific stage behind a missing result instead of treating invisibility as one problem.
How to Configure robots.txt for AI Crawlers in 2026-Without Guessing
robots.txt is a published crawl preference, not an authentication or security boundary. Configure explicit groups, test real URLs, and verify behavior in logs.
Product Data Contracts for AI Buying Agents: Build, Validate, and Monitor
Give every product claim an owner, source, timestamp, validation rule, and explicit unknown state before an agent reads it.
Related AI answers
- How can I compare my brand's AI citation frequency across different AI assistants like ChatGPT, Gemini, and Perplexity?
- How can I identify which content formats are most likely to be cited by AI assistants like ChatGPT?
- How Can I Identify Which Content Formats Are Most Likely to Be Cited by AI Assistants for My Brand?