GEO-015 · An absolute canonical resolves to an indexable URL on the declared origin

A canonical that is relative, points off-origin, or resolves to an error or noindex page makes the preferred URL ambiguous.

Evidence class
E2
Weight
2
Subject
each route group
Scope
URL/repo
Default severity
medium
Lifecycle
stable
Platforms
Any web stack

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
canonical_presentbothexactly one absolute canonical URL
declared_originboththe canonical is on site.origin
target_indexableurlthe canonical target answers 200 and is not noindex

Preconditions

  • site.origin is declared in geo.config.json; GEO never infers it

Remediation

Emit one absolute canonical per page on your declared origin, pointing at a 200, indexable URL.

Fix class: guarded

  • G2 Add a canonical to a static Next.js route — guarded, requires V4

Known false positives

  • Deliberate cross-domain canonicals for syndicated content.

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-015
npx geopilot scan . --rule GEO-015