The on-page ceiling: GEO is mostly off your site

This blog scores 93 on technical foundations and 86 on structured data but only 59 overall — because the project name collides with a famous one, and entity authority is earned off-site, not in your own markup.

After the schema, the citable writing, and the crawler plumbing were all done and verified live, this site re-ran its GEO audit. The most useful number the effort produced is the one that refuses to go up.

A 93 and an 86 that still net 59

The on-page categories are nearly maxed. Technical foundations scored 93, structured data 86 — both confirmed serving in production. And the composite landed at 59. The gap isn’t a bug to fix in the markup; it’s the shape of GEO. Two categories you can’t edit in your own repo dominate the rest:

CategoryScore
Technical foundations93
Structured data86
Content / E-E-A-T73
AI visibility55
Brand authority14

Brand authority at 14 is the whole story. The sameAs anchors are live, the repository is public and linked from every post — but it isn’t indexed yet, and there are no third-party mentions. On-page work qualifies you to be cited; it can’t make you cited.

The finding the on-page work couldn’t see: a name collision

Searching risp Lisp Rust doesn’t surface this project. It surfaces Stepan Parunashvili’s “Risp (in (Rust) (Lisp))” from 2019 — multiple Hacker News front pages, indexed for years. An AI asked about “risp” today answers about that one. No amount of perfect schema or citable prose outranks an entity the model already knows. This reframes the top priority from “get mentions” to “disambiguate first, then get mentions.”

The remaining points aren’t code

The path from 59 to “good” runs entirely off the site, in order:

  1. Disambiguate — lead every title and share with unique long-tail framing (“zero-dependency three-engine Lisp in Rust, beats CPython 3.14”) that the 2019 project can’t claim.
  2. Seed mentions that each link back to the canonical repo, so the entity graph resolves to this risp — not the other one.
  3. A Wikidata item, reconciled against the GitHub and LinkedIn sameAs already in the schema.

The markup is the easy half — you can finish it in a weekend, and this site did. Authority is earned off your own domain, it takes longer, and no <script type="application/ld+json"> shortcuts it.

Frequently asked questions

Why is my GEO score low even with strong on-page SEO?
On-page work has a ceiling. This site scores 93 on technical foundations and 86 on structured data but only 59 overall, because the largest remaining factor is off-site entity authority — third-party mentions, an indexed repository, and a knowledge-graph entry — none of which live in your own markup.
What is an entity name collision in SEO?
A name collision is when your project or brand name already resolves to a different, better-known entity. Here, 'risp' surfaces Stepan Parunashvili's 2019 'Risp (in (Rust) (Lisp))' instead of this project, so an AI asked about 'risp' answers about the older one. The fix is to disambiguate with unique long-tail framing before chasing mentions.
How do you build off-site authority for AI search?
Disambiguate the name first, then earn mentions that tie back to your canonical entity, then reconcile a Wikidata item against your verified sameAs profiles. Order matters: seeding mentions of an ambiguous name reinforces the entity you collide with rather than your own.

← All posts