Experimental Open Works

xowx.org
* * *

Research paper

The Binary Switch: How Websites Govern Autonomous Agent Access

Three measurements of published policy, enforced policy, and defended surfaces, and why operators withhold a vocabulary they already possess

Abstract

Autonomous agents now attempt tasks on the web that have consequences: booking, applying, paying, cancelling. We report three web measurements of how sites govern that traffic. First, across the top 500 domains by backlink rank (453 responded) and a hand-picked sample of 40 transactional sites (37 responded), not one site publishes any policy on any side-effecting action. The result is not a majority tendency but a census: 0 of 453 and 0 of 37, with all five side-effecting action classes unspecified on 100% of sites. Second, probing five identities per site, we find published policy and enforced policy are close to unrelated. On transactional sites where a browser is served, robots.txt permits an AI identity that the server then refuses in 19.3% of (site, identity) pairs, while robots.txt denials were enforced in 0.0% of pairs; 45% of transactional sites refuse an ordinary browser string outright, before any policy is consulted. Third, classifying 373 robots.txt files into a risk taxonomy shows that operators do possess a granular vocabulary and use it precisely: transactional sites fence inventory and cart state at 4.5 times the rate of the web at large, and account, pricing and API surfaces well above it. For AI crawlers the same operators discard that vocabulary: of 136 sites naming an AI crawler, 116 give a blanket Disallow: / and only 20 give targeted rules. We argue the barrier to graded agent access is therefore not an absent vocabulary but absent enforcement and absent attribution, and we give a theoretical account of why graded access is nonetheless achievable: the risks operators actually price are defeated by counting against an accountable principal rather than by inferring intent, so the correct unit of policy is the principal, not the request. We report two measurement defects found and corrected mid-study, one analysis error, and an undiagnosed residual sensitivity, and we bound our claims accordingly.

Headline result

QuestionMeasurementResult
What do sites publish?Sites with any policy on any side-effecting action0 of 453
0 of 37
What do sites enforce?robots.txt denies, server actually refuses (transactional)0.0%
robots.txt allows, server refuses anyway (transactional)19.3%
What do sites protect?Sites naming an AI crawler that use a blanket denial116 of 136
Two samples: the top 500 domains by Majestic Million backlink rank, and 40 hand-picked transactional sites. Percentages are over sites that answered.

Nothing on the web says what an agent may do. Where sites do say something, their servers largely ignore it. And where sites write careful, granular rules, which they do constantly, they stop doing so the moment the reader is an AI.

Contributions

  1. A census of published agent policy over 490 responding domains, showing that coverage of side-effecting actions is zero, and that the specification fragmentation motivating much of the current standards work has essentially no deployed instances.
  2. A paired measurement of declared against enforced policy over five identities per site, quantifying the disconnection between robots.txt and the layer that actually decides.
  3. A risk-taxonomy classification of 373 robots.txt files showing that granular policy already exists, is aimed at the predicted risks, and is withheld from AI crawlers specifically.
  4. A theoretical argument that the intent-unobservability objection to graded agent access is misframed, and that the correct unit of policy is the accountable principal, not the request.
  5. A candid account of two instrument defects and one analysis error found during the study.

1. What sites publish

The surveyor issues seven requests per domain, to /.well-known/agent-policy.json, /agents.txt, /agent-manifest.txt, /ai.txt, /llms.txt, /robots.txt and /, then normalises whatever it finds into one model of seven action classes.

SourceTop 500 (453 answered)Transactional (37 answered)
robots.txt345 (76.2%)27 (73.0%)
llms.txt42 (9.3%)6 (16.2%)
RSL 1.01 (0.2%)0 (0.0%)
agents.txt, either dialect0 (0.0%)0 (0.0%)
ai.txt0 (0.0%)0 (0.0%)
agent-manifest.txt0 (0.0%)0 (0.0%)
Native policy document0 (0.0%)0 (0.0%)
Anything beyond robots.txt43 (9.5%)6 (16.2%)
Published policy sources, over sites that answered.
Action classallowdenyescalateunspecifiedsilent
read your pages30934011024.3%
train on or quote your content0102135077.3%
create or change things000453100%
message a human000453100%
book, apply or sign000453100%
spend money000453100%
delete or cancel000453100%
Action coverage across the 453 responding sites in the general sample. The deny column for training is entirely robots.txt groups blocking named AI crawlers.

Adoption of agents.txt in either dialect is zero, so the incompatible-dialect collision that the specifications create, a genuine hazard on paper, occurs zero times in 490 responding domains. RSL, publicly backed by a large body of publishers, is deployed on one site. Our llms.txt figure of 9.3% sits close to an independently published figure of 8.7% for the top 1,000 as of June 2026, which is the best evidence available to us that the instrument measures what it claims to.

2. What sites enforce

Five identities, one GET each per site: an ordinary Chrome browser string as a control, GPTBot, ClaudeBot, PerplexityBot, and a plain bot that declares itself a bot without declaring itself an AI. On transactional sites, policy is frequently never reached at all.

SampleRefuse an ordinary browser string
Transactional (40)18 (45%)
Top 60 general (control)12 (20%)
These sites refuse anything that is not a real browser executing JavaScript with a matching TLS fingerprint, before any policy file is consulted.
IdentityRefused, of the 22 transactional sites that serve a browser
GPTBot4 (18%)
PerplexityBot4 (18%)
ClaudeBot3 (14%)
Plain unremarkable bot1 (5%)
The sites doing the refusing are airbnb.com, ubereats.com, lyft.com, enterprise.com and ticketmaster.com.

The last row carries the interesting information. Declaring yourself an AI bot attracts refusal; declaring yourself an unremarkable bot mostly does not. Identity is already being used as a filter, and it is being used for exclusion only.

Declared, then observedTransactional (57 pairs)Top 60 control (120 pairs)
robots allows, server refuses11 (19.3%)1 (0.8%)
robots allows, server serves37 (64.9%)85 (70.8%)
robots denies, server refuses0 (0.0%)9 (7.5%)
robots denies, server serves9 (15.8%)25 (20.8%)
Declared against enforced policy over (site, AI identity) pairs, restricted to sites where the browser control is served. The control covers the 48 of 60 sites that served the browser.

Read the third row twice. No transactional site in this sample with a robots.txt denial actually enforced it, while a fifth of the time the file explicitly welcomed a bot that the server then turned away. The published file and the component that decides are separate systems maintained by different people. The interstitials we received attribute to Akamai or a comparable WAF (33 responses), Cloudflare (13) and DataDome (4), so a substantial share of these decisions were not made by the site operator at all.

3. What sites protect

A site's Disallow list is its own statement of what it does not want automated traffic touching. Classifying those paths by risk category shows which risk each operator is actually pricing, without asking anyone anything. Classification is by path segment rather than substring, so /search matches and /researcher does not.

Category disallowed for User-agent: *Transactional (28)Top 500 (373)Ratio
account / auth67.9%38.3%1.8x
pricing / search64.3%50.1%1.3x
inventory / state57.1%12.6%4.5x
api / machine53.6%31.4%1.7x
content / media32.1%34.3%0.9x
admin / internal28.6%28.7%1.0x
other92.9%77.7%1.2x
Share of sites disallowing at least one path in each category for the general group.

Transactional sites defend inventory state at four and a half times the general rate: carts, baskets, checkouts, bookings, reservations, seats and holds. They defend pricing, search and account surfaces substantially more heavily. They do not defend content or media any more than anyone else. This is not an inference about what operators fear. It is what they wrote down, in their own files, before anybody asked them.

Treatment of AI crawlersTop 500 (373 with robots.txt)Transactional (28)
Names an AI crawler at all136 (36.5%)9 (32.1%)
blanket Disallow: /, a switch116 (31.1%)3 (10.7%)
targeted path rules, a dial20 (5.4%)6 (21.4%)
Blanket-blocks every crawler37 (9.9%)not reported
Of the 136 general-sample sites naming an AI crawler at all, 116 (85%) use a switch and 20 (15%) use a dial.

The same operator who writes twelve carefully scoped Disallow rules for everyone else writes one line for GPTBot. This cannot be attributed to a missing vocabulary. The file format in which the switch is written is the same file format in which the dial is written, on the same server, for the same crawler, and the dial is two lines longer.

The unit of policy is the principal, not the request

The standard objection to graded agent access is that grading requires knowing why a request was made, and motive is not carried in the request. An agent booking a room, an agent extracting a pricing table, an agent walking a checkout flow in order to clone it, and an agent holding every middle seat on a flight so that only aisle and window seats remain purchasable all emit identical requests. We argue this framing is wrong. Every risk on that list is defeated by counting against an accountable principal, not by inferring a motive.

So the predicate changes. The wrong predicate is may you book, which requires knowing why the agent is here. The right one is you may hold one seat, as this verified principal, at this rate, with this consequence if you abuse it, which requires only identity and arithmetic. Arithmetic has always been available. Cryptographic agent identity and scoped delegation, which supply the principal, became available in 2026. That is why the binary switch was, until now, the correct engineering decision rather than an oversight.

The third experiment supplies the support this argument would otherwise lack. If operators feared an unbounded and unarticulable range of agent behaviours, the categories they fence would be diffuse. They are not. Transactional operators fence inventory state at 4.5 times the general rate and content at 0.9 times, which is to say they price precisely the risks that per-principal counting defeats, and do not price the one risk that counting cannot address.

What this means

The missing piece is not a vocabulary. It is enforcement plus accountability. A new file format, however well designed, changes nothing on its own, because nothing reads a file at the moment of decision: the decision is made in a WAF, frequently one operated by a third party, and the WAF has never read the file.

Your robots.txt says GPTBot is welcome. Your WAF refuses it. You are turning away the assistant your customer sent to book a room, and nobody at your company knows.

Limitations

The paper devotes a full section to these, because several were found by us during the study and would not otherwise be visible. In brief:

Ethics

One GET per identity per site, no retries, no attempt to bypass any access control, public homepages and well-known policy paths only. Requests to the same host were separated by 400 ms, with never more than one in flight per host. No authentication was attempted and no state was created or modified on any site. Every user-agent string carried a contact URL, so any operator reading their logs could identify the source and reach us.

Cite

@techreport{nicholas2026binaryswitch,
  title       = {The Binary Switch: How Websites Govern Autonomous Agent Access},
  author      = {Nicholas, Nik},
  institution = {Experimental Open Works},
  year        = {2026},
  type        = {Research paper},
  url         = {https://xowx.org/research/}
}

The full method, all tables, the risk taxonomy keyword lists and the reproducibility notes are in the LaTeX source. Raw JSON records, the domain lists and the analysis are available for research on request through the contact page.

« Home  ·  All updates

* * *