26 parameters across 5 categories, every one mechanically checkable — no vibes-based scoring. Every check returns a state (pass, partial, fail, not applicable, or error — a failed fetch never counts against a site), and every failed or partial result renders the evidence we actually saw plus a concrete recommendation. A 6th category, AI Citation & Visibility, exists in the framework but is disabled for now — direct testing against ChatGPT/Perplexity/Gemini is a post-launch add-on, not part of the free readiness score.
Can AI crawlers reach, fetch, and parse the site at all — the precondition for everything else.
Does the site hand machines an explicit, unambiguous description of what it is and says.
Is content shaped so an LLM can lift a clean, correct answer out of it.
Does the page signal it is current and actively maintained.
Is there a real, verifiable, authoritative entity behind the content.
Each parameter carries a priority weight (High = 3, Medium = 2, Low = 1) and a state value (pass = 1.0, partial = 0.5, fail = 0). A category's score is the priority-weighted average of its applicable parameters' state values, times 100. The overall score is the weighted sum of category scores, renormalized if an entire category is not applicable to a given page.
Hard gates: a handful of failures cap the overall score outright regardless of everything else — a site that blocks AI crawlers in robots.txt, gets silently blocked at the CDN/WAF level, carries a noindex directive, or is invisible without JavaScript is structurally unreachable, and an uncapped score would misrepresent that. When a gate applies, the report shows both numbers: the underlying signals score and the capped effective score, with the reason named plainly.
Every scan is stamped with the exact framework and scoring version used, so a re-scan is always comparable to the one before it — or explicitly flagged as not, if the rubric changed.