It does not render JavaScript
We read the HTML your server returns. If metadata or structured data is injected client-side we will not see it — but neither will most AI crawlers, so a gap here is a real finding rather than a measurement error.
Methodology
No black box. Exactly what we request, how the score is calculated, and — just as importantly — what this scan deliberately does not do.
example.com, www.example.com and an http→https hop all land on the same canonical origin before anything is judged./robots.txt, /llms.txt, /llms-full.txt, /sitemap.xml, /ai.txt and /.well-known/ai.txt.
Requests identify themselves honestly as GEOCheckerScan with a link back here, use
normal GET requests, and cap response bodies. A scan is a handful of requests — roughly what one
visitor costs you.
Nine signals carry weight, summing to 100. A pass earns full weight, a partial result earns half, a failure earns nothing. Informational checks are excluded from the maths entirely, so adopting or ignoring an emerging convention cannot change your number.
| Signal | Weight |
|---|---|
| llms.txt | 18 |
| robots.txt AI bots | 18 |
| Schema.org JSON-LD | 14 |
| Sitemap | 12 |
| Title & meta description | 10 |
| llms-full.txt | 8 |
| Canonical URL | 8 |
| Open Graph | 6 |
| Indexable page | 6 |
| Total | 100 |
The weights are a judgement, not a physical constant: they reflect how much each signal changes what an AI system can confidently say about you. We publish them so you can disagree with them.
| Score | Band | Reading |
|---|---|---|
| 75–100 | Strong | The signals AI engines rely on are in place. Keep them current as the site changes. |
| 45–74 | Needs work | Some signals are missing or ambiguous. Engines can read the site, but they are filling gaps with guesses. |
| 0–44 | At risk | Core signals are absent or actively blocking. AI engines are largely working without your input. |
Being clear about the edges matters more than looking comprehensive.
We read the HTML your server returns. If metadata or structured data is injected client-side we will not see it — but neither will most AI crawlers, so a gap here is a real finding rather than a measurement error.
One page plus the discovery files. That covers nearly every signal, because these live at the origin level. Per-page analysis across a full site is a paid product.
This measures readiness — whether engines can understand you. Whether they do cite you is a different question, and one we are building separate tooling for.
No opinion on your writing, your authority or your backlinks. Plumbing only. And it cannot see anything behind a login — it does not try.
The web scanner, the browser extension and our batch audit tooling share one implementation of these checks. A domain scores identically whichever way you run it — which matters when you are showing a client a number and they check it themselves.
After any redesign, framework migration, CMS upgrade or robots.txt edit. The most common failure we see is not a site that never had these signals — it is a site that had them and lost them in a deploy, with nobody noticing for months.