WordPress sisältää oman canonical redirect -mekanisminsa, jonka tarkoitus on ohjata käyttäjät ja hakukoneet oikeaan URL-osoitteeseen. Tämä ei ole pelkkä SEO-ominaisuus, vaan osa ydintä, joka pyrkii varmistamaan, että jokaisella sisällöllä on yksi “oikea” osoite.
Canonical redirect estää tilanteet, joissa sama sisältö on saavutettavissa useasta URL:stä. Ilman tätä hakukoneet voisivat nähdä sivuston sekavana, ja analytiikka jakautuisi useisiin osoitteisiin.
Missä canonical redirect tapahtuu
Canonical-uudelleenohjaus tapahtuu WordPressin template_redirect-vaiheessa. Tässä vaiheessa:
-
query on jo ratkaistu
-
tiedetään, mikä sisältö pitäisi näyttää
-
mutta HTML:ää ei ole vielä lähetetty selaimelle
WordPress kutsuu funktiota:
redirect_canonical()
Tämä funktio:
-
analysoi nykyisen URL:n
-
vertaa sitä “oikeaan” URL:ään
-
tekee tarvittaessa 301- tai 302-uudelleenohjauksen
Mitä canonical-logiikka tarkistaa
Canonical redirect tarkistaa useita tilanteita, kuten:
-
väärä permalink-rakenne
-
ylimääräiset query-parametrit
-
väärä trailing slash
-
väärä post ID -URL
-
vanhat päivämäärä- tai arkisto-URL:t
Esimerkiksi:
/?p=123
voi ohjautua:
/artikkeli/esimerkki/
Tämä varmistaa, että hakukoneet indeksoivat vain oikean osoitteen.
Trailing slash -korjaukset
Jos sivusto käyttää:
/artikkeli/
mutta käyttäjä menee osoitteeseen:
/artikkeli
canonical redirect:
-
lisää puuttuvan kauttaviivan
-
ohjaa oikeaan URL:ään
Tämä estää kahden eri URL:n syntymisen samalle sisällölle.
Parametrien siivous
WordPress voi poistaa tarpeettomia parametreja, kuten:
/artikkeli/?replytocom=123
ja ohjata:
/artikkeli/
Tämä vähentää:
-
duplikaattisisältöä
-
turhia URL-variaatioita
Päivämäärä- ja arkisto-URL:t
Jos sivustolla ei ole käytössä tiettyjä arkistoja, canonical-logiikka voi:
-
ohjata väärän arkisto-URL:n oikeaan
-
poistaa virheelliset päivämääräparametrit
Esimerkiksi:
/2022/13/40/
voi ohjautua etusivulle tai oikeaan arkistoon.
Milloin canonical redirect aiheuttaa ongelmia
Canonical-logiikka on heuristinen. Se tekee arvauksia oikeasta URL:stä. Tämä voi johtaa ongelmiin.
1. Custom rewrite -säännöt
Jos lisäosa tai teema:
-
luo omia rewrite-sääntöjä
-
käyttää epätavallisia query-varia
canonical redirect voi:
-
ohjata väärään osoitteeseen
-
rikkoa custom-endpointin
2. REST API ja AJAX
Jos canonical redirect aktivoituu:
-
REST-endpointissa
-
AJAX-pyynnössä
se voi palauttaa:
-
301-uudelleenohjauksen JSONin sijaan
-
rikkinäisen API-vastauksen
3. Looppaavat uudelleenohjaukset
Jos:
-
palvelin tekee oman redirectin
-
WordPress tekee canonical-redirectin
-
proxy tai CDN muokkaa URL:ää
voi syntyä:
-
loputon redirect-loop
-
selaimen virheilmoitus
Canonical redirectin poistaminen tai muokkaaminen
Canonical-logiikkaa voi muokata hookien kautta.
Poista kokonaan:
remove_action('template_redirect', 'redirect_canonical');
Muokkaa suodatuksella:
add_filter('redirect_canonical', '__return_false');
Tämä on hyödyllistä:
-
API-ympäristöissä
-
headless WordPress -ratkaisuissa
-
custom-rewrite-sovelluksissa
Suorituskykyvaikutukset
Canonical redirect ei yleensä ole raskas operaatio, mutta se:
-
suoritetaan jokaisella pyynnöllä
-
analysoi URL:n rakennetta
-
tekee useita tarkistuksia
Suurella liikenteellä:
-
jokainen turha redirect lisää latenssia
-
lisää HTTP-pyyntöjä
-
kasvattaa kuormaa
Siksi canonical-logiikka kannattaa pitää yksinkertaisena.
Yhteenveto
WordPressin canonical redirect -mekanismi:
-
varmistaa yhden oikean URL:n sisällölle
-
estää duplikaattisisältöä
-
parantaa SEO-rakennetta
Se toimii template_redirect-vaiheessa ja perustuu redirect_canonical()-funktioon. Vaikka se on hyödyllinen oletuksena, se voi aiheuttaa ongelmia:
-
custom rewrite -säännöissä
-
API-ympäristöissä
-
proxy- ja CDN-arkkitehtuureissa
Canonical redirect on hyvä esimerkki WordPressin filosofiasta: järjestelmä yrittää olla avulias ja korjata URL:t automaattisesti. Mutta kuten monissa automaatioissa, se toimii täydellisesti, kun todellisuus on yksinkertainen, ja muuttuu arvaamattomaksi, kun arkkitehtuuri alkaa muistuttaa enemmän avaruusaluksen ohjauspaneelia kuin blogimoottoria.
