# seo/canonical-collisions

No two pages claim the same canonical URL. Reglen seo/canonical-collisions kører i site-scope med severity 'error' og indgår i teknisk seo-domænet sammen med 23 andre kontrakter i frameworket.

## Hvorfor canonical-collisions findes

When several pages declare the same canonical, all but one tell search engines "do not index me, index that other page instead" — usually a copy-paste or template bug that silently deindexes pages. Every indexable page should self-canonicalize.

## Sådan håndhæves canonical-collisions

Reglen canonical-collisions evalueres på hele sitets fakta-indeks på én gang, fordi kravet kun giver mening på tværs af sider — den enkelte side kan se perfekt ud, mens mønsteret er problemet. Fejler en side, får agenten en finding, hvor fix-instruktionen for canonical-collisions er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'error' betyder at et brud på canonical-collisions fejler hele verifikationen med exit-kode 1, så hverken CI eller en agent kan skibe sitet før fundet er rettet.

## Test og fixtures

Som alle kontrakter i frameworket har seo/canonical-collisions en mutant-test, der beviser at reglen fejler, når kravet brydes — en regel uden en fejlende test er ikke en regel. Golden-fixturet beviser omvendt, at en fuldt compliant side består canonical-collisions sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

## Relaterede regler

- [seo/clean-urls](https://pseo.mikkelkrogsholm.dk/regler/seo/clean-urls/)
- [seo/root-favicon](https://pseo.mikkelkrogsholm.dk/regler/seo/root-favicon/)
- [seo/canonical-target-health](https://pseo.mikkelkrogsholm.dk/regler/seo/canonical-target-health/)
