·9 min leestijd

301 vs 302 vs 307 vs 308: redirect-statuscodes uitgelegd

Wat elke HTTP-redirect-statuscode echt betekent, hoe permanente en tijdelijke redirects verschillen voor SEO en caching, en hoe je precies ziet welke code elke hop van een link teruggeeft.

T.LY — official URL shortener partner of Redirect Radar
T.LYOfficiële partner · Het alles-in-één platform voor URL-verkorting en QR-codes.
20% korting — eerste maand of jaarabonnementPak 20% korting

Wat een redirect-statuscode echt zegt

Elke redirect is een HTTP-response met een statuscode in de 3xx-reeks en een Location-header die naar de volgende URL wijst. De code is geen technisch detail — hij vertelt browsers, crawlers en caches hoe ze met de verhuizing moeten omgaan: of die permanent is, of hij gecachet mag worden en of de oorspronkelijke requestmethode en -body bij de volgende hop behouden moeten blijven.

Eén link kan meerdere van deze codes aan elkaar rijgen. Een korte URL kan antwoorden met een 301, het trackingdomein erachter met een 302 en de uiteindelijke site met een 307 voordat je een 200 bereikt. Die codes lezen is de snelste manier om te begrijpen wat een link echt doet.

De vier codes die je echt tegenkomt

301 — Moved Permanently

De resource heeft een nieuwe, definitieve URL. Browsers mogen een 301 agressief cachen — vaak voor de hele sessie of langer — en zoekmachines behandelen hem als een canonicalisatiesignaal: indexatie- en rankingsignalen verhuizen naar de doel-URL. Gebruik hem voor migraties, domeinwijzigingen en elke URL die je nooit meer terug wilt brengen.

302 — Found (tijdelijk)

De resource is voor nu ergens anders. Caches zijn voorzichtig met 302's en zoekmachines houden de oorspronkelijke URL geïndexeerd in plaats van het doel. Historisch had de 302 één eigenaardigheid: veel clients herschreven POST-requests naar GET bij de volgende hop. Precies die ambiguïteit is de reden dat 307 en 308 bestaan.

307 — Temporary Redirect

Zoals een 302, maar strikt: de methode en body moeten ongewijzigd worden herhaald bij de volgende hop. Een POST blijft een POST. Je ziet 307's vaak bij HSTS-upgrades (een interne 307 wanneer een site HTTPS afdwingt) en bij API's die writes tijdelijk omleiden.

308 — Permanent Redirect

De permanente tweeling van 307: cachebaar zoals een 301, maar met gegarandeerd behoud van methode en body. API's die endpoints permanent verplaatsen, kiezen liever 308, omdat clients een POST niet stilletjes in een GET kunnen veranderen.

CodeNaamPermanentMethode behoudenTypisch gebruik
301Moved PermanentlyJaPOST kan GET wordenSitemigraties, canonieke URL's
302FoundNeePOST kan GET wordenKorte links, A/B-tests, geo-routing
307Temporary RedirectNeeJa, gegarandeerdHSTS-upgrades, tijdelijke API-routering
308Permanent RedirectJaJa, gegarandeerdPermanente verhuizingen van API-endpoints

Welke code moet je gebruiken?

Twee vragen bepalen het: is de verhuizing permanent en moet de requestmethode de hop overleven? Voor gewone webpagina's (GET-requests) doet de methodevraag er zelden toe — de splitsing permanent/tijdelijk is wat telt.

Is de verhuizing permanent?janeeMoet de methode overleven?(POST- / PUT-bodies)Moet de methode overleven?(POST- / PUT-bodies)neejaneeja301permanent308permanent + methode302tijdelijk307tijdelijk + methode
Een redirectcode kiezen: eerst permanentie, dan behoud van de methode.

Waarom de keuze ertoe doet voor SEO

Zoekmachines behandelen permanente en tijdelijke redirects anders. Een 301 (of 308) vertelt de crawler dat de oude URL met pensioen is: rankingsignalen worden geconsolideerd op het doel en na verloop van tijd vervangt het doel de bron in de index. Een 302 (of 307) zegt “blijf het origineel indexeren” — handig voor korte links en experimenten, schadelijk als je echt voorgoed verhuisd bent.

Veelvoorkomende manieren waarop redirects een site stilletjes schaden:

  • 302 waar een 301 hoort: Een permanente migratie die als tijdelijk wordt geserveerd, verdeelt signalen over twee URL's in plaats van ze te consolideren.
  • Redirectketens: Drie, vier, vijf hops op rij vertragen elk bezoek en verspillen crawlbudget. Doe het vaak genoeg en crawlers geven op vóór de bestemming.
  • Redirect-loops: A → B → A serveert helemaal niets. Browsers breken af na een vast aantal hops.
  • Gemengde signalen: Een 301 die wijst naar een URL die zelf weer een 302 naar elders geeft, laat crawlers gissen welke URL canoniek is.

Anatomie van een redirect-response

Een redirect-response is kort — de statusregel, een Location-header en meestal cache-hints. Hier is een permanente redirect die browsers een jaar mogen onthouden:

HTTP/2 301 Moved Permanently
location: https://new.example.com/page
cache-control: max-age=31536000

Niet elke redirect is een HTTP-response. Meta refresh-tags en JavaScript-redirects (window.location) gebeuren in de pagina zelf, nadat de HTML is geladen. Ze zijn trager, zwakker voor SEO en een favoriet van phishingkits — de eerste hop ziet er onschuldig uit voor simpele scanners terwijl het script je ergens anders heen stuurt.

Zie elke code in de keten

Je hoeft niet te gokken welke code een link teruggeeft. Redirect Radar traceert de volledige keten in een zijpaneel: elke hop met zijn exacte statuscode, methode, timing en response-headers — inclusief JavaScript-redirects die nooit in een simpele HTTP-check verschijnen. Lange ketens en loops vallen direct op en de laatste hop krijgt een beveiligingsscore.

Probeer het op de volgende korte link die je ontvangt, of op je eigen site na een migratie: de eerste hop zou één schone 301 naar de canonieke URL moeten zijn, geen trap van 302's.

Korte links van T.LY gebruiken schone, doelbewuste redirects. Maak een korte link en traceer hem daarna met Redirect Radar om de exacte statuscode, headers en bestemming te zien die je publiek zal treffen. Aan de slag met T.LY en pak 20% korting op je eerste maand of een jaarabonnement met code

Conclusie

De vier redirectcodes vormen een klein vocabulaire met echte gevolgen: 301 en 308 pensioneren een URL en verhuizen zijn rankingsignalen; 302 en 307 houden het origineel levend; 307 en 308 garanderen dat de requestmethode de hop overleeft. Kies bewust, houd ketens kort en verifieer het resultaat met een tracer in plaats van aan te nemen dat de configuratie deed wat je bedoelde.