State of the agent-readable web · August 2026

The agents are coming.
The web hasn't set the table.

Every month Desvela crawls the top 100,000 domains for the four surfaces a visiting AI agent can actually read: ai-catalog.json (Google's ARD standard), llms.txt, agents.md, and the AI-bot directives in robots.txt. This is what we found.

100,000
domains checked this pass
13
valid ai-catalog.json manifests with entries — in the entire scan
6.9%
of the top 1K publish an llms.txt
79.5%
of robots.txt naming GPTBot block it entirely
Adoption

Four surfaces, by ranking tier.

Tranco tierCheckedai-catalog.jsonllms.txtagents.md
top 1K1,000 2 (0.2%) 69 (6.9%) 2 (0.2%)
1K–10K9,000 19 (0.2%) 552 (6.1%) 21 (0.2%)
10K–100K90,000 126 (0.1%) 5447 (6.1%) 901 (1.0%)
ai-catalog.json reality check: 147 files respond — 111 are invalid JSON, and only 13 are valid manifests with at least one entry: huggingface.co, hostinger.com, zapier.com, airtable.com, gtmetrix.com, opus.pro, roboflow.com, fundraiseup.com, clickhouse.com, datarobot.com, idescat.cat, guruwalk.com, neon.com. Google published the ARD spec in May 2026; adoption is a rounding error.
The door policy

Who's blocking the AI bots.

Domains that name each bot in robots.txt, and how many of those shut it out completely (Disallow: /). Before your agent touches a domain, this is the etiquette it should know.

BotNamed in robots.txtFully blocked
GPTBot10,288 8,174 (79.5%)
ClaudeBot9,156 7,277 (79.5%)
CCBot8,900 7,900 (88.8%)
Google-Extended8,315 6,722 (80.8%)
Bytespider8,168 7,568 (92.7%)
meta-externalagent7,381 6,483 (87.8%)
Applebot-Extended7,135 6,352 (89.0%)
PerplexityBot4,191 2,252 (53.7%)
anthropic-ai3,497 2,600 (74.3%)
cohere-ai2,712 2,175 (80.2%)
Claude-Web2,643 2,043 (77.3%)
DNS discovery

Almost nobody publishes the DNS record.

The ARD spec added a DNS path in July 2026: publish an SVCB record at _index._agents.<domain> and an agent can find your registry without fetching anything over HTTP. We probed 99,048 domains and 15 publish one, which is 0.015% or about 1 in 6,603.

Every positive is checked against a wildcard canary: we ask the same zone for a name nobody could have published, and if that answers too the positive is discarded. Without that check the number would be higher and wrong.
Notable publishers

Who has set the table.

ai-catalog.json (valid, with entries): huggingface.co #1,263 · hostinger.com #1,273 · zapier.com #2,834 · airtable.com #2,925 · gtmetrix.com #11,362 · opus.pro #24,409 · roboflow.com #29,085 · fundraiseup.com #32,223 · clickhouse.com #32,343 · datarobot.com #55,938 · idescat.cat #63,234 · guruwalk.com #81,321

llms.txt: cloudflare.com #3 · github.com #31 · wordpress.org #43 · digicert.com #45 · adobe.com #67 · opera.com #90 · samsung.com #94 · wordpress.com #101 · dropbox.com #136 · kaspersky.com #139 · gravatar.com #141 · paypal.com #163

agents.md: checkpoint.com #328 · paloaltonetworks.com #491 · crazyegg.com #2,894 · razorpay.com #3,649 · nazwa.pl #4,831 · eufylife.com #4,913 · kvant-telecom.ru #5,082 · laravel-news.com #5,219 · guinnessworldrecords.com #5,869 · jbhifi.com.au #6,537 · wyze.com #6,627 · mattel.com #8,038

Your turn

Now check your own domain.

Same four files, same rules, same canary request. You get a grade against the numbers above, and the specific file you are missing. Free, no account, about ten seconds.

Editions

Every month, same method.

Each edition stays at its own URL after it is replaced, so a number you cited last month is still there to check.

August 2026 (this one) · July 2026

Method

How we count.

Plain GET requests (no rendering) against /.well-known/ai-catalog.json, /llms.txt, /agents.md and /robots.txt on each apex domain of the Tranco top-100K, paced at ~4 req/s globally, honoring robots.txt, as DesvelaBot/0.1 (bot policy). HTML responses to text paths count as absent. Every publisher is re-probed with a canary request to a nonexistent path: servers that answer 200 to anything are excluded as catch-alls, including some seemingly legitimate publishers. Undercounting beats inflating.

Full disclosure, and it cuts against us on purpose: our own domains (desvela.dev, desvela.ai) publish valid manifests, and they are deliberately not in any number on this page. They are not in the Tranco top-100K, so counting them would pad the very figures we are reporting. Same rule for every other domain we index outside the list. Verify ours with a GET like any other.
Subdomains are out of scope by design (docs.example.com publishing llms.txt does not count for example.com) — the census measures apex-domain adoption, same bar for everyone.
Stay on the list

Get next month's census in your inbox.

One email per month with the fresh numbers and what changed: new publishers, withdrawals, bot-blocking shifts. No product spam, unsubscribe by replying.