How the AI Visibility Score Is Calculated
The score is out of 100 points, split across five pillars. Each pillar is made of individually weighted signals; a signal that doesn't apply to a given site (a brochure site with no products, for example) is marked not-applicable and excluded from its pillar's denominator rather than scored zero, so a site is never punished for a question that doesn’t apply to it.
Fix-list priority (used on every report's issue list) is ranked by impact first, then by how badly the signal failed, then by the signal's weight, with lower-effort fixes breaking ties — so the list opens with something you can actually act on today.
An honest note on what's evidence-backed
Not every signal below carries the same evidentiary weight, and we think you should know which is which. The AI Crawler Access pillar's live user-agent probe is the best-evidenced, most consequential check in this tool: it catches CDNs and WAFs that silently 403 AI crawlers regardless of what robots.txt says, and it is the single finding most likely to change what you do next. The Answer-Readiness pillar is grounded in how retrieval and citation systems actually work — chunked, extractable, attributable text.
The Structured Data & Entity signals and the /llms.txt check, on the other hand, are weighted the way they are because they help a machine parse what your site is and who runs it — not because there is strong evidence they directly drive whether an AI assistant cites you. The evidence that JSON-LD or llms.txt meaningfully changes citation behaviour today is weak to nonexistent. We still check for them, because entity clarity is a reasonable, low-cost thing to have and because a tool like this one would look absurd failing its own audit for lacking an llms.txt file. Just don't treat a missing FAQPage schema as equivalent in importance to a CDN blocking GPTBot — they are not the same kind of problem, and the impact labels on each report reflect that difference.
AI Crawler Access — 25 points
Can AI crawlers reach the site at all? This checks what robots.txt says, and — more importantly — what actually happens when a real crawler shows up. A CDN or WAF can silently block AI bots even on a site whose robots.txt welcomes them, and the owner usually has no way to find out. The live user-agent probe that catches this is the single highest-value check in the whole audit.
| Signal | Weight | Impact |
|---|---|---|
| robots.txt is reachable and parses | 3 | high |
| GPTBot is allowed in robots.txt | 4 | critical |
| OAI-SearchBot is allowed in robots.txt | 3 | critical |
| ClaudeBot is allowed in robots.txt | 3 | critical |
| PerplexityBot is allowed in robots.txt | 3 | high |
| Google-Extended is allowed in robots.txt | 3 | high |
| CCBot is allowed in robots.txt | 1 | medium |
| AI crawlers are not blocked by the CDN or WAF (live probe) | 4 | critical |
| /llms.txt is published | 1 | low |
Content Accessibility — 20 points
Is the actual content present in the raw HTML a crawler receives, or hidden behind JavaScript and walls? Most AI crawlers do not execute JavaScript — if your content only appears after a client-side render, it is invisible to them no matter how good the writing is.
| Signal | Weight | Impact |
|---|---|---|
| Content is present in the raw HTML | 8 | critical |
| Pages are reachable without client-side routing | 3 | high |
| Missing pages return a real 404 | 2 | medium |
| Content is not hidden behind a wall (paywall/login/cookie gate) | 3 | high |
| Information is text, not baked into images | 2 | medium |
| Pages respond quickly and are not oversized | 2 | low |
Structured Data & Entity — 20 points
Can a machine identify what this site is and who publishes it, from JSON-LD, declared organization details, and consistent brand naming across the site.
| Signal | Weight | Impact |
|---|---|---|
| JSON-LD is present and parses | 3 | high |
| The publishing organisation is declared | 4 | critical |
| sameAs links tie the brand to known profiles | 3 | high |
| Content pages declare Article schema | 3 | high |
| Q&A content is marked up as FAQPage | 2 | medium |
| Products or services are described in schema | 2 | medium |
| BreadcrumbList describes site structure | 1 | low |
| The brand name is written consistently | 2 | medium |
Answer-Readiness — 25 points
Is the content shaped so a model can lift a correct, attributable answer out of it? This is the differentiator pillar — the other four are checkable by any SEO tool. This one asks whether the writing itself is retrievable: answer-first sections, retrievable chunk sizes, real lists and tables, visible dates, named authors, and sentences that assert something checkable.
| Signal | Weight | Impact |
|---|---|---|
| Heading structure is clean (single H1, logical nesting) | 3 | medium |
| Headings match the questions people ask | 3 | high |
| Sections answer their heading immediately | 4 | critical |
| Passages are short enough to retrieve cleanly | 3 | high |
| Enumerable information uses lists and tables | 3 | high |
| Content carries visible, current dates | 3 | high |
| Content is attributed to a named author | 3 | high |
| The writing contains quotable, checkable facts | 3 | medium |
Machine Hygiene — 10 points
Baseline technical signals that keep any crawler — AI or otherwise — oriented on your site.
| Signal | Weight | Impact |
|---|---|---|
| Canonical tags are present and self-referencing | 2 | medium |
| A sitemap exists and is declared in robots.txt | 2 | medium |
| Titles and meta descriptions are unique and useful | 2 | medium |
| Key pages are reachable from the homepage | 2 | medium |
| HTTPS is clean with no redirect chains | 1 | low |
| Language targeting is declared correctly | 1 | low |
Off-site AI knowledge signals (not part of the score)
Every report also shows three checks that sit outside the 100-point score entirely: whether this domain is registered as a real-world entity’s official website on Wikidata, whether it has a linked Wikipedia article, and whether it appears in a recent Common Crawl snapshot. These answer a different question than everything above — not "can AI crawl this site," but "does the wider web already tell AI systems this brand exists," which is closer to what a brand-mention tool measures by prompting live models and counting citations.
We deliberately don't do that: querying ChatGPT, Claude or Perplexity live, on every free report, would mean paying for AI API calls on a tool built to have none. Wikidata, Wikipedia and Common Crawl are free, keyless, public sources those systems are independently known to draw from, so we check those instead of simulating an AI’s answer. It is a real, honestly-labelled signal — not a substitute for actually asking those models about your brand. A "not found" result is informational, not a fix-it item the way a blocked crawler is: plenty of legitimate, perfectly AI-readable small businesses have no Wikidata entry, and a lookup can also come back "couldn’t check" if Wikidata or Common Crawl’s own infrastructure timed out.
Grade bands
| Score | Grade | Label |
|---|---|---|
| 90–100 | A | AI-ready |
| 75–89 | B | Mostly visible |
| 60–74 | C | Partially visible |
| 40–59 | D | Hard to cite |
| 0–39 | F | Effectively invisible |