Problem
Duplicate-content variants (/ vs /home, /judges/{id} vs /judges/{id}/profile, .html variants) have no consolidation signals, splitting whatever ranking equity the pages earn.
Findings
- Only the four 306-byte auth redirect stubs carry
rel="canonical"(pointing to/login); no content page has one. - The
/judges/{id}→/judges/{id}/profileredirect happens only in client JS (ProfileHeader.stx:48-49,navigate()in onMount) — crawlers see two URLs for the same content.
Acceptance criteria
- Every indexable page emits an absolute
<link rel="canonical"> /judges/{id}consolidates to/judges/{id}/profilevia build-time redirect or canonical
Split out from the SEO bundle of the 2026-06-10 production-readiness audit. Related: stacksjs/stx#1756 (static head injection).