301 vs. 302 Weiterleitung
Ein 301 sagt „diese URL ist dauerhaft umgezogen“, ein 302 sagt „schau vorübergehend dort nach“. Klingt nach einem kleinen Unterschied, entscheidet aber darüber, welche URL Google indexiert, wie lange Browser sich den Redirect merken und wie leicht du ihn wieder loswirst.
Die Kurzfassung
Nimm einen 301 (Moved Permanently), wenn die alte URL endgültig ausgedient hat und die neue URL ihren Platz einnehmen soll: Domainumzug, Umstellung auf HTTPS, neue URL-Struktur, zusammengelegte Seiten. Nimm einen 302 (Found), wenn die ursprüngliche URL zurückkommt und weiterhin die indexierte bleiben soll: kurze Wartungsseite, A/B-Test, Sprach- oder Länderweiche auf einer Einstiegs-URL, ein vorübergehend ausverkauftes Produkt.
Wenn du unsicher bist, hilft eine einzige Frage: Sollen Suchmaschinen und Browser die alte URL vergessen? Wenn ja, ist es ein 301. Wenn nein, ein 302.
Was die beiden Statuscodes bedeuten
Beide Codes sind in RFC 9110 definiert, der aktuellen HTTP-Spezifikation. Der Server antwortet mit dem Statuscode und einem Location-Header, der auf das neue Ziel zeigt:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/neue-seite/
HTTP/1.1 302 Found
Location: https://example.com/neue-seite/
- 301 Moved Permanently: Die Ressource hat dauerhaft eine neue URL. Clients, die Links speichern (Lesezeichen, Crawler), sollen ihre Verweise auf die neue URL umstellen.
- 302 Found: Die Ressource liegt vorübergehend unter einer anderen URL. Der Client soll bei künftigen Anfragen weiter die ursprüngliche URL verwenden.
Für Besucher sehen beide gleich aus: Der Browser folgt dem Location-Header in wenigen Millisekunden und zeigt die Zielseite an. Die Unterschiede zeigen sich erst beim Caching, in Suchmaschinen und bei Anfragen, die kein GET sind.
SEO: Was Google aus 301 und 302 macht
Hartnäckig hält sich der Mythos, ein 302 würde „Linkjuice verlieren“. Das stimmt nicht (mehr). Laut Google Search Central geben alle Redirect-Typen – 301, 302, 303, 307 und 308 – PageRank weiter. Der eigentliche Unterschied liegt in der Kanonisierung, also bei der Frage, welche URL im Index landet:
- 301 (und 308) sind ein starkes Signal, dass die Ziel-URL die kanonische sein soll. Google ersetzt die alte URL in den Suchergebnissen in der Regel durch die neue.
- 302 (und 303, 307) sind ein schwaches Signal. Google behält eher die ursprüngliche URL im Index, weil du ja gesagt hast, dass der Umzug nur vorübergehend ist.
Die Kanonisierung entscheidet Google anhand vieler Signale, ein Redirect ist also keine Garantie. Bleibt ein 302 monatelang bestehen und zeigen alle anderen Signale (interne Links, Sitemap, rel="canonical") auf das Ziel, behandelt Google ihn irgendwann womöglich wie eine permanente Weiterleitung. Darauf verlassen solltest du dich aber nicht: Wenn du dauerhaft meinst, schick einen 301 und sorge für einheitliche Signale.
Typische SEO-Fehler durch den falschen Code:
- 302 bei einem dauerhaften Umzug: Nach dem Relaunch tauchen weiter die alten URLs in den Suchergebnissen auf, und die neuen brauchen länger, um sie abzulösen.
- 301 für etwas Vorübergehendes: Eine Wartungs- oder „Ausverkauft“-Weiterleitung per 301 kann dazu führen, dass Google die kanonische URL gegen das temporäre Ziel austauscht – und wiederkehrende Besucher landen dank Browser-Cache auf der falschen Seite (siehe unten).
Browser-Cache: Warum ein 301 so schwer rückgängig zu machen ist
Hier stolpern Entwickler am häufigsten. RFC 9110 erklärt 301- (und 308-)Antworten standardmäßig für cachebar, und Browser nutzen das ausgiebig: Chrome, Firefox und Safari merken sich einen 301 und springen beim nächsten Aufruf direkt zum Ziel, ohne den Server noch einmal zu fragen – oft für sehr lange Zeit.
Hast du also versehentlich einen 301 eingerichtet und entfernst ihn auf dem Server wieder, werden Besucher, die ihn schon gesehen haben, weiterhin umgeleitet, bis ihr Cache abläuft oder sie ihn leeren. Einen gecachten 301 kannst du serverseitig nicht „zurückrufen“.
Ein 302 wird dagegen nur gecacht, wenn die Antwort ausdrücklich Cache-Header wie Cache-Control: max-age=... oder Expires mitbringt. Ohne diese fragt der Browser jedes Mal beim Server nach.
Was das für die Praxis heißt:
- Teste neue Redirect-Regeln zuerst mit einem 302 und stell erst auf 301 um, wenn alles funktioniert.
- Wenn du begrenzen willst, wie lange ein 301 gecacht wird, setz einen Header, zum Beispiel
Cache-Control: max-age=3600. - Teste mit einem Tool, das nicht deinen Browser-Cache nutzt. Unser Redirect-Checker schickt frische Anfragen vom Server und zeigt dir jeden Hop mit Statuscode – du siehst also, was der Server tatsächlich antwortet.
Das POST-Problem: 301/302 vs. 307/308
Aus historischen Gründen machen Browser aus einem POST ein GET, wenn sie einem 301 oder 302 folgen. Die Formulardaten gehen dabei verloren, und RFC 9110 erlaubt dieses Verhalten ausdrücklich. Für normale Seitenweiterleitungen spielt das keine Rolle, weil Links und Lesezeichen ohnehin GET-Anfragen sind. Bei Formularen und APIs dagegen schon.
Deshalb gibt es 307 und 308: die strengen Varianten, die Methode und Body beibehalten müssen. Dazu kommt 303, der bewusst immer auf GET wechselt, etwa nach dem Absenden eines Formulars. Die Details findest du in unserem Ratgeber 307 vs. 308.
Vergleichstabelle: 301, 302, 303, 307, 308
| Code | Name | Dauerhaft? | Methode bei Weiterleitung | Standardmäßig gecacht | Kanonisierungssignal bei Google |
|---|---|---|---|---|---|
| 301 | Moved Permanently | Ja | POST kann zu GET werden | Ja | Stark |
| 302 | Found | Nein | POST kann zu GET werden | Nein | Schwach |
| 303 | See Other | Nein | Immer GET | Nein | Schwach |
| 307 | Temporary Redirect | Nein | Bleibt erhalten | Nein | Schwach |
| 308 | Permanent Redirect | Ja | Bleibt erhalten | Ja | Stark |
Alle fünf geben PageRank weiter. Für normale Webseiten sind 301 und 302 die sichere Standardwahl, weil jeder Client sie versteht. 307 und 308 sind besser, wenn Anfragen jenseits von GET die Weiterleitung unbeschadet überstehen müssen.
Welcher Code wann? Typische Szenarien
| Szenario | Empfohlener Code |
|---|---|
| Umzug auf eine neue Domain | 301 (siehe Checkliste für den Domainumzug) |
| HTTP auf HTTPS | 301 oder 308 (siehe HTTP auf HTTPS weiterleiten) |
| www auf ohne www oder umgekehrt | 301 |
| Neue URL-Struktur nach einem Relaunch | 301, eine Regel pro alter URL |
| Gelöschte Seite mit klarem Nachfolger | 301 auf den Nachfolger |
| Gelöschte Seite ohne Nachfolger | Keine Weiterleitung, sondern 404 oder 410 |
| Kurze Wartungs- oder Aktionsseite | 302 (bei echter Downtime besser 503) |
| A/B-Test auf einer separaten URL | 302 |
| Sprach- oder Länderweiche auf der Startseite | 302 |
| Nach dem Absenden eines Formulars (Post/Redirect/Get) | 303 |
| API-Endpunkt umgezogen, Clients senden POST/PUT | 308 (dauerhaft) oder 307 (vorübergehend) |
Noch ein Wort zu gelöschten Seiten: Alles auf die Startseite umzuleiten, ist kein guter Ersatz für einen 404. Google wertet solche Weiterleitungen gern als „Soft 404“ – du gewinnst also nichts und verwirrst nur deine Besucher.
So richtest du einen 301 oder 302 ein
Meist ist der Code nur ein Parameter. In Apache (.htaccess):
Redirect 301 /alte-seite/ https://example.com/neue-seite/
Redirect 302 /sale/ https://example.com/sommer-sale/
In nginx:
location = /alte-seite/ {
return 301 https://example.com/neue-seite/;
}
In PHP:
header('Location: https://example.com/neue-seite/', true, 301);
exit;
Vorsicht: Viele Werkzeuge nehmen standardmäßig 302. PHPs header('Location: ...') ohne Statuscode schickt einen 302, ebenso Apaches Redirect-Direktive ohne Code und eine RewriteRule mit einem nackten [R]-Flag. Ausführlichere Beispiele findest du im Ratgeber zur 301-Weiterleitung und in den Plattform-Ratgebern zu .htaccess und nginx.
So prüfst du, welchen Code dein Server schickt
Die Adressleiste zeigt dir nur die Ziel-URL, nicht den Weg dorthin. So siehst du die tatsächlichen Statuscodes:
- Gib die alte URL in den Redirect-Checker ein. Er listet jeden Hop mit Statuscode, Ziel und Antwortzeit auf, du erkennst also sofort, ob es ein 301 oder ein 302 ist und ob unnötige Zwischenschritte drin sind.
- Auf der Kommandozeile:
curl -I https://example.com/alte-seite/zeigt Statuszeile undLocation-Header der ersten Antwort. - In den Entwicklertools des Browsers (Tab „Netzwerk“) aktivierst du „Log beibehalten“ und „Cache deaktivieren“ – sonst verdeckt ein gecachter 301, was der Server aktuell tut.
Achte dabei auch auf Ketten wie HTTP → HTTPS → www → finale URL. Jeder zusätzliche Hop kostet Zeit, und Google folgt höchstens 10 Hops. Wie du solche Ketten auflöst, zeigt der Ratgeber zu Redirect-Ketten.
Häufige Fragen
- Ist eine 302-Weiterleitung schlecht für SEO?
Nein. Ein 302 gibt genauso PageRank weiter wie ein 301. Falsch ist er nur bei einem dauerhaften Umzug, weil Google ihn als schwaches Kanonisierungssignal wertet und eher die alte URL im Index behält. Für wirklich vorübergehende Weiterleitungen ist ein 302 genau richtig.
- Wie lange sollte eine 301-Weiterleitung bestehen bleiben?
Google empfiehlt, Weiterleitungen mindestens ein Jahr lang beizubehalten, damit Crawler und Nutzer die neue URL mitbekommen. In der Praxis lässt du sie so lange stehen, wie die alten URLs noch Traffic oder Backlinks bekommen – bei wichtigen Seiten also oft für immer.
- Wie werde ich einen 301 los, den mein Browser gecacht hat?
Leere den Browser-Cache (zumindest die zwischengespeicherten Bilder und Dateien) oder teste in einem privaten Fenster. In den Entwicklertools kannst du außerdem „Cache deaktivieren“ einschalten. Andere Besucher behalten den gecachten 301, bis er abläuft – deshalb solltest du neue Regeln zuerst mit einem 302 testen.
- Sollte ich 308 statt 301 verwenden?
Für normale Seiten funktionieren beide, und Google behandelt sie gleich. Ein 308 ist die bessere Wahl, wenn Clients POST, PUT oder andere Methoden an die alte URL schicken, weil er garantiert, dass Methode und Body erhalten bleiben. Mehr dazu im Ratgeber 307 vs. 308.
Passende Ratgeber
-
307 vs. 308 Weiterleitung
307 und 308 sind die strengen Geschwister von 302 und 301: Sie garantieren, dass ein POST ein POST bleibt. Hier erfährst du, was das in der Praxis bedeutet, warum du oft einen 307 siehst, den dein Server nie geschickt hat, und wann ein 308 die bessere permanente Weiterleitung ist.
-
301-Weiterleitung
Eine 301-Weiterleitung schickt Besucher und Suchmaschinen dauerhaft von einer alten zu einer neuen URL. Sie ist das Standardwerkzeug bei Relaunch, Domainumzug und geänderten URLs. Hier erfährst du, wie sie funktioniert, wie du sie einrichtest und welche Klassiker du vermeiden solltest.
-
Meta-Refresh- und JavaScript-Weiterleitung
Nicht jede Weiterleitung passiert auf dem Server. Auch ein Meta-Refresh-Tag oder eine Zeile JavaScript kann Besucher auf eine andere URL schicken. Hier erfährst du, wie diese clientseitigen Weiterleitungen funktionieren, wie Google mit ihnen umgeht und warum sie nur die Notlösung sein sollten.