Methodology
How the AIO Score works
The AIO Score is a 0 to 100 measure of how ready a page is for AI search. This page documents every check and every point. It is generated from the same file the scanner runs, so it cannot drift from reality.
How is the score calculated?
We run 21 scored checks against your page and sum the points. Full passes earn full points, partial passes earn half, failures earn zero. There is no AI-generated judgment anywhere in the score. Every check is a rule you can verify yourself, and every weight traces to the published research below.
What research sets the weights?
Four bodies of evidence, all public. Ahrefs studied 1.4 million ChatGPT prompts and found the model cites about half of what it retrieves, judges pages by title, snippet, and URL before opening them, and cites natural-language slugs 89.8% of the time against 81.1% for opaque ones.Surfer's citation studymeasured almost 40% of AI citations coming from a page's first 100 words. On schema,a peer-reviewed controlled experiment found LocalBusiness markup moved nothing on Google or Maps and gave ChatGPT a modest lift, while Ahrefs tracked 1,885 pages adding schema and saw no citation increase. AndGoogle's own AI Mode documentation describes the query fan-out that makes question-shaped content matchable in the first place.
What do we deliberately not score?
The honest scanner is defined as much by what it refuses to count. llms.txtis reported as an informational line worth zero points:Ahrefs' study of 137,000 domains found 97% of llms.txt files received zero requests in a month, andOtterly's 90-day experimentcounted 84 llms.txt hits out of 62,100 AI bot visits. Schema markup is capped at 5 points because LLMs strip the markup and read only the text inside it, whichMark Williams-Cook's fake-address experiment demonstrated neatly. Ourllms.txt and schema guides go deeper on both.
What are the four categories?
Each category answers one question about your page, and each is weighted by how much it affects whether AI systems can use your content.
Retrievability: 35 points
Can AI systems actually fetch your pages? LLMs answer by retrieving live pages through search. Your robots.txt rules, firewall settings, and response speed decide whether you exist in that pool at all.
| Check | What passes | Points | Fix guide |
|---|---|---|---|
| robots.txt is present | Your site serves a valid robots.txt file so crawlers know the rules. | 3 | Fix → |
| GPTBot (ChatGPT) is allowed | robots.txt does not block OpenAI’s GPTBot from your pages. | 3 | Fix → |
| ClaudeBot (Claude) is allowed | robots.txt does not block Anthropic’s ClaudeBot from your pages. | 3 | Fix → |
| PerplexityBot is allowed | robots.txt does not block PerplexityBot from your pages. | 3 | Fix → |
| Google-Extended (Gemini) is allowed | robots.txt does not block Google-Extended, which feeds Gemini. | 3 | Fix → |
| CCBot (Common Crawl) is allowed | robots.txt does not block CCBot, the crawler behind many AI training sets. | 3 | Fix → |
| No blocking meta robots rules | The page has no noindex, none, or noai directives in meta tags or X-Robots-Tag headers. | 3 | Fix → |
| Served over HTTPS | The page loads over a secure HTTPS connection. | 3 | Fix → |
| AI crawlers aren’t blocked by your firewall | Fetching the page with an AI-crawler user-agent returns the real page, not a 403 or challenge screen. robots.txt permission means nothing if the firewall blocks the bot. | 6 | Fix → |
| Page responds fast enough for AI retrieval | The page responds quickly. Retrieval systems are latency-sensitive and would rather skip a slow source than wait for it. | 5 | Fix → |
Machine-Readable Content: 30 points
Is your content present and parseable in the raw HTML? AI crawlers are crude parsers: they don’t run JavaScript, they read titles and headings as structure, and readable URLs get cited measurably more.
| Check | What passes | Points | Fix guide |
|---|---|---|---|
| Title tag is present and well-sized | The page has a title tag between 15 and 60 characters. Titles are matched against the sub-queries AI runs before it ever opens your page. | 4 | Fix → |
| Meta description is present and well-sized | The page has a meta description between 50 and 160 characters. It is part of the snippet AI systems judge before opening the page. | 3 | Fix → |
| Exactly one H1 | The page has a single H1 heading stating what the page is about. | 4 | Fix → |
| Logical heading hierarchy | Headings step down one level at a time with no skipped levels. Clean semantic HTML is the real AI-readiness work. | 4 | Fix → |
| Content is readable without JavaScript | Substantial text exists in the raw HTML. AI crawlers do not execute JavaScript, so content that only renders client-side is invisible to them. | 7 | Fix → |
| Natural-language URL | The URL path reads as words, not IDs. In a 1.4M-prompt study, readable slugs were cited ~90% of the time vs ~81% for opaque ones. | 5 | Fix → |
| XML sitemap is available | A sitemap is referenced in robots.txt or served at a standard location so crawlers can discover every page. | 3 | Fix → |
Answer Readiness: 30 points
Is your content shaped like answers? Citation data shows most lifted passages come from the first 150 words and from concise, declarative text under question-style headings.
| Check | What passes | Points | Fix guide |
|---|---|---|---|
| Answer up front (first 100 words) | The page opens with substantive prose. Surfer’s citation study found almost 40% of AI citations come from a page’s first 100 words, so buried answers rarely get lifted. | 10 | Fix → |
| Question-formatted headings | At least two H2/H3 headings are phrased as questions, the format AI matches against the sub-queries it generates. | 10 | Fix → |
| Answers are front-loaded per section | Most headings are followed by a concise, direct answer paragraph. LLMs retrieve passages rather than whole pages. | 10 | Fix → |
Structured Data: 5 points
A small hygiene item, not a strategy. LLMs strip schema markup and read only the text inside it. Add it because it is free and helps Google rich results, and keep your expectations there.
| Check | What passes | Points | Fix guide |
|---|---|---|---|
| Valid JSON-LD with a recognized type | The page embeds valid JSON-LD declaring what it is. A free hygiene win, and one controlled study shows a modest ChatGPT lift. It is not a ranking strategy. | 5 | Fix → |
| llms.txt (informational, not scored) | We report whether llms.txt exists but award zero points either way. Multiple independent sources found no major AI provider uses it for retrieval or training. | n/a | Why → |
What do the grades mean?
Grades are fixed bands over the 100-point score. Every site, every industry, every scan gets measured against the same bands.
| Grade | Score |
|---|---|
| A+ | 97–100 |
| A | 90–96 |
| B | 80–89 |
| C | 70–79 |
| D | 60–69 |
| F | 0–59 |
Methodology FAQ
Short answers first. That happens to be the whole philosophy.
Why should I trust the AIO Score?
Because you can audit it. This page and the scanner are generated from the same source file, so the weights you read here are the weights that run. Every check is deterministic: scan the same page twice and you get the same score. And each weight traces to published research listed on this page.
What evidence sets the weights?
Published, checkable studies. Ahrefs analyzed 1.4 million ChatGPT prompts and found readable URLs cited 89.8% of the time against 81.1% for opaque ones. Surfer measured almost 40% of AI citations coming from the first 100 words of a page. Controlled schema experiments found little beyond one modest ChatGPT effect, and server-log studies across 137,000 domains found llms.txt essentially unread. Sources are linked in the research section above.
Why is Structured Data only worth 5 points when other tools score it heavily?
Because LLMs strip schema markup and read only the text inside it. The structure is discarded before the model ever sees it, which controlled experiments confirm. Schema still helps Google rich results, and one peer-reviewed study found a modest ChatGPT lift, so it earns a small hygiene weight and no more.
How do partial passes work?
A check that partially passes, say a title tag that exists but runs long, earns half its points rounded up. Full passes earn full points and failures earn zero. The llms.txt line is informational and scores zero either way.
Will the methodology change?
Yes, whenever the evidence changes. When weights move we change them here, in the open, and say why. That already happened once: llms.txt went from scored to informational when the log studies came in. The score will never include hidden or simulated components.
What will Layer 2 add to the score?
Layer 2 will measure the retrieval side directly: whether you rank for the sub-queries AI actually generates, plus reputation signals like reviews that act as a second check before AI recommends anyone. It will sit alongside the on-page AIO Score rather than being blended into it.