Your site renders for people. Does it read for agents?
AgentPass fetches a URL the way an AI crawler would, scores what it finds on a 100-point index, and hands you the exact fixes — each one written to be pasted into a coding agent.
Free scan, no account. 32 named crawlers · 120 checks · 8 weighted domains · one request each.
What one scan returns
A score you can regress against
ARI-100, a letter grade and a 0–5 maturity level. Deterministic for a fixed response, so a downgrade after a deploy is a real signal.
The crawler matrix
Every named agent is probed with its own user-agent string and checked against your robots.txt with RFC 9309 longest-match rules. You see allowed, blocked, challenged or unverifiable — per agent.
A fix pack, ordered by points
Each failing check lists its id, weight, the observed evidence and a prompt that names the required outcome. Highest recoverable points first.
The eight domains
Weights are fixed and public. A domain is scored only over the checks that apply to your site's shape; the domain score is the weighted share of points earned, and the total is the weight-normalised sum across live domains plus at most 5 points of emerging-signal bonus.
| Domain | Weight | Checks | What it reads |
|---|---|---|---|
| Reachability & Access | 20 | 15 | robots.txt policy, live reachability for 32 named AI crawlers, indexability, interstitial and edge-block detection. |
| Render & Delivery | 10 | 11 | Server-rendered text before scripts run, status codes, soft-404 detection, TTFB, payload weight and text-to-markup ratio. |
| Structure & Semantics | 12 | 14 | Title, description, a single H1, heading order, self-canonical, language, social tags and control names. |
| Structured Data | 12 | 12 | JSON-LD that parses, page and entity types, sameAs identity, dates, breadcrumbs and price-vs-page agreement. |
| Discovery Files | 14 | 18 | Sitemap, llms.txt shape, llms-full.txt, Markdown mirrors, Accept negotiation, Link headers and the AGENTS.md build guide. |
| Agent Interfaces | 14 | 27 | OpenAPI, RFC 9727 catalog, RFC 9728 and RFC 8414 metadata, MCP card plus a live MCP handshake, A2A and error shapes. |
| Operability & Commerce | 10 | 13 | Search, cart form semantics, variant controls, price in server HTML, guest checkout and policy links. |
| Trust & Authority | 8 | 10 | Author, visible dates, outbound sources, about/contact reachability, legal name, HTTPS hygiene and broken links. |
The crawler matrix
32 crawlers across 28 platforms: 11 AI search indexers, 8 live user agents that fetch on a person's behalf, 11 training crawlers and 2 niche fetchers. 21 of them carry weight in the access score; training crawlers carry none but their policy is still read, because a site that blocks training without saying so looks hostile to every agent that reads robots.txt.
| Family | Probed | Failure mode it exposes |
|---|---|---|
| AI search indexers | 11 | A robots group or edge rule hides the page from the index that answers questions. |
| Live user agents | 8 | A challenge page or a login wall answers the fetch that a person's assistant makes on their behalf. |
| Training crawlers | 11 | No stated training policy, so the default is guessed on your behalf. |
| Niche fetchers | 2 | Fetchers outside the big platforms cannot read the page at all. |
A block is only counted when it is observable from one server. Verified-identity crawlers that answer differently to a verified IP are marked unverifiable and drop out of the denominator instead of being scored as a failure.
How ARI-100 is computed
Every check returns one of five states. A pass earns its full weight, a partial earns half, a fail earns nothing, and inconclusive or not-applicable checks leave the domain denominator entirely — so a single-page site is not punished for missing a product page.
domain_score = round(1000 * Σ(weight × points) / Σ(weight applied)) / 10 core = Σ(domain_score × domain_weight) / Σ(domain_weight) ARI-100 = min(100, core + min(5, emerging_signals_passed))
The bonus is capped at 5 points and cannot lift a site past 100. Grade bands run from A+ at 95 to F below 40, and an A+ also requires an accessibility sub-score of 80 or better. The full methodology lists each band, each state and the limits of a one-shot probe.
What we build on
The engine reads public conventions rather than private heuristics. Where a standard exists, the check cites it.
- RFC 9309 — Robots Exclusion Protocol
- RFC 9727 — API discovery linkset
- RFC 9728 — OAuth protected resource metadata
- llms.txt convention
- Schema.org vocabulary
Questions agents ask
What does the ARI-100 score actually measure?
It measures the affordances an AI agent needs before it can read, trust and operate a site over plain HTTP: reachable robots policy, server-rendered text, stable structure, parseable structured data, discovery files, machine interfaces and a checkout path. Each check returns pass, partial, fail, inconclusive or not applicable, and the domain score is the weight-normalised sum.
Why is a snapshot not a guarantee?
One scan is one request per surface at one moment. A CDN rule change, a bot-manager threshold or a redeploy can flip a verdict minutes later. Re-scan after every deploy, and treat the score as a regression test rather than a certificate.
How do you test crawlers you cannot verify?
Every crawler is probed with its real user-agent string and checked against your robots.txt with RFC 9309 longest-match semantics. Verified-identity crawlers answer differently to a verified IP, so a rejection for them is labelled unverifiable instead of blocked, and it leaves the access denominator rather than being scored as a failure.
Is the free tier a trial?
No. Scout stays free: one scan a day, the score, the domain table, the crawler matrix and the first three fix prompts. Paid tiers unlock the whole fix pack, higher API limits, history and a CI gate.
Can a coding agent use the report directly?
Yes. Every fix carries the check id, weight, observed evidence and a prompt written to be pasted into an agent. GET /report/<host>.md returns the same content as Markdown, and the MCP tools scan_site and get_report return JSON over one POST.
Scan your own site
Paste a URL and get the score, the matrix and the first three fixes free. Pro unlocks the whole pack, unlimited scans and the API key that makes the fix loop automatic.