Methodology

How the scanner works

No black box. Exactly what we request, how the score is calculated, and — just as importantly — what this scan deliberately does not do.

What happens when you scan

  1. We resolve the domain. Your input is normalised to an origin and we follow redirects, so example.com, www.example.com and an http→https hop all land on the same canonical origin before anything is judged.
  2. We fetch the homepage and read its HTML: title, meta description, canonical link, Open Graph tags, robots meta, and any Schema.org JSON-LD.
  3. We fetch the public discovery files in parallel — /robots.txt, /llms.txt, /llms-full.txt, /sitemap.xml, /ai.txt and /.well-known/ai.txt.
  4. We follow what those files point at. If robots.txt declares a sitemap elsewhere, we fetch that too before calling the sitemap missing. If llms.txt is absent on a subdomain, we check the apex before failing it outright.
  5. We score and store. The report is saved so its link stays shareable, and the score card image is generated from it on demand.

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.

How the score is calculated

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.

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.

What the bands mean

ScoreBandReading
75–100StrongThe signals AI engines rely on are in place. Keep them current as the site changes.
45–74Needs workSome signals are missing or ambiguous. Engines can read the site, but they are filling gaps with guesses.
0–44At riskCore signals are absent or actively blocking. AI engines are largely working without your input.

What this scan does not do

Being clear about the edges matters more than looking comprehensive.

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.

It does not crawl your whole site

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.

It does not measure actual citations

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.

It does not judge content quality

No opinion on your writing, your authority or your backlinks. Plumbing only. And it cannot see anything behind a login — it does not try.

Same engine everywhere

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.

How often to re-scan

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.

Try it on your own domain

Now that you know exactly what it measures.