301 vs 302 vs 307 vs 308: Welche Weiterleitung du nutzen solltest
Die falsche Weiterleitung kann eine alte URL monatelang in Google halten oder ein Formular in eine GET-Anfrage verwandeln, die seine Daten verliert. Hier erfährst du, was jeder Statuscode bedeutet, welchen du nutzen solltest und wie du prüfst, ob deine Weiterleitungen korrekt funktionieren.
Die vier Weiterleitungen im Überblick
| Status | Dauerhaft? | Behält Methode und Body? | Verwendung für |
|---|---|---|---|
301 Moved Permanently | Ja | Nicht garantiert (POST kann zu GET werden) | Verschobene Seiten, HTTP → HTTPS, Domainwechsel |
302 Found | Nein | Nicht garantiert | Kurzfristige Umzüge, A/B-Tests, Wartungsarbeiten |
307 Temporary Redirect | Nein | Ja | Temporäre Umzüge von API-Endpunkten und Formularen |
308 Permanent Redirect | Ja | Ja | Dauerhafte Umzüge von API-Endpunkten, die POST empfangen |
Für SEO behandelt Google 301 und 308 als starke Signale, dass die neue URL die alte ersetzen soll, und gibt Ranking-Signale an sie weiter. 302 und 307 sagen Google, dass die alte URL indexiert bleiben soll. Alle Details zu jedem Code findest du in der Referenz HTTP-Statuscodes.
Welche du wählen solltest
- Seite dauerhaft verschoben (neuer Slug, zusammengeführter Artikel, neue Domain) → 301.
- HTTP zu HTTPS, www zu non-www → 301 (oder 308).
- Temporär (Sale-Seite, Wartung, Geo- oder Sprach-Routing) → 302.
- API-Endpunkt oder Formular-Handler verschoben → 308 (dauerhaft) oder 307 (temporär), damit POST-Daten nicht verloren gehen.
Ketten und Schleifen vermeiden
Eine Kette ist /a → /b → /c: Jeder Sprung kostet einen Roundtrip, und Crawler folgen nach mehreren Sprüngen womöglich nicht mehr. Eine Schleife (/a → /b → /a) macht die Seite komplett unbrauchbar. Nach einer Migration zeige jede alte URL direkt auf ihr endgültiges Ziel. Prüfe den vollständigen Pfad jeder URL – jeden Sprung, Status und Timing – mit dem Redirect-Checker, inklusive der Frage, ob die Versionen mit http, https, www und non-www alle am selben Ziel landen.
Copy-Paste-Regeln
Apache (.htaccess):
Redirect 301 /old-page /new-page
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Nginx:
location = /old-page { return 301 /new-page; }
server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
Vercel (vercel.json): "permanent": true sendet einen 308, den Google wie einen 301 behandelt.
{ "redirects": [ { "source": "/old-page", "destination": "/new-page", "permanent": true } ] }
Verwandle eine Tabelle mit alten → neuen URLs mit dem Redirect-Generator in Regeln für jeden beliebigen Server, oder baue mit dem .htaccess-Generator eine komplette Apache-Konfiguration.
Migrations-Checkliste
- Ordne jede alte URL der passendsten neuen zu – nicht alle der Startseite, die Google als Soft-404 behandelt.
- Nutze 301 (oder 308) für dauerhafte Umzüge und behalte sie mindestens ein Jahr bei.
- Aktualisiere interne Links und die Sitemap auf die neuen URLs, damit Weiterleitungen nur noch als Sicherheitsnetz dienen.
- Teste eine Stichprobe alter URLs und beobachte danach den Seiten-Bericht der Search Console auf 404-Fehler.