301-uudelleenohjaus kertoo, että sivu on siirtynyt pysyvästi; 302 kertoo, että siirto on väliaikainen ja vanha osoite palaa vielä käyttöön. Hakukoneet toimivat eron mukaan: 301:n jälkeen ne indeksoivat uuden osoitteen vanhan tilalle, 302:n jälkeen ne yleensä pitävät vanhan. Käytä 301:tä (tai 308:aa) kaikkeen pysyvään, kuten uudelleennimettyyn sivuun, uuteen verkkotunnukseen tai siirtymiseen HTTPS:ään, ja 302:ta (tai 307:ää) vain silloin, kun alkuperäinen osoite todella palaa. Pidä jokainen uudelleenohjaus yhden hypyn mittaisena ja tarkista se työkalulla, joka näyttää jokaisen vaiheen.
Uudelleenohjausten tilakoodit
Uudelleenohjaus on 3xx-alueen vastaus, jonka Location-otsake kertoo uuden osoitteen. Käytännössä merkitystä on viidellä koodilla:
KoodiMerkitysSäilyttää metodinKäyttökohde301 Moved PermanentlySiirretty pysyvästiEi taattu: selaimet muuttavat POSTin GETiksiUudelleennimetyt sivut, uudet verkkotunnukset, HTTP:stä HTTPS:ään302 FoundVäliaikaisesti muuallaEi taattu: selaimet muuttavat POSTin GETiksiLyhytaikaiset siirrot, kävijän ohjaaminen kirjautumissivulle303 See OtherHae tulos toisesta osoitteestaEi, aina GETLomakkeen lähettämisen jälkeen, jottei uudelleenlataus lähetä sitä kahdesti307 Temporary RedirectVäliaikaisesti muuallaKyllä, metodi ja runkoAPI-päätepisteiden ja lomakkeiden väliaikaiset siirrot308 Permanent RedirectSiirretty pysyvästiKyllä, metodi ja runkoAPI-päätepisteiden ja lomakkeiden pysyvät siirrot
Tavallisilla sivuilla, jotka selaimet hakevat GET-pyynnöllä, 301 ja 308 toimivat samoin, kuten myös 302 ja 307. Ero näkyy, kun asiakasohjelma lähettää POST-pyynnön: 301:n tai 302:n jälkeen useimmat asiakasohjelmat toistavat sen GET-pyyntönä ilman runkoa, kun taas 307 ja 308 saavat ne lähettämään saman pyynnön uudelleen. Siksi päätepisteen siirtävän API:n kannattaa käyttää 308:aa tai 307:ää. Kaikki koodit löytyvät HTTP-tilakoodien hakuteoksesta.
Mitä uudelleenohjaukset tekevät hakukoneoptimoinnille
Googlen uudelleenohjauksia koskeva dokumentaatio pitää 301:tä ja 308:aa pysyvinä ja 302:ta, 303:a ja 307:ää väliaikaisina. Pysyvä uudelleenohjaus on vahva signaali siitä, että hakutuloksissa pitäisi näyttää kohde vanhan osoitteen sijaan. Väliaikainen on heikko signaali, joten vanha osoite pysyy yleensä indeksissä.
Tästä syntyy kolme yleistä virhettä:
302 pysyvässä siirrossa. Monet sovelluskehykset ja lisäosat ohjaavat oletuksena 302:lla. Tarkista sivustosiirron jälkeen, että uudelleenohjaukset todella vastaavat 301 tai 308.
Kaiken ohjaaminen etusivulle. Kun vanhalla sivulla ei ole vastinetta, Google voi tulkita etusivulle ohjaamisen soft 404 -virheeksi. Ohjaa jokainen vanha sivu lähimpään vastineeseensa tai anna sen vastata 404 tai 410.
Vanhat linkit osoittavat uudelleenohjauksiin. Uudelleenohjaus on turvaverkko, ei määränpää. Päivitä sisäiset linkit, canonical-tagit ja sivustokartta lopulliseen osoitteeseen, jotta kävijät ja hakurobotit eivät maksa ylimääräisestä hypystä.
Palvelinpuolen uudelleenohjaukset ovat selkein signaali. Meta refresh -tagit ja JavaScript-uudelleenohjaukset toimivat kävijöille, mutta hakukoneet näkevät ne vasta sivun ladattuaan, eivätkä muut asiakasohjelmat välttämättä näe niitä lainkaan.
Kumpaa käyttää
Sivu nimettiin uudelleen tai yhdistettiin toiseen: 301.
Sivusto siirtyi uuteen verkkotunnukseen, HTTPS:ään tai www-osoitteen ja paljaan verkkotunnuksen välillä: 301 jokaisesta vanhasta muunnelmasta suoraan lopulliseen osoitteeseen.
Sivu on väliaikaisesti muualla, esimerkiksi kampanjan ajan tai uudistuksen aikana: 302.
Kävijän täytyy ensin kirjautua: 302 kirjautumissivulle ja sieltä takaisin.
Lomake lähetettiin: 303 tulossivulle.
API-päätepiste siirtyi: 308, jos pysyvästi, 307, jos toistaiseksi, jotta asiakasohjelmat säilyttävät metodin ja rungon.
Sivusto on huoltokatkolla: ei uudelleenohjausta. Vastaa alkuperäisessä osoitteessa 503 Service Unavailable, jotta hakukoneet palaavat myöhemmin eivätkä indeksoi huoltosivua.
Selaimet muistavat pysyvät uudelleenohjaukset
Selaimet tallentavat 301- ja 308-vastaukset välimuistiin, usein pitkäksi aikaa, ja seuraavat niitä kysymättä palvelimelta uudelleen. Virheellinen pysyvä uudelleenohjaus lähettää siksi palaavat kävijät väärään paikkaan vielä senkin jälkeen, kun olet korjannut palvelimen. Kun otat käyttöön uuden säännön, testaa se ensin 302:na ja vaihda se 301:ksi, kun se toimii oikein. Jos virheellinen 301 on jo ehtinyt maailmalle, tulevien uudelleenohjausten Cache-Control: no-store -otsake auttaa uusia kävijöitä, mutta selainten jo tallentamat kopiot vanhenevat omaan tahtiinsa.
Uudelleenohjausketjut ja -silmukat
Ketju on uudelleenohjaus osoitteeseen, joka ohjaa taas eteenpäin: http://example.com osoitteeseen https://example.com, siitä osoitteeseen https://www.example.com ja edelleen osoitteeseen https://www.example.com/en/. Jokainen hyppy on yksi edestakainen matka lisää ennen kuin sivu alkaa latautua, ja Google seuraa enintään 10 hyppyä. Ketjut kasvavat vuosien sivustosiirtojen myötä, kun jokainen lisää oman sääntönsä edellisen päälle. Korjaa ne ohjaamalla jokainen vanha muunnelma suoraan lopulliseen osoitteeseen yhdellä hypyllä.
Silmukka on ketju, joka ei lopu koskaan: kaksi sääntöä pompottelee kävijää edestakaisin, kunnes selain luovuttaa ja ilmoittaa liian monesta uudelleenohjauksesta (“too many redirects”). Tavalliset syyt:
HTTP ja HTTPS. CDN puhuu palvelimellesi HTTP:llä, kun taas palvelin ohjaa jokaisen HTTP-pyynnön HTTPS:ään. Cloudflaren takana tämä on Flexible SSL -asetus; Full (strict) korjaa sen.
www ja paljas verkkotunnus. Verkkopalvelin lisää www:n ja sovellus poistaa sen, tai päinvastoin. Tarkista WordPressissä, että WordPress-osoite ja sivuston osoite vastaavat palvelimen sääntöä.
Loppukauttaviivat ja kielisäännöt. Yksi sääntö lisää kauttaviivan tai kieliprefiksin, toinen poistaa sen.
Näin tarkistat uudelleenohjauksen
Päätteessä curl näyttää jokaisen hypyn tilakoodeineen ja Location-otsakkeineen:
curl -sIL http://example.com/old-page | grep -iE ”^(HTTP|location)”
HTTP/1.1 301 Moved Permanently
Location: https://example.com/old-page
HTTP/2 301
location: https://example.com/new-page
HTTP/2 200
Kaksi hyppyä: toisen säännön olisi pitänyt olla ensimmäinen. Selaimessa avaa kehittäjätyökalut, valitse Network-välilehdeltä Preserve log ja lataa vanha osoite; jokainen uudelleenohjaus näkyy omana rivinään. Muista, että selain voi vastata 301:een välimuististaan, joten yksityinen ikkuna antaa selkeämmän kuvan.
Tai käytä ilmaista uudelleenohjausten tarkistustyökaluamme: syötä URL, niin näet jokaisen hypyn tilakoodeineen, mihin ketju päättyy ja onko kyseessä silmukka, liian pitkä ketju tai väliaikainen uudelleenohjaus siellä, missä tarkoitit luultavasti pysyvää. Työkalu seuraa enintään 5 hyppyä, ja tarkistus tehdään reaaliajassa Tukholmasta.
301-uudelleenohjauksen määrittäminen
Useimpien palveluntarjoajien ja CDN-palvelujen hallintapaneelista löytyy uudelleenohjausasetus. Palvelimen asetuksissa:
# nginx: one page
location = /old-page { return 301 /new-page; }
# nginx: a whole domain, keeping the path
server {
server_name old-example.com www.old-example.com;
return 301 https://example.com$request_uri;
}
# Apache (.htaccess): one page
Redirect 301 /old-page /new-page
Tarkista sen jälkeen vanha osoite, sen HTTP- ja www-muunnelmat sekä kyselymerkkijonon sisältävä osoite ja varmista, että jokainen päätyy lopulliselle sivulle yhdellä hypyllä.
Uudelleenohjausten valvonta Uptimecheckillä
Uptimecheckin käytettävyyden valvonnan HTTP(S)-valvonta seuraa oletuksena enintään 10 uudelleenohjausta ja arvioi lopussa olevan sivun, joka katsotaan toimivaksi, kun se vastaa tilakoodilla väliltä 200–399. Silmukka tai sitä pidempi ketju raportoidaan katkoksi ilmoituksella “Too many redirects”, ja häiriö kertoo, jos ketju pomppii HTTP:n ja HTTPS:n tai www-osoitteen ja paljaan verkkotunnuksen välillä. Tarkistukset tehdään jopa minuutin välein Tukholmasta, Lontoosta ja New Yorkista, ja toinen tarkistus vahvistaa vian ennen hälytystä.
Jos haluat valvoa itse uudelleenohjausta esimerkiksi verkkotunnuksen vaihdon jälkeen, poista Follow redirects käytöstä, jotta valvonta arvioi uudelleenohjauksen oman tilakoodin, aseta Expected status codes -arvoksi 301 ja lisää otsaketarkistus, jossa Location on uusi osoite. Jos joku myöhemmin muuttaa uudelleenohjauksen 302:ksi tai osoittaa sen muualle, saat siitä tiedon. Katso ensimmäisen valvonnan lisääminen ja opas HTTP-tilakoodeihin valvonnassa.
Tiedä, kun siirto rikkoutuu. Kokeile Uptimecheckiä ilmaiseksi 14 päivää, luottokorttia ei tarvita.