Repository navigation
Scoring is unchanged: the two CLI files differ from 1.8.2 only in __version__, so rubric v1.1, every check, tier
and weight, and the leaderboard (measured with 1.5.0) are as they were. This release adds round 0's results and
documentation.
Added
- Round 0 of the preregistered study: wave 0's results. Collected 2026-10-12 to 14 and analysed with the code
fixed before collection: no association was detected between readiness and being cited (P1: T = 0.07, 95% interval
−0.19 to 0.34, p = 0.51, 14 categories); the design could detect a T at least as large as 0.29. S1, S2 and S4 were not
significant after Holm's correction, and S3 was not estimable. Gemini's free tier allowed 20 grounded requests a day,
not the roughly 500 the amendment assumed, so every Gemini run stopped and the analyses rest on one engine (1,280 answers),
below the plan's minimum of two.benchmark/prereg/round0/now holds the data (33 run files, both readiness runs, the
collection log),results-wave0.jsonandRESULTS-wave0.md(+ zh) with every deviation and its reason; the plan is
not edited, and VALIDITY.md (generated by validity.py from the results file) and the READMEs link the results. - The README answers "how accurate is it?" in one table: the 1.8.0 retest, recomputation, agreement with a person reading the rubric, weight sensitivity, and the preregistered test of whether higher-scoring sites are cited more often, each linked to its record (README.zh-CN.md too).
- Five candidate diagnostics, reported and never scored, are written down before any code (rubric/open-questions.md
- zh, questions 12 to 16): canonical (missing, all pointing at the homepage, or keeping
utm_source=chatgpt.com), soft
404, a homepage that redirects by language, the same plan priced differently on two pages, and the homepage's HTML
weight. Each states its basis, its false-positive risk, its fixtures and how to check it by hand. Rubric v1.1 and every
score are unchanged; implementing one is a normal release, outside the score.
- zh, questions 12 to 16): canonical (missing, all pointing at the homepage, or keeping
- Two public examples: a robots.txt that lets the ten retrieval crawlers in, and an Organization and WebSite
JSON-LD object (guide/public-examples.md+ zh). They are public knowledge (vendor crawler names, schema.org
vocabulary), the one exception to "remediation is private"; no other fix template is published.
scripts/test_public_examples.pyreads both with the CLI's own code (g.robots' top tier; the fields
p1.organization reads), and validate.py rule 2 allows one JSON code block on those two pages and nowhere else. - Two guides for readers (English and Chinese, linked from the READMEs):
guide/chatgpt-access.md, how to check
whether ChatGPT can read a site, by hand first (robots.txt, requests asOAI-SearchBot,ChatGPT-Userand a
browser, text in the server HTML, the layer in front of the site) and then with geo-score; and
guide/vs-ai-seo-skills.md, how a published rubric with code differs from a general AI SEO skill, naming no other
project.scripts/test_public_examples.pyholds the guide's user-agent strings to the ones the CLI sends. - The READMEs show how to add an optional "Scored with geo-score" badge to your own README with
--badge, linked
to this repository or the leaderboard, and say plainly that a badge or a link back never moves a score and never
decides whether or where a site appears on the leaderboard.
Changed
- The READMEs open with what geo-score is and who makes it: an open-source AI visibility (GEO) scorer for
websites, by Jianrun Tech, formerly geo-watch (geo-watch merged into it in 1.2.0). CITATION.cff carries the same
abstract and the old name. pyproject.toml's description, the package's summary on PyPI, says so too; PyPI shows the
summary of the version it serves, so it changes there with the next release.
Removed
- Gemini's grounded answers are out of round 0's published run files. The Gemini API terms for Grounding with
Google Search do not allow storing, republishing or analysing grounded results, so
benchmark/prereg/round0/redact_gemini.pyremoved the answer text, links, search queries and everything computed
from them from Gemini's 70 answers, keeping each request's question, status, usage and timing. None of those answers
entered the analysis (every Gemini run stopped on the free tier's quota), so the results are unchanged; both results
pages say what was removed and why.
Verify downloads: shasum -a 256 -c SHA256SUMS.
中文更新日志:https://github.com/jianruntech/geo-score/blob/v1.8.3/CHANGELOG.zh-CN.md