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-check | Scope | Checks that |
|---|---|---|
canonical_present | both | exactly one absolute canonical URL |
declared_origin | both | the canonical is on site.origin |
target_indexable | url | the 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
G2Add 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.
- Google: consolidate duplicate URLs (platform-policy)
Run it
npx geopilot explain GEO-015
npx geopilot scan . --rule GEO-015