How AX Audit actually scores a site
This page documents exactly what the scanner checks, how those checks turn into a score and a grade, and where the automation reaches its limits. If you’re deciding whether to trust a report — your own or a competitor’s — this is the page to read first.
A point-in-time automated scan, not a certification
AX Audit runs a set of automated checks against a URL you submit and returns a score out of 100, a letter grade, and a per-check breakdown. It is a fast, repeatable way to see how an AI agent would experience your site today — not a comprehensive audit, not a security assessment, and not a guarantee of anything about your site’s actual safety or legal compliance.
This is not a security or compliance certification. A high score means your site exposes the machine-readable signals an agent looks for. It says nothing about whether your APIs are secure, your terms are enforceable, or your infrastructure can handle agent traffic at scale.
Six categories, from “can it find you” to “can it become your customer”
Every check maps to one of five categories from the open AgentReady (AR-*) standard, plus AR-PROV, a sixth category AINative authored and proposed as an upstream contribution to that standard. We don’t publish a fixed total check count here, because the set of checks changes as the underlying standards (OAuth profiles, MCP conventions, x402, etc.) evolve — what’s stable is the six categories below and what each one is trying to verify.
Every file and endpoint the scanner actually looks for
This is the real list — every path below is pulled directly from live scan output (the detailsfield on each check), not a marketing summary. We don’t publish a category-weighted percentage breakdown (e.g. “Discoverability 20%, Parsability 20%”) because that model doesn’t reflect how the scanner actually scores — every named check (listed in the categories above) carries its own individual point value, and those sum to 100.
Sum of per-check scores, mapped to a grade
Each check the scanner runs returns a pass/fail, a score, and a max score for that check — for example, { name: "robots.txt", passed: true, score: 8, max_score: 10 }. The overall score is the sum of every check’s scoredivided by the sum of every check’s max_score, expressed out of 100. There is no hidden weighting beyond what each check’s own max score encodes, and no manual adjustment after the scan runs.
That score maps to a grade using fixed thresholds — the same thresholds the scanner’s own result pages use, reproduced here exactly:
Separately, the scanner groups any score into one of three bands for quick visual reference on result pages:
Every check is shown, not just the summary
Nothing about the score is black-boxed. Every scan returns the full list of individual checks with their pass/fail state, points earned, points possible, and a details string describing exactly what the scanner observed — the actual response header, file, or endpoint it looked at. This is the real shape of that response:
{
"url": "https://example.com",
"score": 74,
"max_score": 100,
"grade": "C",
"checks": [
{
"name": "llms.txt present",
"passed": false,
"score": 0,
"max_score": 8,
"details": "No /llms.txt found (404)"
},
{
"name": "robots.txt allows AI crawlers",
"passed": true,
"score": 10,
"max_score": 10,
"details": "GPTBot, ClaudeBot, PerplexityBot all allowed"
}
// ...one entry per check, every category represented
],
"scanned_at": "2026-10-23T18:04:00Z"
}What automated checks can and can’t tell you
We’d rather you trust a report because you understand its limits than because you assumed it has none. Some honest caveats:
- Automated checks can produce incorrect results.A failed check may reflect a scanning limitation — a timeout, a bot-blocking rule, a JavaScript-rendered page the scanner couldn’t execute — rather than a real gap on your site. Read the details field on any failed check before treating it as ground truth.
- We do not manually review scans.Every report is generated entirely by the automated checker, with no human verification step before it’s shown to you. That makes it fast and repeatable, and also means it carries the error modes of any automated crawl.
- A pass means a signal is present, not that it’s correct. A check for JSON-LD, for example, verifies that structured data exists and parses — it doesn’t verify that every field in it is accurate.
- This is a snapshot, not continuous monitoring. The score reflects what the scanner observed at scanned_at. Sites change; so do scores.
- Standards are still moving.Several categories this scanner checks (AR-COMM payment protocols, AR-PROV provisioning) describe emerging, not-yet-universal standards. A low score in those categories often means a standard that’s still early, not necessarily a mistake on your part.
Read the standard, or scan a real site
The AgentReady categories (AR-DISC through AR-COMM) are an open standard. AR-PROV is AINative’s own proposed extension, published openly and used to score ainative.ax itself — our own site is scanned by the same checker, against the same thresholds, in public.