GEO-SCORE · OPEN AEO RUBRIC
Can AI cite
your website?
21 tiered checks, 100 points. One command, and the report records how long the run took. MIT-licensed and machine-readable — anyone can reproduce your score with the same method, including your competitors.
Score your own site right now, nothing to install:
curl -sL https://raw.githubusercontent.com/jianruntech/geo-score/v1.8.3/cli/geo_score.py \
| python3 - your-domain.com --brief
If you can run a command, run it. If you cannot — or you ran it and do not know what to change — let us run it and talk you through the result. No charge.
Standard library only, Python 3.8 or later. There is also a GitHub Action that can block a release on regression.
One tool, three levels
The rubric only answers whether AI can cite you. Whether it cites you today, and who it picks instead, takes asking each AI a real question — that is levels two and three, on your own API key; the results are reported separately and never added to the 100 points.
| Level | Answers | Needs | Command |
|---|---|---|---|
| 1 · Score | Can AI engines crawl, understand, trust and cite this site? A 0–100 score on the public rubric | Nothing: no key, no install | geo_score.py your-domain.com |
| 2 · Ask | For the one question you care about, does AI cite the site right now? | An API key from any one of OpenAI, Perplexity, Gemini, Anthropic or OpenRouter | geo_score.py your-domain.com --ask 'your question' |
| 3 · Track | How often you are cited, which competitors and sources beat you, and how that moves week to week? | Your API key and a fixed set of questions | geo_score.py watch run |
The curl | python3 line above runs level one only. For all three levels, run 1.8.3 from PyPI:
# run without installing (needs uv)
uvx geo-score@1.8.3 your-domain.com
# or install a geo-score command
pipx install geo-score==1.8.3
Use it as an MCP server in Claude Code, or install it as a skill:
claude mcp add --scope user geo-score -- uvx geo-score@1.8.3 mcp
npx skills add jianruntech/geo-score
Three gates: fail one and the rest is wasted
Three of the 21 checks are gates. Score zero on any of them and the normalized result is capped at 40 — not a deduction, a ceiling. When those three fail, nothing in the other eighteen ever reaches the engine.
Block AI retrieval crawlers by name in robots.txt and the content never enters the engine's index. Sometimes that is an editorial decision — publishers and medical sites choosing not to be cited is perfectly reasonable; the rubric records it as it is and does not call it a misconfiguration.
Probed with ten real retrieval user agents, one by one. Some sites return 200 to a browser and 403 to a crawler — the failure nobody notices, because from inside the company the site looks fine.
When the body only exists after JavaScript has run, a crawler receives an empty shell. The content is there and the browser shows it, but the engine cannot read it. This group is almost certainly unintentional.
324 well-known sites measured: AI crawlers can't read about a quarter
The leaderboard is a fixed public list — 370 sites listed, 324 measured, grouped into 20 sectors; a sector with fewer than 10 measured sites gets no median, because a median on fewer than that tells you nothing. The raw data is in the repository, and you can rerun it yourself.
| Cause | Sites | Nature |
|---|---|---|
| Blocked by name in robots.txt | 20 | Editorial decision — they chose not to be cited |
| Body only exists after JS runs | 41 | Almost certainly unintentional |
| Errors served to crawlers | 12 | 200 to a browser, 403 to a crawler — invisible from inside |
Median 55, range 11 to 96. The three groups add up to 73 sites, 23% of those measured. With earlier versions of the tool, that share held at 24–25% across four samples, each larger than the last; 1.5.0 corrected the gate readings (a site that blocks only training crawlers, serves only a bot challenge or leaves a probe unanswered by chance no longer counts), so the two are not directly comparable.
One more finding for companies going overseas: sites serving the Chinese market have a median of 36, the rest 58 — a 22-point gap. The 95% confidence interval for the gap is 16 to 30 points. Broken down, the biggest differences are whether headings match the questions people ask and whether pages have answer passages that can be quoted whole. Both are heuristic checks and the tool may read Chinese text low, so treat the gap as a direction, not a precise figure.
Five bands: a stage, not a verdict
External benchmarks show most commercial websites landing between 30 and 55. A score in the forties is normal, not an alarm — it means the site has not yet been built for AI retrieval, not that it is badly made.
| Band | Score | Meaning |
|---|---|---|
| Leading | 83–100 | Advantage established; focus shifts to maintaining and extending it |
| Solid foundation | 66–82 | Foundations complete; gaps concentrate in content depth and brand assets |
| Growing | 51–65 | The main items are in place; what is missing is system and consistency |
| Getting started | 31–50 | Clear gaps in the basics, most of which can be closed in a few person-days |
| Not started | 0–30 | Nothing built for AI retrieval yet; the most room to improve |
Why this score can be trusted
The first thing to doubt about a measuring tool is whether it measures accurately. So everything below is in the repository, open to inspection.
- The thresholds were not made up. The calibration record explains how each band boundary was set, aligned with four public benchmarks, and includes one public admission — our pre-release prediction of the score distribution was wrong, the measurement overturned it, and both numbers are kept in the record.
- Reproducibility was measured. On 2026-10-12 the current version, 1.8.0, ran the whole leaderboard three times on the same day from a US data centre and compared it site by site: of 317 sites, 99% land within ±5 and 81% score identically (an older build measured in September gave 96% and 45%). So read any single site's score as ±5; the median is stable. What still moves is mostly the knowledge-graph lookup, and the gate checks of sites whose bot protection lets crawlers in on one run and not the next. Full data
- Whether the score predicts citation: registered first, tested second, reported as it came out. Under the plan registered in advance with releases 1.8.1 and 1.8.2, the test’s first wave (2026-10-12 to 14; 16 categories, 83 websites, 1,280 answers from one AI engine with web search) detected no association between the score and being cited (mean rank correlation T = 0.07, p = 0.51); the design could detect a T at least as large as 0.29, and not detected is not the same as none. Results, deviations and limits
- The bugs we caught ourselves are written down too. For example, 307/308 redirects were not followed on Python below 3.11, so a site's score depended on whose Python was running; and an English-first request header made some Chinese sites hand back their international edition. The second cannot be solved by changing headers, so the approach is record, do not hide: the result states which domain was actually measured.
- Our own leaderboard page is measured with the same rubric. Currently 89, band Leading. The score and the gaps are public — including the items still missing.
You found problems. Now what?
The rubric answers one question: can the engine cite you. Whether it will depends on competition and query intent, which no off-site audit can observe — so we promise neither rankings nor citation volume. The repository also deliberately gives no fix recommendations: the scoring is open; the fixing is our job.
- Free AIV snapshot. We run it, then do the part the rubric cannot: which gaps are real and which you can ignore, which stage to fix first, whether it is worth fixing. The score itself you can reproduce by running it yourself — that is what open source is for.
- AEO diagnostic · from US$1,190. AIV baseline report + gap to overseas competitors + 30-day action list. The report is proof of capability in itself — take it and fix things yourself if you prefer.
- Ongoing work across the whole chain + AIV dashboard. Month-over-month comparison, one score as the common language. The boundaries are in plain sight: no managed store operations, no revenue share, no promise to replace staff.
FAQ
Is the geo-score score accurate?
It depends which kind of accurate you mean. Scoring the same site again: in a same-day retest on 2026-10-12, 99% of sites moved by no more than 5 points. Whether others can recompute it: the 21 rules, the weights and the evidence behind them are open source, so the same pages give the same score whoever runs it. Whether it matches a human reading: under the same rules, 80% of 84 check pairs landed in the same tier, though only 5 sites were compared, so the sample is still small.
Whether it predicts citationThe first wave of the test registered in advance detected no association (T = 0.07, p = 0.51, answers from one AI engine only); the design could detect a T at least as large as 0.29, and not detected is not the same as none. Results and deviations
Is this the same thing as SEO?
Not the same question. Classic SEO asks where you rank; answer engines do not rank — they retrieve passages, assemble an answer and attribute sources.
So the conditions for being cited have changed: the body text has to be in the HTML, the opening passage has to stand on its own, figures need a source, and the author has to be verifiable. SEO tools barely test any of this, because in ranking logic none of it matters.
Conclusion A site that does SEO well does not necessarily score high on AIV, and the reverse also holds. The leaderboard has plenty of both.
Does a low score mean my website is bad?
Usually not. The leaderboard median is only 55, and scores in the forties are normal. A low score usually means the site has never been built for AI retrieval, not that it is badly made — and the fixes for those two are completely different.
Sites capped at 40 by a gate especially need to see why: if the body only exists after JavaScript runs, your content is fine, the engine just cannot read it; if robots.txt blocks by name, that may have been your own decision.
Why does the repository give no fix recommendations?
Deliberately. What is open is the measurement — the rubric, the checks, the criteria, the raw data — so the score can be verified, reproduced and challenged.
How to fix, what to fix first, how many person-days, who does it: that is what we deliver. Keeping the two apart is what lets the rubric be used as a neutral standard by others, including our competitors.
Can I reproduce the leaderboard scores myself?
Yes — that is the design goal. The rubric is machine-readable and every tier states how many of 8 sampled pages pass, so two people measuring the same site get the same arithmetic. The raw data, the scoring script and the page generator are all in the repository.
Note A rerun drifts by ±5 naturally (sampled pages change, bot protection changes). When comparing two sites, do not treat a gap under 5 points as a conclusion.
My site is not on the leaderboard. Can it be added?
Yes. The repository has a dedicated submission entry that asks you to run the score yourself first and paste the result line. We are especially short of sites in thinly covered sectors and languages — non-English sites, regulated industries, platforms, media.
Reminder Scores are public, including low ones. That is stated in the submission template, and you may nominate sites that are not your own — every check runs only against public URLs.
The rubric is open source — why ask you for a free snapshot?
Because the rubric produces numbers, not judgment. The score you get from running it yourself is the same one we get — that is the whole point of open-sourcing it: every point we give you can be checked. The snapshot adds three things the rubric cannot do. One, reading the result: a rerun drifts by ±5 naturally, and gate checks flip with a site's bot-blocking policy, so someone has to tell real gaps from noise. Two, putting it back into your business: which of the nine stages to fix first — the rubric has no idea what you sell. Three, saying whether a fix is worth it and how much work it takes — the scoring is open, the fixing is our job. If you can run a command, run it. If you cannot, or you ran it and do not know what to do next, ask us. No charge.