How the score works
Every signal, its weight, and the reason it carries that weight. If you disagree with a number here, you are disagreeing with something specific.
The arithmetic
Each signal has a weight and a result: pass counts the full weight, partial counts half, fail counts nothing. A signal that does not apply to the page - alt text on a page with no images - is left out of both sides, so it neither rewards nor punishes. The score is the weighted points earned divided by the weighted points available, out of 100. A is 90 or above, B is 75, C is 60, D is 40.
Technical SEO health is scored separately and shown beside the AI score. Folding it in would let a fast, tidy, well-linked page hide the fact that AI crawlers cannot read it - which is the one measurement classic SEO tools do not make.
Where the weights come from
Three signals carry weight because they have a measured effect size: cited sources, statistics and quotations each moved AI citation visibility by 30-40% in GEO: Generative Engine Optimization (Aggarwal et al., KDD 2024, arXiv:2311.09735), which tested nine tactics across 10,000 queries. Keyword stuffing did nothing in that study, which is why there is no keyword-density check here.
Everything else is a reasoned judgement, weighted lower to say so. The three heaviest - render dependency, crawler access in robots.txt, and crawler access at the server - are the same class of failure: the crawler arrives and leaves with nothing, and no other signal can compensate.
The 30 signals
| Signal | Weight | Why |
|---|---|---|
| JavaScript-rendered content | 13 / 203 | If the content only exists after JavaScript runs, most AI crawlers never see it. Every other signal is moot. |
| AI crawler access | 13 / 203 | robots.txt rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended and CCBot. Blocked is blocked. |
| Structured data | 13 / 203 | Schema.org JSON-LD tells a machine what a page is instead of making it guess. Guessing is where citations go wrong. |
| AI crawlers actually served | 12 / 203 | robots.txt is a request; the server has the last word. We fetch the page as each crawler and compare with a browser. A CDN can 403 a bot that robots.txt allows. |
| FAQ / Q&A format | 10 / 203 | Question-and-answer blocks with FAQPage schema are the passages most often lifted whole into an answer. |
| Entity clarity | 9 / 203 | A model that cannot tell what your page is about has no reason to cite it. |
| Answerability | 9 / 203 | Short, self-contained paragraphs and lists can be quoted; a wall of prose cannot. |
| Cited sources | 9 / 203 | Linking claims to their sources moved AI citation rates 30-40% in the KDD 2024 GEO study (Aggarwal et al.). One of three tactics with a measured effect. |
| Concrete statistics | 8 / 203 | Concrete figures, dates and percentages. Also 30-40% in the GEO study. Adjectives are not evidence. |
| Direct answer up front | 8 / 203 | Does the opening actually address the headline? Engines lift the first paragraph far more often than the middle. |
| Page title | 7 / 203 | The most-quoted string on the page. Short, specific, present. |
| Meta description | 7 / 203 | What search and preview surfaces show. Present, and inside the length that gets truncated. |
| Author / E-E-A-T | 7 / 203 | A named person with a real page behind them. AI engines weight identifiable expertise. |
| Content depth | 7 / 203 | Thin pages are not cited. This is a floor, not a target. |
| Quotations | 7 / 203 | Quoted material with attribution. The third of the three GEO-study tactics. |
| Freshness | 6 / 203 | A real, recent date. Stale content is discounted. |
| Question-shaped headings | 6 / 203 | A heading phrased as the question people type is the passage most likely to match a query. |
| Passage chunkability | 6 / 203 | Retrieval works on passages, not pages. Sections of roughly 40-600 words survive being cut out; a 2,000-word block gets truncated and a 15-word one carries no context. |
| H1 heading | 5 / 203 | One clear H1. Two is ambiguity; none is a page with no subject. |
| Heading structure | 5 / 203 | H2 and H3 sections are how a long page gets split for retrieval. |
| Tables and lists | 5 / 203 | Structured blocks are lifted whole into answers far more readily than prose. |
| llms.txt | 4 / 203 | Scored on shape, not presence: H1, blockquote summary, H2 sections of markdown links with descriptions. An empty file is not a summary. |
| Internal links | 4 / 203 | How a crawler maps the rest of your site from this page. |
| Semantic HTML | 4 / 203 | main, article, nav, section: the tags that tell a parser which part is the content. |
| Sentence fluency | 4 / 203 | Long sentences are hard to lift cleanly. Fluency raised citation rates in the GEO study. |
| Content vs boilerplate | 4 / 203 | How much of the page is actually this page, versus nav and footer repeated sitewide. |
| Open Graph | 3 / 203 | What Teams, Slack, WhatsApp and X show when the link is shared. |
| Image alt text | 3 / 203 | Alt text on images that carry meaning. Decorative images marked alt="" are correct and excluded. |
| Definition sentence | 3 / 203 | One plain "X is a ..." sentence near the top is the exact shape a definitional query retrieves. |
| Canonical URL | 2 / 203 | One URL per page, declared. Duplicates split whatever credit the page earns. |
What this cannot see
Whether an AI actually cites you. That depends on what the rest of the internet says about your site - links, mentions, reputation - which a page audit cannot measure. This tool checks the half you control: whether the page can be read, understood and quoted. The other half is earned, not configured.
These weights are a judgement and arguments against them are welcome. Send them to the contact page with the signal named.