Methodology.
What the Checker tests, and how the live AI Readiness Index is computed. The method is public; the exact signal weights, the failure-to-fix lookup, and the scan corpus are not.
What the Checker grades
The Checker runs 43 deterministic signals against a single public URL and scores them to 100. Every signal tests a published, vendor-neutral standard — schema.org, llms.txt, OpenAPI 3.1, MCP, IndexNow, robots.txt, ACP, AP2, x402, the OpenAI Apps SDK, Google WebMCP. We never grade a site against a proprietary or unpublished protocol, and the grade is absolute — there is no curve.
The 43 signals fall into 7 groups:
- Discovery
- robots.txt clarity, sitemaps, llms.txt, IndexNow, per-route markdown variants.
- Identity
- JSON-LD that parses, Organization and Person schema, cross-domain sameAs.
- Agent contracts
- OpenAPI 3.1, a discoverable MCP server, a live MCP handshake.
- Rendering & access
- SSR vs. headless parity, canonicals, compression, no JS-required nav.
- Citation
- definitional sentences, stable anchors, heading hierarchy, dated articles.
- Hygiene
- HTTPS/HSTS, freshness, a privacy policy, security.txt, no accidental AI-bot blocks.
- Commerce
- ACP feed, ACP checkout, AP2 mandates, x402 challenge, schema.org Offer.
Every result carries an evidence row — the URL fetched, the status code, and a response
snippet — so any score is reproducible yourself with curl. The Quick Wins
panel is generated deterministically from a fixed lookup table, never by a language model,
so a recommendation can never contradict the evidence.
How a scan becomes data
Each scan writes one anonymised row to our corpus: the URL, the signal results, the score, an optional self-classified vertical, and a timestamp. No personal data is involved — websites are public information. The individual report is ephemeral and private to whoever ran the scan; it is returned inline and never published to a URL.
How the AI Readiness Index is aggregated
The Index on the homepage publishes aggregate, anonymised statistics only — average score, coverage gaps, top and bottom verticals, sites scanned. A nightly job rolls the corpus up; the page reads that roll-up. Three rules keep the numbers honest:
- Deduplicated. Each
(domain, day)pair counts once, no matter how many times that site was scanned. - Owner re-tests excluded. Scans flagged as a site owner re-testing their own fixes are left out of the aggregates, so the numbers are not gamed.
- No individual domain is ever shown. There is no public per-site report URL and no named leaderboard. Only aggregates are public.
Verticals
At the end of a scan you can optionally classify the site — B2B SaaS, e-commerce, media, and so on. Roughly a third of users answer, which is enough signal to compute a vertical percentile on the report and the per-vertical numbers on the Index. The vertical comparison is a map, not a curve: it shows where the realistic frontier sits, while your absolute grade stays graded against the universal standard.
What this is not
The signal weights, the failure-to-fix lookup, and the corpus itself are trade-secret-class and not published. The standards we test against, the method above, and every individual evidence row are fully transparent. Sample sizes on the Index are shown as they are — when a vertical has too few sites to be meaningful, we say so rather than publishing a noisy number.