Cover graphic for the AIScan 2026 state of AI agent readiness study: abstract mint and coral bars receding across a dark green field.
Cover graphic for the AIScan 2026 state of AI agent readiness study: abstract mint and coral bars receding across a dark green field.
AI Readiness

The State of AI Agent Readiness in 2026: 473 Sites Measured

473 real sites scored for AI agent readiness: median 55, discoverability at 77.5, bot access at 39.3, plus the four checks our own rubric still gets wrong.

AAsif Rahman September 3, 2026 19 min read
#AI Readiness#Research#Data Study#llms.txt#Agent Readiness Score

This guide covers B2 · Bot Access, C1 · Content, C2 · Content, E1 · Discoverability, P2 · Capabilities, D2 · Discoverability — for WordPress, Next.js / Vercel.

Table of contents

Half of the web's agent-readiness problem is already solved, and almost nobody has noticed which half. Across 473 real websites scanned by AIScan between 24 August and 3 September 2026, the median score is 55 out of 100. The discoverability layer that twenty-five years of SEO built (robots.txt, sitemaps, HTTPS, correct 404s) averages 77.5. Everything the agentic web actually added averages 39.3, and 252 of those 473 sites score exactly zero on it.

This is the first distribution study AIScan has published from its own corpus. Every number below comes from one database query against one rubric version, and the methodology section says plainly where the numbers are wrong.

Quick summary

QuestionAnswer from 473 sitesWhere it comes from
What does a typical site score?Median 55, mean 56.4, quartiles 41 and 75AIScan rubric 2026.08.2, 24 Aug to 3 Sep 2026
What is already working?Discoverability, mean 77.5, no site scored zeroD1, D2, E1, E4, D3
What is not?Bot access, mean 39.3, median 0B1, B2, B3
Most-failed single checkM3 (x402 payment signal): 0 of 175 commerce sites passCommerce dimension
Most-passed single checkD2 (XML sitemap): 75.9%Discoverability
Does llms.txt adoption look high?44.6% pass C2 here, against 8.7% of the Tranco top 1,000Contrast with Rankability
Does scanning lead to fixing?155 sites scanned twice or more: mean +5.0 points, but 110 of 155 did not move at allFirst-versus-last scan delta
How wrong is our own rubric?55 of 146 C1 passes sit on hosts that cannot return a correct 404Cross-tab of C1 against E1

The single most useful takeaway: a site that has done ordinary SEO well will land somewhere near 70 without touching anything agent-specific, and will still fail every check that an AI agent actually needs. 326 of the 473 sites pass both robots.txt and sitemap checks. Of those, 88 pass none of Markdown negotiation, llms.txt or explicit AI bot rules.

How the sample was built, and what it cannot tell you

The raw corpus is 2,922 scans of 787 distinct URLs recorded between 23 June and 3 September 2026, spanning three rubric versions. Mixing rubric versions would make the distribution meaningless, so the study population is narrower:

FilterReasonSites remaining
Rubric 2026.08.2 onlyScores from different rubrics are not comparable542 URLs
Whole-site scope onlySingle-page scans grade a different thing542 URLs
One row per host, most recent scanStops heavily rescanned sites voting repeatedly474 hosts
aiscan.site removedOur own 34 pages all score 100 and would inflate the result473 sites

That last exclusion moves the mean from 61.6 to 56.4, which is a fair illustration of how easily a vendor's own corpus flatters the vendor.

Four limits matter more than the numbers do.

The sample is self-selected. These are sites whose owners chose to run an agent-readiness scan, so the population is more technical and far more likely to have heard of llms.txt than the web at large. According to Ahrefs, whose 15 June 2026 study of 137,210 domains carries the same warning in its own words, such customers "skew more technical and SEO-aware than the web at large". Treat every adoption figure here as an upper bound.

A readiness score is rubric-relative, not a property of a site. Our comparison work measured nextjs.org at 73 and Level 4 on this rubric and at Level 0, "Not Ready", on Cloudflare's scanner in the same hour, verified on 31 August 2026. A histogram of our scores is a histogram of our opinions.

Two of the five dimensions are conditional. The commerce checks ran on 175 of the 473 sites and the capabilities dimension applied to 230, because the rubric only grades those where it detects a relevant surface. Any commerce percentage in this article has a denominator of 175, never 473.

Our platform detector is known to misfire. It reported stripe.com as a Lovable app at 50% confidence, on the evidence, in its own words, of a /_next/static/ asset plus the string "lovable" in a JavaScript bundle. The platform breakdown below is the softest table here and should be read as indicative.

No individual scanned URL is named anywhere in this article. The corpus contains sites that other people submitted, and their scores are theirs.

The distribution: median 55, and a long tail at the bottom

Score bandSitesShare
0 to 19459.5%
20 to 396914.6%
40 to 5915432.6%
60 to 7910822.8%
80 to 998117.1%
Exactly 100163.4%

Mean 56.4, median 55, 25th percentile 41, 75th percentile 75, 90th percentile 90.8. The lowest score recorded was 8.

The level bands, which are what the product actually shows a user, spread differently:

LevelNameSites
0Not ready19
1Crawlable53
2Readable105
3Structured151
4Agent-ready91
5Agent-native54

The shape is one broad hump centred on the low fifties with a thin bottom tail worth naming: 45 sites, roughly one in ten, score under 20. At that level a site is typically missing robots.txt, returning 200 for pages that do not exist, or shipping no server-rendered text at all.

For comparison, Agent Ready volunteers a percentile against its own corpus in every scan response. Fetched from its scan API on 3 September 2026, that corpus reports 1,528 sites, up from 1,410 on 29 August. It is the only other published baseline in this category, and it is roughly three times our sample size.

Discoverability is finished. Bot access has barely started.

DimensionSites gradedMean scoreMedianScored 0Scored 100
Discoverability47377.5860136
Content47353.3563270
Capabilities23043.63610556
Bot access47339.30252162
Commerce17537.6337316

Not one site in 473 scored zero on discoverability. Every one had at least a partial robots.txt, sitemap, HTTPS or 404 story, because those are the artefacts of ordinary search optimisation and the tooling has existed for two decades.

Mean AIScan dimension score across 473 sites: discoverability 77.5, content 53.3, capabilities 43.6, bot access 39.3, commerce 37.6

Bot access has a median of zero. 252 sites, 53.3% of the sample, earn nothing at all across B1, B2 and B3. That dimension asks three questions: does robots.txt carry Content Signals, does it name any AI crawler explicitly, is there a Web Bot Auth key directory. More than half of an unusually technical sample answers no to all three.

The gap between those two rows is the finding. Sites are discoverable. Sites have not decided anything about who may use what they find.

All 21 checks, ranked by how often sites pass them

CheckNameDimensionPassPartialFail or infoPass rate
D2XML sitemapDiscoverability359011475.9%
E1Correct 404 handlingDiscoverability346685973.2%
D1robots.txt present and saneDiscoverability342686372.3%
E3Heading hierarchy and server-rendered textContent336637471.0%
E4HTTPS and canonical hostDiscoverability278195058.8%
D3Link header for discoveryDiscoverability2493918552.6%
C3Structured HTMLContent2332004049.3%
C2/llms.txtContent2114521744.6%
B2Explicit AI bot rulesBot access174929036.8%
C1Markdown content negotiationContent146931830.9%
E5Content feedContent125255826.4%
P1API Catalog (RFC 9727)Capabilities103037021.8%
B1Content Signals in robots.txtBot access100037321.1%
M1Universal Commerce ProtocolCommerce26014914.9%
P3Agent Skills indexCapabilities61041212.9%
P4OAuth discovery metadataCapabilities61041212.9%
E2Machine-readable API descriptionCapabilities58041512.3%
M4Machine-readable pricingCommerce1669909.1%
B3Web Bot Auth key directoryBot access19414134.0%
P2MCP Server CardCapabilities16434143.4%
M3x402 payment signalCommerce001750.0%

Read top to bottom and the boundary is obvious: everything above 50% predates the agentic web, everything below 40% was proposed in the last two years. The one straddle is C2, llms.txt, at 44.6%, the only recent convention with anything close to majority adoption here.

188 of the 473 sites, 39.7%, pass none of C1, C2, B2 or P2. That is the cleanest single sentence in the dataset: two fifths of sites that deliberately ran an agent-readiness scan have adopted no agent-specific convention whatsoever.

The llms.txt number depends entirely on who you sample

C2 passes on 44.6% of sites here. Three other published measurements disagree, and none of them is wrong.

SourceSampleAdoptionDate
AIScan (this study)473 sites that chose to be scanned44.6% pass, 9.5% partial3 Sep 2026
Ahrefs137,210 domains with traffic in Web Analytics28% publish a valid file15 Jun 2026
RankabilityTranco top 1,0008.7% overall, 15.8% of the 549 reachableJune 2026 data, page updated 23 Aug 2026
SE Ranking, via SEJ~300,000 domains10.13%Reported 20 Nov 2025

The spread runs from 8.7% to 44.6% across four honest measurements, and the ordering is exactly what you would predict from how each sample was drawn. The head of the web is full of banks, government sites and infrastructure hosts that will never publish an llms.txt. A traffic-weighted analytics panel skews technical. A queue of people who typed their URL into an agent-readiness scanner skews further still.

According to Rankability's own methodology note, verified on 3 September 2026, most of that gap is denominator choice: it reached a verdict on 549 of the top 1,000, recorded 451 as unknown, then "deliberately uses all 1,000 sites as its denominator" for the public headline.

According to the same Ahrefs study, 97% of the valid llms.txt files it found received zero requests in May 2026. Publishing the file and having it read are separate events, and only one of them is measured by any scanner including ours.

If you want to write one, AIScan's llms.txt generator builds a spec-shaped file from your sitemap. The eleven ways real files break the v2 spec are documented in our validator study of 39 live files.

Platform predicts the score better than anything else we record

PlatformSitesMeanMedianRange
WordPress12868.56726 to 100
Lovable1366.25510 to 100
Astro2563.5649 to 100
Shopify1163.56828 to 85
Next.js10852.74612 to 100
Not detected17047.6508 to 100

Smaller groups (Vue 4, Framer 3, Wix 3, Bolt 3, SvelteKit 2, Nuxt 2, HubSpot 1) are excluded for sample size.

WordPress sites out-score Next.js sites by 15.8 points on the mean and 21 on the median. The median is the sharper number, because half of the Next.js sites in this sample sit below 46.

That is not a verdict on React. It is a verdict on defaults. WordPress serves rendered HTML, generates a sitemap, and has a plugin ecosystem that has been writing robots.txt for fifteen years. A Next.js app can do all of that and frequently does not, for the reasons in our Next.js rendering post: client-side data fetching, ssr: false, and shells that render for a person and fail for a crawler.

For WordPress, ThinkRank is the shortest path from this table's Next.js column to its WordPress column. The specific reason it fits here is the one this dataset keeps exposing: the checks that fail together (B1 Content Signals, B2 explicit AI bot rules, C2 llms.txt, C3 structured data, D2 sitemap) are owned by four different files that four different plugins fight over. One plugin owns all four surfaces in ThinkRank: the robots file, robots meta, schema and sitemaps, plus llms.txt. It also imports whatever Yoast, Rank Math, AIOSEO or SEOPress already had configured, so nothing has to be typed in twice. Yoast and Rank Math are both excellent at schema and sitemaps and are installed on vastly more sites; neither generates the llms.txt file. Running one of those and only missing the file? Upload a static one and pay nothing.

The 11 Shopify stores here sit differently again: the platform hands merchants part of the stack and none of the discovery layer. That missing half is what StoreSEO fills, generating llms.txt from products, collections, pages and articles, editing agents.md, and writing product schema. Its Shopify App Store listing showed a 5.0 rating across 685 reviews when checked on 27 August 2026. A free plan is available.

Four checks almost nobody passes

M3, the x402 payment signal: 0 of 175. Not one commerce-classified site signals a machine-payable price. This matches our 2 September 2026 measurement, where Cloudflare's scanner returned ucp pass and x402, mpp, acp and ap2 all fail on a real agent-enabled Shopify store. The protocol exists, the tooling exists, adoption is flat zero.

P2, the MCP Server Card: 3.4%. That number is wrong, and the next section says why.

B3, the Web Bot Auth key directory: 4.0%. This is a publisher-side check on a protocol only two crawler operators ship. Cloudflare's BotBase now validates Web Bot Auth signatures during operator onboarding, so the supply side is moving first.

E2 at 12.3% and P4 at 12.9%. Machine-readable API descriptions and OAuth discovery metadata are aimed at sites that intend to be used by an agent rather than read by one. Very few sites in any sample intend that yet.

According to Cloudflare, whose Radar sample of the top 200,000 domains was published on 17 April 2026, robots.txt reaches 78% of that population, Content Signals declarations only 4%, and Markdown content negotiation 3.9%. The pairing of an MCP Server Card with an API Catalog turned up on fewer than 15 domains out of 200,000. Our 21.1% on Content Signals and 30.9% on Markdown negotiation are five to eight times those rates, on a sample that selected itself for exactly this interest.

Where our own rubric is wrong, measured against itself

Four AIScan checks have confirmed defects, all found by our own publishing runs, all published before this article. All four are in the table above. Here is what each one does to the distribution.

CheckDefectDirectionEffect on this study
C1Passes on a 200 status code without requiring a Markdown content typeOver-counts30.9% is too high
C2Probes /llms.txt at the origin root only, ignoring the subpath files llms.txt v2 explicitly allowsUnder-counts44.6% is too low
P2Probes one well-known path and never the platform's live MCP endpointUnder-counts badly3.4% is far too low
P3Probes only the v0.2.0 Agent Skills path, never the legacy path, and does not follow the 301Under-counts12.9% is too low

The C1 defect can be sized from this dataset, and it is the most useful number here. C1 passes on 146 sites. 55 of those 146, or 37.7%, sit on hosts that do not cleanly pass E1, our own correct-404 check. A host that returns 200 for a path that does not exist returns 200 for /index.md too, and C1 reads that status code and passes. So up to 55 of the 146 C1 passes are the check congratulating a site for a file it does not have. Adjusting for it moves C1 from 30.9% to a floor of 19.2%, much closer to Cloudflare's independently measured 3.9%.

127 of the 473 sites, 26.8%, do not cleanly pass E1. Soft 404s are not a niche problem, and they contaminate every probe-a-well-known-path check in every scanner, not just ours.

P2 is worse in the other direction. On 2 September 2026 we measured 15 of 25 sampled Shopify storefronts answering POST /api/mcp with a valid JSON-RPC tools/list, several exposing ten tools including proceed_to_checkout, while P2 reported HTTP 404 and no server card. The full measurement is in our WebMCP study. If that ratio holds here, the real MCP-surface rate is several times 3.4%, and the Shopify row of the platform table is the least trustworthy number on this page.

None of this is a reason to withhold the distribution. It is a reason to publish the error bars with it.

Does scanning a site change it? 155 sites say mostly no

155 sites in the sample were scanned more than once under this rubric, a mean of 4.0 scans each over a mean span of 3.0 days.

OutcomeSitesShare
Score improved3220.6%
Score unchanged11071.0%
Score got worse138.4%

Mean change from first scan to last: +5.0 points, from 56.1 to 61.1. Largest single improvement: +71 points. Largest regression: 29 points.

The honest reading is that seven sites in ten looked at a report and changed nothing measurable within three days. The mean gain is real but carried by a small group that acted decisively. This is the number a scanner vendor has the least incentive to publish and the most obligation to, because it is the only direct evidence anyone has that these reports lead to work.

Three days is a short window, so the effect is likely understated: a site that reads a report on Monday and ships the fix in the next sprint never appears in this cohort.

What the sites that did improve actually fixed

Among the 32 sites that improved, counting checks that moved from non-pass to pass between first and last scan:

Check fixedSitesAlso regressed
B2 Explicit AI bot rules160
D3 Link header for discovery140
C2 /llms.txt130
C1 Markdown content negotiation120
P1 API Catalog111
E2 Machine-readable API description101
C3 Structured HTML71
M4 Machine-readable pricing60

The ordering is a surprise. B2 and C2 are the obvious first moves and they lead, but D3, a Link: header for discovery, is second. That is a CDN or server configuration change rather than a content change, which suggests the people acting fastest on these reports are infrastructure engineers rather than content teams.

No check regressed on more than one site, so these are additions rather than trade-offs. At the other end, exactly two checks were fixed by a single site each, B3 and M1, which is consistent with the pass-rate table: the checks almost nobody passes are also the checks almost nobody fixes.

Where AIScan fits, and where it doesn't

AIScan graded every number above, so the limits are worth stating directly.

What it sees: anything a server returns to an unauthenticated request. robots.txt and its directives (D1, B1, B2), sitemaps (D2), 404 behaviour (E1), HTTPS and canonical host (E4), Link: headers (D3), llms.txt (C2), Markdown negotiation (C1), server-rendered text and heading structure (E3), structured data (C3), feeds (E5), and the well-known paths behind the capabilities and commerce checks.

What it does not see: anything that only exists after JavaScript runs. AIScan does not render pages, so it cannot see WebMCP tools registered at runtime through navigator.modelContext, and it does not grade WebMCP at all: the word appears nowhere on our own capabilities checks page. It also cannot tell you whether any AI crawler ever read your llms.txt, the question Ahrefs answered with a flat 97% no.

Where competitors are ahead of us today: Agent Ready publishes a corpus percentile in every scan response and we do not, Cloudflare's free scanner returns a full evidence chain per check and ships a rendering step we lack, and both Agent Ready and AgentGrade ship a GitHub Action while AIScan does not. Our free tier is metered at 20 scans a month; AgentGrade, Cloudflare and IsAgentReady are all free and unmetered.

Where this rubric is genuinely ahead: E1 exists. Cloudflare's 22-check rubric has no soft-404 equivalent, and as the C1 cross-tab above shows, a soft 404 quietly corrupts every other check on the page.

Run the same measurement on your own site

Start with the scan, because it answers all 21 questions at once and needs no account:

npx aiscan-cli yoursite.com

Or paste the URL at aiscan.site. Both are free, need no account, and return the same rubric used for this study. The checks to read first, in the order this dataset says they matter:

  1. B1 and B2 (bot access): the dimension with a median of zero. Add explicit AI crawler rules and Content Signals to robots.txt.
  2. C2 (llms.txt): 217 sites here fail it outright. Start at the generator.
  3. E1 (correct 404): 127 sites do not cleanly pass, and a soft 404 makes every other probe unreliable.
  4. C1 (Markdown negotiation) and C3 (structured HTML): the content checks with the most partial results.

If you would rather check by hand, three commands cover most of it:

curl -s https://yoursite.com/robots.txt | grep -iE 'gptbot|claudebot|perplexity|content-signal'
curl -s -o /dev/null -w '%{http_code} %{content_type}\n' https://yoursite.com/llms.txt
curl -s -o /dev/null -w '%{http_code}\n' https://yoursite.com/definitely-not-a-real-page-xyz   # must be 404

The third command is the one people skip. If it returns 200, every other probe you run against that host is meaningless, including the two above it.

Detail for each check ID is at /docs/checks/content and /docs/checks/bot-access; the setup guides by platform are at aiscan.site/guides.

This study will be repeated quarterly against the same rubric version, with the sample size, date range and known check defects published each time. Written by M Asif Rahman.

Frequently asked questions

How many websites does this study cover, and over what period?

473 distinct sites, one scan each, all graded under AIScan rubric version 2026.08.2 between 24 August and 3 September 2026. They were drawn from a raw corpus of 2,922 scans across 787 URLs going back to 23 June 2026, then filtered to a single rubric version, whole-site scope, and the most recent scan per host, with aiscan.site's own 34 pages removed.

What counts as a good AI agent readiness score?

On this sample the median is 55 and the 75th percentile is 75, so anything above 75 puts a site in the top quarter of an already self-selected population. Only 16 of 473 sites scored 100. A more useful target than the number is the bot access dimension, which has a median of zero: adding explicit AI crawler rules and Content Signals to robots.txt moves more sites more points than any other single change.

My site scores 100 but ChatGPT still does not cite it. What is wrong?

Nothing is necessarily wrong with the site, and this is the most common misreading of any readiness score. A scan measures whether a machine can fetch, parse and act on your pages. It cannot measure whether any assistant chose to. Ahrefs found that 97% of valid llms.txt files received zero requests in May 2026, so publishing correctly and being read are separate events, and no scanner in this category measures the second one.

Why does my llms.txt check fail when the file is definitely published?

Most likely because the file lives at a subpath rather than the origin root. AIScan's C2 check probes /llms.txt at the root and stops, which is a confirmed defect: llms.txt v2 explicitly allows subpath files, and scanning a documentation path returns C2 fail while the file at that path returns 200. Until it is fixed, scan the origin root as well as the subpath and read both results.

AIScan passed my Markdown negotiation check but Cloudflare failed it. Which one is right?

Cloudflare, in most cases. AIScan's C1 check currently passes on an HTTP 200 without requiring a Markdown content type, so a host that returns 200 for every path passes it by accident. In this study 55 of the 146 C1 passes, 37.7%, sit on hosts that do not cleanly pass the correct-404 check. Confirm by running curl with an Accept: text/markdown header and reading the content-type header, not the status code.

Why did my score drop when I changed nothing?

Thirteen of the 155 repeat-scanned sites in this study scored lower on their most recent scan, with the largest drop 29 points. The usual causes are a CDN or WAF rule that began challenging the scanner, a robots.txt regenerated by a plugin update, or an intermittent timeout on a slow endpoint counted as a fail. Re-scan once before investigating, then compare the evidence strings for the specific checks that moved.

Is llms.txt worth publishing if almost nobody reads it?

It is cheap enough that the question is mostly about opportunity cost. Google states plainly that creating one will neither harm nor help rankings in Google Search because Search ignores the file. Adoption in this sample is 44.6%, against 28% in Ahrefs' 137,210-domain study and 8.7% of the Tranco top 1,000 per Rankability. The stronger argument for writing one is that it forces a site to state which of its pages actually matter.

Can I reproduce these numbers, or check my own site against them?

Run npx aiscan-cli yoursite.com, or paste the URL at aiscan.site, and you get the same 21 checks under the same rubric version used here. The study itself is a single aggregate query over the scan corpus with no individual URLs disclosed, and it will be repeated quarterly with the sample size, date range and known check defects republished each time.

Related guides