GEO-003 · Primary content is present in server HTML

Compares raw and rendered primary text. Content that only appears after JavaScript runs is at risk for crawlers that do not render.

Evidence class
E2
Weight
3
Subject
each route group
Scope
URL render; repo inferred
Default severity
medium
Lifecycle
stable
Platforms
Any web stack; needs a renderer

Sub-checks

A subject fails if any evaluated sub-check fails, and passes only when every applicable sub-check ran and passed. url sub-checks need a URL; both can also run from source.

Sub-checkScopeChecks that
server_text_ratiourlraw/rendered primary-text ratio is at least 0.5 when rendered text is 200+ characters

Preconditions

  • A renderer is available. Without one the rule is not_evaluated, never failed. This release ships no renderer.

Remediation

Render primary content on the server (a Server Component, SSR or static generation) and hydrate interactivity on top.

Fix class: contextual

Known false positives

  • Pages whose primary content is intentionally interactive.

Evidence

Platform policies and standards are cited as such; anything else is labelled guidance. These links were carried forward from the specification and should be rechecked before quoting them as current policy.

Run it

npx geopilot explain GEO-003
npx geopilot scan . --rule GEO-003