En 301-omdirigering säger att en sida har flyttat för gott; en 302 säger att flytten är tillfällig och att den gamla adressen kommer tillbaka. Sökmotorerna agerar på skillnaden: efter en 301 indexerar de den nya adressen i stället för den gamla, efter en 302 behåller de oftast den gamla. Använd 301 (eller 308) för allt som är permanent, som en sida som bytt namn, en ny domän eller övergången till HTTPS, och 302 (eller 307) bara när den ursprungliga adressen verkligen kommer tillbaka. Håll varje omdirigering till ett enda steg och kontrollera den med ett verktyg som visar varje steg.
Statuskoderna för omdirigering
En omdirigering är ett svar i 3xx-intervallet med en Location-header som anger den nya adressen. Fem koder spelar roll i praktiken:
KodBetydelseBehåller metodenAnvänd den för301 Moved PermanentlyFlyttad för gottInte garanterat: webbläsare gör om en POST till en GETSidor som bytt namn, nya domäner, HTTP till HTTPS302 FoundTillfälligt någon annanstansInte garanterat: webbläsare gör om en POST till en GETKortvariga flyttar, skicka besökare till en inloggningssida303 See OtherHämta resultatet från en annan adressNej, alltid en GETEfter att ett formulär skickats, så att en omladdning inte skickar det två gånger307 Temporary RedirectTillfälligt någon annanstansJa, metod och bodyTillfälliga flyttar av API-endpoints och formulär308 Permanent RedirectFlyttad för gottJa, metod och bodyPermanenta flyttar av API-endpoints och formulär
För vanliga sidor, som webbläsare hämtar med GET, beter sig 301 och 308 likadant, och detsamma gäller 302 och 307. Skillnaden märks när en klient skickar en POST: efter en 301 eller 302 upprepar de flesta klienter den som en GET utan body, medan 307 och 308 får dem att skicka samma förfrågan igen. Därför bör API:er som flyttar en endpoint använda 308 eller 307. Hela listan med koder finns i referensen för HTTP-statuskoder.
Vad omdirigeringar gör med SEO
Googles dokumentation om omdirigeringar behandlar 301 och 308 som permanenta och 302, 303 och 307 som tillfälliga. En permanent omdirigering är en stark signal om att målet ska visas i sökresultaten i stället för den gamla adressen. En tillfällig är en svag signal, så den gamla adressen ligger oftast kvar i indexet.
Det ger tre vanliga misstag:
En 302 för en permanent flytt. Många ramverk och plugins omdirigerar med 302 som standard. Kontrollera efter en sajtflytt att omdirigeringarna verkligen svarar 301 eller 308.
Allt omdirigeras till startsidan. När en gammal sida saknar motsvarighet kan Google behandla en omdirigering till startsidan som en soft 404. Skicka varje gammal sida till den närmaste motsvarigheten, eller låt den svara 404 eller 410.
Gamla länkar som pekar på omdirigeringar. En omdirigering är ett skyddsnät, inte ett mål. Uppdatera interna länkar, canonical-taggar och sitemapen till den slutliga adressen, så att varken besökare eller crawlers får betala för det extra steget.
Omdirigeringar på serversidan ger den tydligaste signalen. Meta refresh-taggar och JavaScript-omdirigeringar fungerar för besökare, men sökmotorer ser dem först när sidan har laddats, och andra klienter kanske inte ser dem alls.
Vilken ska du använda?
En sida har bytt namn eller slagits ihop med en annan: 301.
Sajten har flyttat till en ny domän, till HTTPS eller mellan www och domänen utan www: 301 från varje gammal variant direkt till den slutliga adressen.
En sida ligger tillfälligt någon annanstans, för en kampanj eller medan den byggs om: 302.
En besökare måste logga in först: 302 till inloggningssidan och sedan tillbaka.
Ett formulär har skickats: 303 till resultatsidan.
En API-endpoint har flyttat: 308 om det är för gott, 307 om det är tillfälligt, så att klienterna behåller metod och body.
Sajten är nere för underhåll: ingen omdirigering. Svara 503 Service Unavailable på den ursprungliga adressen, så att sökmotorerna kommer tillbaka senare i stället för att indexera en underhållssida.
Webbläsare minns permanenta omdirigeringar
Webbläsare cachar 301- och 308-svar, ofta länge, och följer dem utan att fråga servern igen. En felaktig permanent omdirigering fortsätter därför att skicka återkommande besökare fel även efter att du har rättat servern. När du lägger upp en ny regel, testa den först som 302 och byt till 301 när den stämmer. Har en felaktig 301 redan gått ut hjälper en Cache-Control: no-store-header på framtida omdirigeringar nya besökare, men kopiorna som webbläsarna redan har går ut i sin egen takt.
Omdirigeringskedjor och loopar
En kedja är en omdirigering till en adress som omdirigerar igen: http://example.com till https://example.com till https://www.example.com till https://www.example.com/en/. Varje steg är ytterligare en tur och retur innan sidan börjar laddas, och Google följer högst 10 steg. Kedjor växer under år av sajtflyttar, där varje flytt lägger sin regel ovanpå den förra. Lös dem genom att skicka varje gammal variant direkt till den slutliga adressen i ett enda steg.
En loop är en kedja som aldrig tar slut: två regler skickar besökare fram och tillbaka tills webbläsaren ger upp med ”för många omdirigeringar”. De vanliga orsakerna:
HTTP och HTTPS. Ett CDN pratar med din server över HTTP, medan servern omdirigerar varje HTTP-förfrågan till HTTPS. Bakom Cloudflare är det inställningen Flexible SSL; Full (strict) löser det.
www och domänen utan www. Webbservern lägger till www och applikationen tar bort det, eller tvärtom. I WordPress, kontrollera att WordPress-adress och Webbplatsadress stämmer med serverns regel.
Avslutande snedstreck och språkregler. En regel lägger till ett snedstreck eller ett språkprefix, en annan tar bort det.
Så kontrollerar du en omdirigering
I en terminal visar curl varje steg med statuskod och Location-header:
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
Två steg: den andra regeln borde ha varit den första. I en webbläsare öppnar du utvecklarverktygen, kryssar i Preserve log på fliken Network och laddar den gamla adressen; varje omdirigering får en egen rad. Tänk på att webbläsaren kan svara på en 301 från sin cache, så ett privat fönster ger en renare bild.
Eller använd vår kostnadsfria omdirigeringskontroll: ange en URL och se varje steg med statuskod, var kedjan slutar och om den loopar, blir för lång eller använder en tillfällig omdirigering där du troligen menade en permanent. Den följer upp till 5 steg, kontrollerade live från Stockholm.
Så sätter du upp en 301
De flesta webbhotell och CDN:er har en inställning för omdirigeringar i sin panel. I serverkonfigurationen:
# 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
Kontrollera sedan den gamla adressen, dess HTTP- och www-varianter och en adress med en query string, och se till att var och en når den slutliga sidan i ett enda steg.
Övervaka omdirigeringar med Uptimecheck
En HTTP(S)-monitor i Uptimechecks upptidsövervakning följer som standard upp till 10 omdirigeringar och bedömer sidan i slutet, som räknas som uppe när den svarar med en status från 200 till 399. En loop, eller en kedja som är längre än så, rapporteras som nere med ”Too many redirects”, och incidenten anger när kedjan studsar mellan HTTP och HTTPS eller mellan www och domänen utan www. Kontrollerna körs så ofta som varje minut från Stockholm, London och New York, och en andra kontroll bekräftar ett fel innan du får ett larm.
Vill du bevaka själva omdirigeringen, till exempel efter en domänflytt, stänger du av Follow redirects så att monitorn bedömer omdirigeringens egen statuskod, sätter Expected status codes till 301 och lägger till en header-kontroll att Location är lika med den nya adressen. Om någon senare ändrar omdirigeringen till en 302 eller pekar den någon annanstans får du veta det. Läs hur du lägger till din första monitor och guiden till HTTP-statuskoder i övervakning.
Få veta när en flytt går sönder. Prova Uptimecheck gratis i 14 dagar, inget kreditkort krävs.