Methodology
v1.0Last reviewed July 6, 2026How the AI-readiness score is calculated
Your AI-readiness score is a weighted average across 23 always-on checks (plus 6 that run only when the data to test them exists), grouped into five dimensions: brand identity, products and catalog, AI discovery files, answer-engine basics, and trust signals. Each check earns full credit when it passes, half when it warns, and nothing when it fails. We add up the credit you earned, divide by the total possible weight (31 across the always-on set), and round to a percentage from 0 to 100. That percentage maps to a letter grade: A is 90 and up, B is 75, C is 60, D is 40, F below that.
One rule overrides everything. If your robots.txt blocks an AI search crawler like OAI-SearchBot or Googlebot, the top-line score is capped at 49 (grade D), because pristine data is worthless to an engine that can't read it. Everything below is the exact list, with each check's weight pulled straight from the code that runs the scan, so what you read here is what the tool actually does.
Every check, its weight, and the fix
These are generated from the same catalog the scanner scores with, so the numbers here can't drift from your result. Tap any check to expand what it detects, why an AI agent cares, and exactly how to fix it.
Every check, sized by its weight
23 always-on checks · 6 conditional · 31 total base weightThe score is a weighted average. Each check earns full credit when it passes, half when it warns, and zero when it fails. A check's slice below is its weight as a share of the always-on total.
Brand identity
Can an agent tell who you are?
Products & catalog
Can it read and recommend your products?
AI discovery files
Can AI crawlers find and index you?
Answer-engine basics
The meta answer engines summarize from.
Trust & policies
The signals that make agents confident.
Tap any check to see what it detects, why an agent cares, and the exact fix. Run the free checker on your store to see your own numbers.
A worked example
Watch a store get scored
Here is a store scored check by check, with the weighted-average arithmetic laid bare. Every weight is the real one, so the final number is one you could compute yourself from the tables above.
A store called Northwind Supply, scored line by line
Northwind is a stand-in, not a real customer. But the weights and the arithmetic are the real ones, so you can follow every step and get the same number.
| Check | Result | Weight | Credit | Earned |
|---|---|---|---|---|
| Brand identity (Organization / WebSite) | Pass | 2 | ×1 | 2 |
| Logo in structured data | Pass | 1 | ×1 | 1 |
| Linked social profiles (sameAs) | Warn | 1 | ×0.5 | 0.5 |
| Sitelinks search (SearchAction) | Fail | 1 | ×0 | 0 |
| Product structured data | Pass | 3 | ×1 | 3 |
| Price & availability (Offer) | Pass | 2 | ×1 | 2 |
| Ratings & reviews (AggregateRating) | Warn | 1 | ×0.5 | 0.5 |
| Breadcrumbs (BreadcrumbList) | Warn | 1 | ×0.5 | 0.5 |
| AI search crawlers allowed | Pass | 3 | ×1 | 3 |
| All crawlers reachable (robots.txt) | Pass | 1 | ×1 | 1 |
| llms.txt index | Fail | 1 | ×0 | 0 |
| agents.md guide | Fail | 1 | ×0 | 0 |
| XML sitemap | Pass | 1 | ×1 | 1 |
| Served over HTTPS | Pass | 2 | ×1 | 2 |
| Freshness signal (dateModified) | Warn | 2 | ×0.5 | 1 |
| Page title | Pass | 1 | ×1 | 1 |
| Meta description | Pass | 1 | ×1 | 1 |
| Canonical URL | Pass | 1 | ×1 | 1 |
| Open Graph (image + title) | Warn | 1 | ×0.5 | 0.5 |
| Language declared | Pass | 1 | ×1 | 1 |
| Return policy signal | Pass | 1 | ×1 | 1 |
| Shipping details | Warn | 1 | ×0.5 | 0.5 |
| FAQ structured data | Fail | 1 | ×0 | 0 |
| Totals | 31 | 23.5 | ||
23.5 ÷ 31 = 0.758, rounded to a percentage.
No black box
Reproduce your score by hand
You do not have to trust the number. Here is the whole procedure, the same one the scanner follows.
- 1
Fetch what an agent fetches
Load the homepage, a few product pages, /llms.txt, /agents.md, /robots.txt, /sitemap.xml, and (on Shopify) /products.json, using a plain crawler user-agent. That is the exact set of public documents the scanner reads.
- 2
Run each check for pass, warn, or fail
Work down the list above. For each check, look for the signal it detects. Present and correct is a pass, present but weak is a warn, absent is a fail. Skip a conditional check when its precondition is absent (no Product schema means the GTIN check does not run).
- 3
Turn each result into earned weight
Multiply the check's weight by its credit: 1 for a pass, 0.5 for a warn, 0 for a fail. A weight-3 check that warns earns 1.5.
- 4
Divide, then round
Add up every check's earned weight, add up every check's full weight, divide the first by the second, multiply by 100, and round. That is your raw score.
- 5
Apply the crawler cap
If robots.txt blocks a critical AI search crawler, cap the top-line score at 49. Otherwise the raw score stands. Map the final number to a grade: 90+ A, 75+ B, 60+ C, 40+ D, else F.
We publish this because we hold ourselves to it too
We run our own sites through these same checks and show the results in the open. See exactly how we score against our own methodology.
This methodology is versioned. You are reading v1.0, last reviewed July 6, 2026. When the checks or weights change, the version and date change with them, and this page updates the same day. Run the checker to see your own score against it.
