Guides 6 min. leestijd

301 vs 302 redirects: welke gebruik je en hoe controleer je ze?

Permanent of tijdelijk, 301 of 308, 302 of 307: wat elke redirect browsers en zoekmachines vertelt, hoe je ketens en loops voorkomt en hoe je een redirect controleert.

Een 301-redirect zegt dat een pagina definitief is verhuisd; een 302 zegt dat de verhuizing tijdelijk is en dat het oude adres terugkomt. Zoekmachines handelen naar dat verschil: na een 301 indexeren ze het nieuwe adres in plaats van het oude, na een 302 houden ze meestal het oude aan. Gebruik een 301 (of een 308) voor alles wat permanent is, zoals een hernoemde pagina, een nieuw domein of de overstap naar HTTPS, en een 302 (of een 307) alleen als het oorspronkelijke adres echt terugkomt. Houd elke redirect bij één stap en controleer hem met een tool die elke stap laat zien.

De statuscodes voor redirects

Een redirect is een antwoord in de 3xx-reeks met een Location-header die het nieuwe adres noemt. In de praktijk doen vijf codes ertoe:

CodeBetekenisBehoudt de methodeGebruik voor301 Moved PermanentlyDefinitief verhuisdNiet gegarandeerd: browsers maken van een POST een GETHernoemde pagina’s, nieuwe domeinen, HTTP naar HTTPS302 FoundTijdelijk ergens andersNiet gegarandeerd: browsers maken van een POST een GETKortstondige verhuizingen, bezoekers naar een inlogpagina sturen303 See OtherHaal het resultaat op bij een ander adresNee, altijd een GETNa het verzenden van een formulier, zodat herladen het niet nog eens verstuurt307 Temporary RedirectTijdelijk ergens andersJa, methode en bodyTijdelijke verhuizingen van API-endpoints en formulieren308 Permanent RedirectDefinitief verhuisdJa, methode en bodyPermanente verhuizingen van API-endpoints en formulieren

Voor gewone pagina’s, die browsers met GET ophalen, gedragen 301 en 308 zich hetzelfde, net als 302 en 307. Het verschil merk je pas als een client een POST stuurt: na een 301 of 302 herhalen de meeste clients die als GET zonder body, terwijl ze bij 307 en 308 precies hetzelfde verzoek opnieuw sturen. Daarom horen API’s die een endpoint verplaatsen 308 of 307 te gebruiken. De volledige lijst met codes vind je in het overzicht van HTTP-statuscodes.

Wat redirects doen met je SEO

De documentatie van Google over redirects behandelt 301 en 308 als permanent en 302, 303 en 307 als tijdelijk. Een permanente redirect is een sterk signaal dat het doel in de zoekresultaten moet verschijnen in plaats van het oude adres. Een tijdelijke redirect is een zwak signaal, dus het oude adres blijft meestal geïndexeerd.

Dat levert drie veelgemaakte fouten op:

Een 302 voor een permanente verhuizing. Veel frameworks en plug-ins sturen standaard door met een 302. Controleer na een sitemigratie of de redirects echt 301 of 308 antwoorden.

Alles doorsturen naar de homepage. Als een oude pagina geen tegenhanger heeft, kan Google een redirect naar de homepage zien als een soft 404. Stuur elke oude pagina naar de pagina die er het dichtst bij komt, of laat hem 404 of 410 antwoorden.

Oude links die naar redirects wijzen. Een redirect is een vangnet, geen bestemming. Werk interne links, canonical-tags en de sitemap bij naar het uiteindelijke adres, zodat bezoekers en crawlers niet voor die extra stap betalen.

Redirects aan de serverkant geven het duidelijkste signaal. Meta refresh-tags en JavaScript-redirects werken voor bezoekers, maar zoekmachines zien ze pas na het laden van de pagina, en andere clients zien ze misschien helemaal niet.

Welke gebruik je wanneer?

Een pagina is hernoemd of samengevoegd met een andere: 301.

De site is verhuisd naar een nieuw domein, naar HTTPS, of tussen www en het kale domein: 301 van elke oude variant rechtstreeks naar het uiteindelijke adres.

Een pagina staat tijdelijk ergens anders, voor een campagne of terwijl hij opnieuw wordt gebouwd: 302.

Een bezoeker moet eerst inloggen: 302 naar de inlogpagina, en daarna terug.

Er is een formulier verzonden: 303 naar de resultaatpagina.

Een API-endpoint is verplaatst: 308 als het definitief is, 307 als het tijdelijk is, zodat clients hun methode en body behouden.

De site is offline voor onderhoud: geen redirect. Antwoord met 503 Service Unavailable op het oorspronkelijke adres, zodat zoekmachines later terugkomen in plaats van een onderhoudspagina te indexeren.

Browsers onthouden permanente redirects

Browsers cachen 301- en 308-antwoorden, vaak voor lange tijd, en volgen ze zonder de server opnieuw te vragen. Een verkeerde permanente redirect blijft terugkerende bezoekers dus naar de verkeerde plek sturen, ook als je de server allang hebt gecorrigeerd. Test een nieuwe regel daarom eerst als 302 en zet hem pas om naar een 301 als hij klopt. Is er al een foute 301 de deur uit, dan helpt een Cache-Control: no-store-header op toekomstige redirects nieuwe bezoekers, maar de kopieën die browsers al hebben verlopen in hun eigen tempo.

Redirectketens en -loops

Een keten is een redirect naar een adres dat zelf weer doorstuurt: http://example.com naar https://example.com naar https://www.example.com naar https://www.example.com/en/. Elke stap is een extra round trip voordat de pagina begint te laden, en Google volgt maximaal 10 stappen. Ketens groeien in de loop van jaren van sitemigraties, waarbij elke migratie zijn regel boven op de vorige legt. Los ze op door elke oude variant in één stap rechtstreeks naar het uiteindelijke adres te sturen.

Een loop is een keten die nooit eindigt: twee regels sturen bezoekers heen en weer tot de browser het opgeeft met ‘too many redirects’. De gebruikelijke oorzaken:

HTTP en HTTPS. Een CDN praat via HTTP met je server, terwijl de server elk HTTP-verzoek doorstuurt naar HTTPS. Achter Cloudflare is dit de SSL-instelling Flexible; Full (strict) lost het op.

www en het kale domein. De webserver voegt www toe en de applicatie haalt het weer weg, of andersom. Controleer in WordPress of het WordPress-adres en het siteadres overeenkomen met de regel op de server.

Slashes aan het eind en taalregels. De ene regel voegt een slash of een taalprefix toe, een andere haalt hem weer weg.

Zo controleer je een redirect

In een terminal laat curl elke stap zien met de statuscode en de 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

Twee stappen: de tweede regel had de eerste moeten zijn. Open in een browser de ontwikkelaarstools, vink Preserve log aan op het tabblad Network en laad het oude adres; elke redirect krijgt een eigen rij. Houd er rekening mee dat de browser een 301 uit zijn cache kan beantwoorden, dus een privévenster geeft een zuiverder beeld.

Of gebruik onze gratis redirect checker: vul een URL in en je ziet elke stap met de statuscode, waar de keten eindigt en of hij in een loop raakt, te lang is of een tijdelijke redirect gebruikt waar je waarschijnlijk een permanente bedoelde. Hij volgt maximaal 5 stappen, live gecontroleerd vanuit Stockholm.

Een 301 instellen

De meeste hostingpartijen en CDN’s hebben een redirect-instelling in hun dashboard. In de serverconfiguratie:

# 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

Controleer daarna het oude adres, de HTTP- en www-varianten ervan en een adres met een querystring, en zorg dat elk daarvan in één stap op de uiteindelijke pagina uitkomt.

Redirects monitoren met Uptimecheck

Een HTTP(S)-monitor in Uptimecheck uptime monitoring volgt standaard maximaal 10 redirects en beoordeelt de pagina aan het eind; die telt als up als hij antwoordt met een status van 200 tot en met 399. Een loop, of een keten die langer is, wordt als down gemeld met ‘Too many redirects’, en het incident vermeldt het wanneer de keten heen en weer springt tussen HTTP en HTTPS of tussen www en het kale domein. Checks draaien zo vaak als elke minuut vanuit Stockholm, Londen en New York, en een tweede check bevestigt een fout voordat je een alert krijgt.

Wil je de redirect zelf in de gaten houden, bijvoorbeeld na een domeinverhuizing? Zet Follow redirects uit zodat de monitor de statuscode van de redirect zelf beoordeelt, stel Expected status codes in op 301 en voeg een headercheck toe die controleert of Location gelijk is aan het nieuwe adres. Verandert iemand de redirect later in een 302 of laat hij hem ergens anders heen wijzen, dan hoor je het. Lees hoe je je eerste monitor toevoegt en de gids over HTTP-statuscodes in monitoring.

Weet het meteen als een verhuizing misgaat. Probeer Uptimecheck 14 dagen gratis, geen creditcard nodig.

Vragen

Wat is het verschil tussen een 301- en een 302-redirect?

Een 301 zegt dat de pagina definitief is verhuisd, dus zoekmachines indexeren het nieuwe adres en browsers onthouden de redirect. Een 302 zegt dat de verhuizing tijdelijk is, dus het oude adres blijft geïndexeerd en browsers vragen het de volgende keer opnieuw.

Moet ik 308 gebruiken in plaats van 301?

Voor gewone pagina’s gedragen ze zich hetzelfde, en 301 is de veiligere keuze voor oudere clients. Gebruik 308 als clients POST- of PUT-verzoeken naar het oude adres kunnen sturen, want dan herhalen ze dezelfde methode en body.

Is een 302-redirect slecht voor SEO?

Niet als de verhuizing echt tijdelijk is. Gebruik je hem voor een permanente verhuizing, dan blijft het oude adres in de zoekresultaten staan in plaats van het nieuwe; maak er dan een 301 van.

Hoeveel redirects zijn te veel?

Streef naar één stap van elk oud adres naar de uiteindelijke pagina. Google volgt maximaal 10 stappen, en elke stap voegt een round trip toe voordat de pagina begint te laden.

Lees verder

Guides 5 min. leestijd

Uptimepercentage berekenen: formule en voorbeelden

De uptimeformule, uitgewerkte voorbeelden met incidenten en onderhoud, hoe je de uptime van meerdere onderdelen combineert en hoe uptime, beschikbaarheid en betrouwbaarheid verschillen.

Lezen

Guides 6 min. leestijd

Wat betekent 99,9% uptime? SLA-downtime uitgelegd

99,9% uptime staat 43 minuten en 49 seconden downtime toe in een gemiddelde maand. Wat elk niveau van negens per dag, maand en jaar toestaat, hoe SLA’s uptime meten, hoe service credits werken en hoe je een doel kiest.

Lezen

Downtime is verleden tijd.

Stel je eerste monitor in binnen een minuut, of kijk eerst rond in de live demo.

14 dagen gratis proberen · Daarna gratis met 5 monitors · Geen creditcard