Wenn eine URL auf eine andere Adresse weiterleitet, ist im Hintergrund ein HTTP-Statuscode beteiligt. Besonders häufig begegnen dir dabei die Statuscodes 301, 302, 307 und 308.
Alle vier können einen Browser zu einer anderen URL weiterleiten. Sie bedeuten technisch jedoch nicht dasselbe. Ein wesentlicher Unterschied besteht darin, ob die Weiterleitung dauerhaft oder vorübergehend sein soll. Bei 307 und 308 kommt zusätzlich die Behandlung der ursprünglichen HTTP-Methode ins Spiel.
In diesem Artikel erklären wir dir die Unterschiede und zeigen, welcher Weiterleitungstyp für welchen Anwendungsfall gedacht ist.
Kurz erklärt: 301 und 308 stehen für dauerhafte Weiterleitungen. 302 und 307 sind für temporäre Weiterleitungen vorgesehen. 307 und 308 garantieren zusätzlich, dass HTTP-Methode und Request-Body bei der Weiterleitung nicht verändert werden.
Was passiert bei einer HTTP-Weiterleitung? #
Wenn dein Browser eine URL aufruft, sendet er eine HTTP-Anfrage an den zuständigen Webserver.
Bei einer normalen erfolgreichen Anfrage kann der Server beispielsweise mit folgendem Status antworten:
200 OK
Der angeforderte Inhalt wird anschließend ausgeliefert.
Bei einer Weiterleitung antwortet der Server dagegen mit einem Redirect-Statuscode und teilt dem Client über die HTTP-Antwort mit, unter welcher anderen URL die Ressource erreichbar ist.
Vereinfacht:
Browser fordert URL A an
↓
Server antwortet mit Redirect
↓
neue Adresse: URL B
↓
Browser ruft URL B auf
↓
Server liefert Inhalt
Für Besucher geschieht dieser Vorgang normalerweise automatisch.
Was bedeuten 301, 302, 307 und 308? #
Die vier Statuscodes lassen sich zunächst nach dauerhaft und temporär unterscheiden:
301 → dauerhaft
302 → temporär
307 → temporär
308 → dauerhaft
Zwischen 301 und 308 beziehungsweise zwischen 302 und 307 besteht jedoch noch ein technischer Unterschied, der insbesondere bei anderen HTTP-Methoden als GET relevant werden kann.
301 – Moved Permanently #
Der Statuscode 301 Moved Permanently signalisiert, dass die angeforderte Ressource dauerhaft unter einer anderen URL erreichbar ist.
Ein typisches Beispiel ist eine dauerhaft geänderte Seitenadresse:
https://example.com/altes-angebot/
↓ 301
https://example.com/neues-angebot/
Die alte Adresse wurde dauerhaft durch die neue ersetzt.
301 ist deshalb einer der wichtigsten Statuscodes bei Website-Relaunches, geänderten URLs und dauerhaft verschobenen Inhalten.
Wie du eine solche Weiterleitung praktisch einrichtest, erklären wir unter 301-Weiterleitung einrichten: URLs dauerhaft umleiten.
Wann ist eine 301-Weiterleitung sinnvoll? #
Eine 301-Weiterleitung passt beispielsweise, wenn eine Seite dauerhaft eine neue URL erhält, eine alte Seite durch einen passenden neuen Inhalt ersetzt wurde oder sich bei einem Relaunch die URL-Struktur dauerhaft verändert.
Auch bei einem dauerhaften Wechsel einer Domain können 301-Weiterleitungen Bestandteil einer sauberen Migration sein.
Wichtig: „Dauerhaft“ bedeutet hier nicht, dass du die technische Regel niemals wieder verändern darfst. Es beschreibt die Information, die der Server dem Client über den Status der angeforderten Ressource mitteilt: Die bisherige URL wurde dauerhaft durch ein anderes Ziel ersetzt.
302 – Found #
Der Statuscode 302 Found wird für eine temporäre Weiterleitung verwendet.
Die ursprüngliche URL gilt dabei grundsätzlich weiterhin als die eigentliche Adresse der Ressource.
Ein vereinfachtes Beispiel:
URL A
↓ 302
URL B
URL A soll später wieder
das reguläre Ziel sein.
Eine temporäre Weiterleitung kann beispielsweise verwendet werden, wenn ein Inhalt nur vorübergehend unter einer anderen Adresse bereitgestellt wird.
Warum heißt 302 „Found“? #
Die Bezeichnung kann zunächst verwirrend wirken. Historisch wurde dieser Statuscode unterschiedlich interpretiert und verwendet.
Für die praktische Arbeit an einer Website ist vor allem wichtig: 302 steht für eine nicht als dauerhaft deklarierte Weiterleitung.
Wenn die URL-Änderung tatsächlich dauerhaft ist, solltest du nicht allein aus Gewohnheit eine 302-Weiterleitung verwenden.
307 – Temporary Redirect #
Der Statuscode 307 Temporary Redirect beschreibt ebenfalls eine temporäre Weiterleitung.
Im Unterschied zu 302 ist bei 307 eindeutig festgelegt, dass der Client beim Weiterleiten die ursprüngliche HTTP-Methode und den Request-Body nicht verändern darf.
Das ist insbesondere bei Anfragen relevant, die nicht mit der üblichen Methode GET erfolgen.
Was bedeutet HTTP-Methode? #
Eine HTTP-Anfrage besitzt unter anderem eine Methode. Zwei häufig vorkommende Methoden sind:
GET → Ressource abrufen
POST → Daten an einen Server senden
Beim normalen Aufruf einer Webseite im Browser handelt es sich typischerweise um eine GET-Anfrage.
Formulare oder Webanwendungen können dagegen beispielsweise POST verwenden.
Warum ist die Methode bei Weiterleitungen relevant? #
Angenommen, ein Client sendet Daten mit einer POST-Anfrage an eine URL.
Bei einer 307-Weiterleitung muss die weitergeleitete Anfrage weiterhin als POST erfolgen und der Request-Body erhalten bleiben.
POST /alte-url
↓
307 Temporary Redirect
↓
POST /neue-url
Genau diese garantierte Beibehaltung der Methode unterscheidet 307 technisch von 302.
Für normale Website-Betreiber: Bei gewöhnlichen Seitenaufrufen mit GET spielt dieser Unterschied häufig keine sichtbare Rolle. Bei Formularen, APIs und Webanwendungen kann er dagegen entscheidend sein.
308 – Permanent Redirect #
Der Statuscode 308 Permanent Redirect beschreibt eine dauerhafte Weiterleitung.
Wie bei 307 müssen die ursprüngliche HTTP-Methode und der Request-Body bei der Weiterleitung erhalten bleiben.
Vereinfacht:
POST /alte-url
↓
308 Permanent Redirect
↓
POST /neue-url
308 verbindet damit zwei Eigenschaften:
dauerhafte Weiterleitung
+
HTTP-Methode bleibt erhalten
Was ist der Unterschied zwischen 301 und 308? #
Beide Statuscodes kennzeichnen eine dauerhafte Weiterleitung.
Der entscheidende technische Unterschied besteht in der Behandlung der HTTP-Methode.
Bei 308 ist ausdrücklich festgelegt, dass Methode und Request-Body unverändert weiterverwendet werden müssen.
Bei 301 besteht diese Garantie nicht in derselben Form. Historisch können Clients insbesondere bei bestimmten Nicht-GET-Anfragen das Verhalten verändern.
Für die klassische Weiterleitung einer normalen Webseite von einer alten GET-URL auf eine neue URL ist 301 weiterhin ein etablierter und geeigneter Statuscode.
Was ist der Unterschied zwischen 302 und 307? #
Beide kennzeichnen eine temporäre Weiterleitung.
Auch hier liegt der technische Unterschied vor allem in der Behandlung der HTTP-Methode:
302
temporär
Methode wird nicht in derselben Weise garantiert
307
temporär
Methode und Request-Body müssen erhalten bleiben
Für technisch sensible Anfragen, bei denen die ursprüngliche Methode zwingend beibehalten werden muss, bietet 307 damit eine eindeutigere Semantik.
Die vier Weiterleitungen im direkten Vergleich #
| Statuscode | Bedeutung | Dauerhaft? | Methode beibehalten? |
|---|---|---|---|
301 | Moved Permanently | Ja | Nicht garantiert wie bei 308 |
302 | Found | Nein | Nicht garantiert wie bei 307 |
307 | Temporary Redirect | Nein | Ja |
308 | Permanent Redirect | Ja | Ja |
Welchen Statuscode sollte ich verwenden? #
Bei einer normalen Website kannst du zunächst eine einfache Frage stellen:
Ist die Änderung dauerhaft oder temporär?
Dauerhaft?
│
├── Ja → 301 oder technisch 308
│
└── Nein → 302 oder technisch 307
Bei normalen Seitenweiterleitungen ist 301 für dauerhafte URL-Änderungen sehr verbreitet.
Wenn zusätzlich garantiert werden muss, dass eine HTTP-Methode wie POST unverändert erhalten bleibt, werden die Unterschiede zwischen 301/308 beziehungsweise 302/307 relevant.
Beispiel: Seite dauerhaft umbenannt #
Eine bisherige Leistungsseite:
wurde dauerhaft ersetzt durch:
Hier ist eine permanente Weiterleitung sinnvoll.
/webhosting-alt/
↓ 301
/webhosting/
Beispiel: Inhalt nur vorübergehend verschoben #
Angenommen, eine Ressource ist nur zeitweise unter einer anderen URL erreichbar und soll später wieder unter ihrer bisherigen Adresse verwendet werden.
Dann sollte die Weiterleitung nicht als dauerhafte Verschiebung gekennzeichnet werden.
ursprüngliche URL
↓
temporärer Redirect
↓
vorübergehendes Ziel
Je nach technischem Anwendungsfall kommen dafür 302 oder 307 infrage.
Beispiel: Formular oder Anwendung #
Bei einer Webanwendung kann eine Anfrage Daten mit POST übertragen.
Wenn diese Anfrage temporär auf einen anderen Endpunkt weitergeleitet werden muss und als POST erhalten bleiben soll, ist die Semantik von 307 relevant.
POST /formular-alt
↓
307
↓
POST /formular-neu
Solche Fälle unterscheiden sich von der klassischen Weiterleitung einer normalen Inhaltsseite.
Weiterleitungen und Suchmaschinen #
Suchmaschinen berücksichtigen HTTP-Weiterleitungen beim Crawlen und Verarbeiten von URLs.
Eine permanente Weiterleitung signalisiert, dass eine Ressource dauerhaft an ein anderes Ziel verschoben wurde. Eine temporäre Weiterleitung signalisiert dagegen, dass die ursprüngliche URL grundsätzlich weiterhin relevant bleiben kann.
Der Statuscode sollte deshalb den tatsächlichen Zustand möglichst korrekt beschreiben.
Wichtig für SEO: Wähle den Statuscode nicht danach aus, von welchem du dir einen vermeintlichen „SEO-Vorteil“ versprichst. Verwende den Code, der den tatsächlichen technischen Zustand korrekt beschreibt.
Übertragen 301-Weiterleitungen „SEO-Power“? #
Im SEO-Umfeld werden Weiterleitungen häufig vereinfacht als Methode beschrieben, mit der sogenannte „Link-Power“ oder „SEO-Power“ übertragen werde.
Diese Darstellung ist zu pauschal.
Eine permanente Weiterleitung ist zunächst ein technisches Signal, dass eine Ressource dauerhaft unter einer anderen URL erreichbar ist. Suchmaschinen können dieses Signal zusammen mit weiteren Informationen verarbeiten.
Eine Weiterleitung macht aus einer beliebigen Zielseite jedoch nicht automatisch eine besser rankende Seite.
Insbesondere sollte eine alte URL auf ein inhaltlich sinnvolles neues Ziel verweisen.
Keine Weiterleitungen nur für Rankings bauen #
Weiterleitungen sollten einen realen technischen Zweck erfüllen.
Das wahllose Weiterleiten alter oder fremder URLs auf eine bestimmte Seite mit dem Ziel, Rankings künstlich zu verbessern, ist keine saubere Website-Struktur.
Wenn eine Ressource keinen sinnvollen Nachfolger besitzt, muss nicht zwangsläufig irgendein Redirect eingerichtet werden.
Was passiert bei einem falschen Weiterleitungstyp? #
Eine Website wird nicht zwangsläufig sofort unbenutzbar, nur weil statt eines permanenten Redirects ein temporärer verwendet wurde.
Trotzdem liefert der Server damit eine andere Information über den Status der Ressource.
Bei langfristig bestehenden URL-Änderungen solltest du deshalb prüfen, ob tatsächlich eine permanente Weiterleitung konfiguriert ist.
Redirect-Ketten vermeiden #
Unabhängig vom verwendeten Statuscode solltest du unnötige Weiterleitungsketten vermeiden.
Ungünstig:
URL A
↓ 301
URL B
↓ 302
URL C
↓ 301
URL D
Wenn URL D das tatsächliche endgültige Ziel ist und keine technischen Gründe für die Zwischenstationen bestehen, sollte die Weiterleitung möglichst direkt erfolgen.
URL A
↓ 301
URL D
Redirect Loops vermeiden #
Eine Weiterleitungsschleife entsteht, wenn sich Weiterleitungsregeln gegenseitig wieder zum Ausgangspunkt führen.
URL A
↓
URL B
↓
URL C
↓
URL A
Dadurch kann kein endgültiges Ziel erreicht werden.
Browser melden in solchen Fällen typischerweise, dass zu viele Weiterleitungen stattgefunden haben.
Weiterleitungen technisch prüfen #
Wenn du wissen möchtest, welcher Statuscode tatsächlich zurückgegeben wird, reicht die sichtbare Adresszeile des Browsers allein nicht aus.
Der Browser kann dich zwar zum richtigen Ziel bringen, aber daraus erkennst du nicht zuverlässig, ob beispielsweise 301, 302, 307 oder 308 verwendet wurde.
Zur technischen Kontrolle kannst du unter anderem die Netzwerkansicht der Entwicklerwerkzeuge eines modernen Browsers verwenden.
Dort lässt sich die HTTP-Antwort der ursprünglichen Anfrage untersuchen.
HTTP-Statuscodes richtig einordnen #
Weiterleitungen gehören zur Gruppe der HTTP-Statuscodes im Bereich 3xx.
Andere Statuscode-Gruppen haben andere Aufgaben.
Beispiele:
2xx → erfolgreiche Anfrage
3xx → Weiterleitung
4xx → Problem mit der Anfrage / Ressource
5xx → serverseitiger Fehler
Die wichtigsten Statuscodes erklären wir ausführlicher unter HTTP-Statuscodes erklärt: 200, 301, 404, 403 und 500.
Was hat ein 404-Fehler mit Weiterleitungen zu tun? #
Wenn eine Seite dauerhaft auf eine neue URL verschoben wurde, die alte URL aber einfach gelöscht wird, kann ein Aufruf der bisherigen Adresse mit 404 Not Found enden.
Existiert ein inhaltlich passender Nachfolger, kann eine permanente Weiterleitung auf diese neue Ressource sinnvoll sein.
Das bedeutet jedoch nicht, dass jeder 404-Fehler automatisch weitergeleitet werden sollte.
Wie du nicht mehr vorhandene URLs richtig beurteilst, erklären wir unter 404-Fehler finden und beheben.
Weiterleitungen im Browser können zwischengespeichert werden #
Browser können insbesondere permanente Weiterleitungen zwischenspeichern.
Wenn du eine Regel gerade geändert hast und weiterhin das vorherige Verhalten siehst, solltest du die URL zusätzlich in einem privaten Browserfenster oder einem anderen Browser testen.
Für eine zuverlässige technische Prüfung ist außerdem die tatsächliche HTTP-Antwort entscheidend.
HTTPS-Weiterleitungen #
Weiterleitungen werden häufig auch eingesetzt, um Aufrufe über HTTP auf HTTPS umzuleiten.
Beispiel:
http://example.com/
↓
https://example.com/
Dabei müssen Weiterleitung und SSL-/HTTPS-Konfiguration zusammenpassen.
Wenn HTTPS selbst nicht korrekt funktioniert, sollte zuerst die Ursache des SSL- beziehungsweise Zertifikatsproblems geklärt werden.
Dieses Thema behandeln wir später unter SSL-Zertifikat und HTTPS prüfen: Häufige Fehler erkennen.
Weiterleitungen nach Änderungen erneut testen #
Wenn du eine bestehende Redirect-Regel veränderst, solltest du anschließend nicht nur das neue Ziel kontrollieren.
Prüfe auch, ob dadurch keine zusätzliche Kette oder Schleife entstanden ist.
Bei mehreren zusammenhängenden Regeln empfiehlt es sich, jeweils von der ältesten noch bekannten URL bis zum endgültigen Ziel zu testen.
Entscheidungshilfe #
URL dauerhaft verschoben?
│
├── JA
│ │
│ ├── normale Seiten-URL → häufig 301
│ │
│ └── Methode muss zwingend
│ erhalten bleiben → 308
│
└── NEIN
│
├── temporärer Redirect → 302
│
└── Methode muss zwingend
erhalten bleiben → 307
Diese Darstellung ist eine Orientierung. Bei komplexen Anwendungen, APIs oder speziellen Request-Abläufen sollte der konkrete technische Anwendungsfall berücksichtigt werden.
Zusammenfassung #
Die Statuscodes 301, 302, 307 und 308 dienen alle zur Weiterleitung einer HTTP-Anfrage, besitzen aber unterschiedliche Bedeutungen.
301 und 308 kennzeichnen dauerhafte Weiterleitungen. 302 und 307 stehen für temporäre Weiterleitungen.
Bei 307 und 308 müssen die ursprüngliche HTTP-Methode und der Request-Body erhalten bleiben. Dieser Unterschied ist insbesondere bei Formularen, APIs und anderen Nicht-GET-Anfragen relevant.
Für die klassische dauerhafte Änderung einer normalen Webseiten-URL ist eine 301-Weiterleitung weiterhin ein typischer Anwendungsfall.
Wähle einen Redirect nicht nach vermeintlichen SEO-Vorteilen, sondern danach, was technisch tatsächlich passiert: dauerhaft oder temporär – und ob die ursprüngliche HTTP-Methode erhalten bleiben muss.