301-vs-302-vs-307-vs-308-redirect-guide-2026.html
< BACK

301 vs 302 vs 307 vs 308: die Redirect-Code-Entscheidungsmatrix für SEO-Migrationen

Vier HTTP-Redirect-Codes, vier sinnvoll unterschiedliche Verhaltensweisen und ein konsistenter SEO-Fehler, der bei jeder Migration auftaucht: auf 302 zu setzen, weil es der Standard des Frameworks ist. Hier ist die tatsächliche Entscheidungsmatrix für 301 vs 302 vs 307 vs 308 sowie die realen Kosten, wenn man es falsch macht.

Die vier Codes je ein Satz

301 Moved Permanently: der kanonische permanente Redirect. Cachebar. Die Methode kann sich von POST zu GET ändern. Der Standard für permanente URL-Verschiebungen.

302 Found: temporärer Redirect. Cachebar, aber mit Revalidation. Die Methode kann sich von POST zu GET ändern. Von Frameworks als Standard genutzt; fast nie die richtige Wahl für permanente SEO-Verschiebungen.

307 Temporary Redirect: wie 302, aber die Methode wird beibehalten. POST bleibt POST. Verwendet für temporäre Verschiebungen, bei denen die Methode wichtig ist (selten bei Marketing-Site-SEO; häufig bei APIs).

308 Permanent Redirect: wie 301, aber die Methode wird beibehalten. POST bleibt POST. Der HTTP/2-Ersatz für 301, wenn Methodenbeibehaltung wichtig ist. Moderne Frameworks (Next.js, Vercel) geben 308 standardmäßig bei redirect()-Aufrufen aus.

Warum das für SEO wichtig ist

Google hat öffentlich erklärt, dass 301 und 308 beide das vollständige PageRank-Signal übertragen. 302 und 307 übertragen das Signal weniger zuverlässig — die in Googles Interpretation eingebaute Annahme ist, dass ein temporärer Redirect auf ein temporäres Ziel verweist, daher sollte das kanonische Signal auf der ursprünglichen URL bleiben. Bei einer Migration ist das genau falsch: Du möchtest, dass das kanonische Signal sich bewegt.

Auswirkungen in der Praxis: Eine Website, die Migrations-Redirects als 302 statt 301 ausliefert, verliert typischerweise 20-40% des organischen Traffics in den ersten 60 Tagen nach dem Umstieg. Die Lösung ist nicht subtil, wird aber auch nicht immer erkannt, weil die 302er für Nutzer funktionieren (der Browser folgt ihnen, die Seite lädt). Search Console kennzeichnet das Problem im Coverage-Bericht unter „Seite mit Weiterleitung", aber die meisten Teams ignorieren diesen Bericht während der Panik nach dem Umstieg.

Die Entscheidungsmatrix

Drei Fragen. Antworte sie der Reihe nach; das Ergebnis bestimmt den Code.

Frage 1: Ist der Umzug permanent?

Wenn ja (URL zieht für immer um, die alte URL kommt nicht zurück): nutze 301 oder 308. Wenn nein (URL kommt zurück, das ist temporär): nutze 302 oder 307.

Frage 2: Wird die URL durch POST-Anfragen getroffen?

Wenn ja (Formular-Übermittlungen, API-Aufrufe, JSON-POSTs): nutze 307 oder 308 (Methode beibehalten). Wenn nein (Browser-Navigation, Link-Klick): 302 oder 301 sind ausreichend.

Frage 3: Was ist der Standard des Frameworks?

Moderne Stacks: Next.js redirect() gibt standardmäßig 308 aus, vercel.json [[redirects]] nutzen 308, es sei denn, permanent: false ist gesetzt, Netlify _redirects nutzen 301, sofern nicht ausdrücklich anders vorgegeben. Apache mod_rewrite nutzt standardmäßig 302, was beim ersten Mal jeden erwischt. Überprüfe immer die Standardeinstellung deines Frameworks, bevor du dich darauf verlässt.

Die vier häufigsten Fehler

  • Auf 302 zurückgreifen, weil Apache/Express/Flask es als Standard für den redirect()-Helper ausgeben. Lösung: Setze 301 explizit in jeder Redirect-Regel für einen permanenten Umzug.
  • 307 nutzen in dem Gedanken, es sei das moderne Äquivalent von 301. Das ist es nicht — 307 ist das moderne Äquivalent von 302 (temporär, methodenerhaltend). Für permanente Umzüge nutze 308 oder 301.
  • 301 und 302 in derselben Redirect-Map vermischen. Wähle eins (301 für Migrationen) und nutze es überall; gemischte Codes verwirren die Berichterstattung in Search Console.
  • Vergessen, dass 308 die POST-Methode erhält. Wenn deine alte URL ein Formular-Absendeendpoint war und du es per 308 zur neuen URL umleiten, fließt die POST-Datenübertragung durch. Wenn du es per 301 umleiten, konvertiert der Browser POST zu GET und die Formularübertragung geht verloren. Den Unterschied zu kennen fängt eine echte Fehlerklasse.

Wann nutze ich welches Code in der Praxis

Migrations-Redirects (alte Domain → neue Domain, alter Slug → neuer Slug): nutze 301. Das Einfachste, am weitesten unterstützte und von Google explizit als vollständige PageRank-Übertragung festgehalten.

Permanente Umzüge, bei denen Methodenerhaltung zählt (POST-Endpoints, Formularübertragungen): nutze 308. Die PageRank-Übertragung ist identisch mit 301; der einzige Unterschied ist, dass POST POST bleibt.

Temporäre Umzüge (A/B-Testing, geografische Umleitungen, Wartung): nutze 302. Niedrigere PageRank-Übertragung ist das richtige Verhalten, weil die Quell-URL ihr Ranking-Signal behalten sollte.

Temporäre Verschiebungen mit Methodenerhaltung (API-Endpunkte unter temporärem Failover): verwenden Sie 307.

So setzen Sie jeden Code auf gängigen Plattformen

Vercel (vercel.json)

[[redirects]] Block. Setzen Sie permanent: true für 308 (Standard), permanent: false für 307. Um 301 zu erzwingen, verwenden Sie statusCode: 301 explizit. Die meisten modernen Vercel-Deployments verwenden standardmäßig 308, was für Migrationen in Ordnung ist; die SEO-konservative Wahl ist 301 für maximale Kompatibilität mit älteren Crawlern und Indexern.

Netlify (netlify.toml oder _redirects)

_redirects Syntax: /old-url /new-url 301 für permanent, /old-url /new-url 302 für temporär. Fügen Sie ! hinzu, um den Status zu erzwingen: /old-url /new-url 301!.

Apache (.htaccess)

Redirect 301 /old-url /new-url für permanent. RewriteRule mit [R=301,L] Flag für Rewrite-Style-Redirects.

Nginx

return 301 https://example.com/new-url; innerhalb eines location Blocks. Für Pattern Matching: rewrite ^/old/(.*)$ /new/$1 permanent; (das permanent Flag gibt 301 aus; das redirect Flag gibt 302 aus).

Verifizierung der Codes in Produktion

Drei Befehle, die jeder Engineer im Muskelgedächtnis haben sollte. curl -I https://example.com/old-url gibt den Status-Code in den Response-Headern zurück. curl -ILk folgt Weiterleitungen und protokolliert jeden Status-Code unterwegs (fängt Ketten).

Für Bulk-Verifizierung über hunderte von URLs, scriptbar: eine Node.js-Fetch-Schleife, die eine CSV alter URLs ausliest und Status + finales Ziel protokolliert. Oder nutze den DataForSEO On-Page Instant Pages Endpoint, der die vollständige Weiterleitungs-Trace zurückgibt.

Die Zusammenfassung

301 für permanente Umzüge (Standard für SEO-Migrationen). 308 wenn Methoden-Erhalt wichtig ist und der Umzug permanent. 302 für temporäre Umzüge. 307 für temporäre Umzüge mit Methoden-Erhalt. Die Framework-Defaults sind nicht immer richtig; überprüfe sie bei Deploy-Zeit.

Ergänzende Lektüre: 410 vs 404 behandelt den Rückzugsfall (URLs, die für immer verschwinden, nicht verschoben werden). Dieselbe Migration benötigt meist beide Entscheidungen.

< BACK