Zum Hauptinhalt springen

Anleitungen / HTTP-Statuscodes erklärt

3xx: Weiterleitungs-Statuscodes

Ein 3xx-Statuscode ist eine Weiterleitung: Die angeforderte Ressource befindet sich woanders, und der Location-Header der Antwort sagt, wo. Der konkrete Code sagt dem Client, und jeder Suchmaschine, ob der Umzug dauerhaft oder vorübergehend ist und ob die ursprüngliche Anfragemethode erhalten bleiben muss.

Wie eine Weiterleitung funktioniert

Eine Weiterleitung sind zwei Anfragen, nicht eine. Der Client fragt nach URL A, der Server antwortet mit einem 3xx-Status und einem Location-Header, der URL B nennt, und der Client stellt dann eine neue Anfrage an B. Browser folgen dem automatisch, ein Besucher sieht also nur die endgültige Seite und die endgültige URL in der Adressleiste. Die Zwischenantwort kostet trotzdem einen vollständigen Round Trip, weshalb lange Weiterleitungsketten langsam sind.

Zwei Eigenschaften unterscheiden die 3xx-Codes voneinander. Die erste ist die Dauerhaftigkeit: Eine dauerhafte Weiterleitung sagt Clients und Crawlern, dass die alte URL abgeschaltet ist und die neue sie in Lesezeichen, Links und Indizes ersetzen soll, während eine vorübergehende Weiterleitung sagt, dass die alte URL weiterhin die echte ist und zurückkommen wird. Die zweite ist der Erhalt der Methode. Die älteren Codes erlauben es einem Client, beim Folgen der Weiterleitung ein POST in ein GET zu verwandeln, die neueren verbieten das, ein POST bleibt also ein POST. Das ist der Unterschied zwischen einer Formularübermittlung, die intakt bei der neuen URL ankommt, und einer, die als leeres GET ankommt.

Jeder 3xx-Code und seine Bedeutung

  • 300 Multiple Choices. Die Ressource existiert in mehreren Darstellungen, und der Server überlässt dem Client die Wahl. Es gibt kein maschinenlesbares Standardformat für die Liste, fast nichts implementiert das also. In der Praxis werden Sie einem 300 kaum begegnen. Die Anleitung 300 Multiple Choices erklärt, warum er vor allem als Suchbegriff überlebt.
  • 301 Moved Permanently. Die Ressource hat ein neues, dauerhaftes Zuhause. Suchmaschinen übertragen Ranking-Signale auf das Ziel, und Clients dürfen die Weiterleitung cachen, mitunter aggressiv. Das ist der Code für einen Domainwechsel, einen Umzug von HTTP zu HTTPS oder eine dauerhafte URL-Umstrukturierung.
  • 302 Found. Eine vorübergehende Weiterleitung. Die ursprüngliche URL behält ihre Identität, Suchmaschinen indexieren daher normalerweise weiterhin das Original statt das Ziel. Historisch haben viele Clients beim Folgen eines 302 die Methode zu GET gewechselt, weshalb der Standard davor warnt, sich hier auf den Erhalt der Methode zu verlassen.
  • 303 See Other. "Ihre Anfrage wurde verarbeitet; holen Sie sich jetzt per GET diese andere Ressource." Der Client wird ausdrücklich angewiesen, für die Folgeanfrage GET zu verwenden, unabhängig von der ursprünglichen Methode. Das ist die richtige Antwort auf ein Formular-POST, das auf einer Ergebnisseite landen soll.
  • 304 Not Modified. Überhaupt keine Weiterleitung. Sie beantwortet eine bedingte Anfrage und bedeutet "Ihre gecachte Kopie ist noch aktuell, verwenden Sie sie weiter". Es gibt weder einen Body noch ein Location. Siehe 304 Not Modified.
  • 305 Use Proxy und 306 sind veraltet. 305 wurde aus Sicherheitsgründen zurückgezogen, und 306 wird nicht verwendet. Ignorieren Sie beide.
  • 307 Temporary Redirect. Dieselbe Bedeutung wie 302, aber Methode und Body müssen erhalten bleiben. Ein POST, das einem 307 folgt, kommt als POST bei der neuen URL an.
  • 308 Permanent Redirect. Dieselbe Bedeutung wie 301, aber Methode und Body müssen erhalten bleiben.

Was bei Weiterleitungen schiefgeht

  • Ein vorübergehender Code bei einem dauerhaften Umzug. Der häufigste und teuerste Fehler. Suchmaschinen behalten die alte URL indexiert, und die neue erbt nicht das Ansehen der alten.
  • Ein dauerhafter Code bei einem vorübergehenden Umzug. Schwerer rückgängig zu machen, denn ein gecachter 301 kann wiederkehrende Besucher noch lange, nachdem Sie die Regel entfernt haben, an den falschen Ort schicken.
  • Weiterleitungsketten. Von http zu https, dann von non-www zu www, dann vom alten zum neuen Pfad sind drei Round Trips, bevor überhaupt Inhalt ankommt. Jeder Sprung fügt Latenz hinzu, und jeder Sprung ist eine Stelle, an der die Kette brechen kann.
  • Weiterleitungsschleifen. A schickt zu B und B schickt zurück zu A, meist weil eine Regel auf Anwendungsebene und eine Regel auf Server- oder CDN-Ebene über die kanonische Form uneins sind. Browser geben nach einer festen Anzahl Sprünge auf und zeigen einen Fehler.
  • Alles zeigt auf die Startseite. Leiten abgeschaltete Seiten alle zur Wurzel statt zu ihrem nächstliegenden Äquivalent um, wird die Weiterleitung oft als soft 404 behandelt, und der Besucher bleibt auf der Suche.
  • Verlorene POST-Bodys. Ein API- oder Formular-Endpunkt, der hinter einen 301 oder 302 verschoben wurde, kann bei manchen Clients seine Methode und Nutzlast verlieren. Verwenden Sie 307 oder 308 für alles, was kein einfaches GET ist.

So prüfen und beheben Sie Ihre Weiterleitungen

  1. Sehen Sie, was eine URL zurückgibt, ohne ihr zu folgen:
    curl -sI https://example.com/old-page | grep -Ei "^(HTTP|location)"
    Das gibt Statuszeile und Ziel in einem Zug aus.
  2. Folgen Sie jetzt der gesamten Kette und zählen Sie die Sprünge:
    curl -sIL -o /dev/null -w "%{num_redirects} hops, final %{http_code}, %{url_effective}\n" https://example.com/old-page
  3. Verkürzen Sie Ketten auf einen Sprung. Leiten Sie die ursprüngliche URL direkt auf das endgültige Ziel statt sie durch Zwischenregeln laufen zu lassen.
  4. Passen Sie den Code an die Absicht an. Dauerhafter Umzug: 301, oder 308, wenn der Endpunkt Nicht-GET-Anfragen akzeptiert. Vorübergehender Umzug, Wartungsseite oder A/B-Aufteilung: 302, oder 307, wo die Methode erhalten bleiben muss. Post-dann-Weiterleitung-Ablauf: 303.
  5. Beheben Sie Schleifen, indem Sie die kanonische Form einmal festlegen (Protokoll, Host und abschließender Schrägstrich) und sie in genau einer Ebene durchsetzen. Schleifen bedeuten fast immer, dass zwei Ebenen beide maßgeblich sein wollen.
  6. Testen Sie erneut mit kaltem Cache. Ein Browser, der einen 301 bereits gecacht hat, gehorcht ihm weiterhin, verifizieren Sie also mit curl oder einem privaten Fenster, bevor Sie schließen, dass die Korrektur nicht griff.

Eine defekte Weiterleitung erkennen, bevor der Traffic einbricht

Weiterleitungen brechen ohne jedes sichtbare Symptom. Eine Regel, die anfängt zu schleifen, oder ein Zertifikat, das am Weiterleitungsziel fehlschlägt, lässt die alte URL trotzdem weiter antworten, nichts wirkt also falsch, bis Traffic und Rankings einbrechen. Eine externe Prüfung, die der Kette folgt und den endgültigen Status bewertet, erkennt eine defekte Weiterleitung in dem Moment, in dem sie auftritt, und die Prüfung von vielen Netzwerken aus unterscheidet eine globale Regeländerung von einem regionalen CDN-Problem. HostTracker führt Prüfungen von über 300 Prüfpunkten in 158 Städten aus und alarmiert per E-Mail, SMS, Sprachanruf, Slack, Telegram und mehr. Testen Sie eine URL und ihre Weiterleitungskette mit dem HTTP-Prüfungstool, und lesen Sie 301 vs. 302, bevor Sie einen Code wählen.

Jetzt prüfen

Führen Sie die kostenlose Prüfung für Ihre eigene Website aus - ganz ohne Konto.

HTTP check

Dauerhaft überwachen

Werden Sie benachrichtigt, sobald etwas ausfällt: HostTracker prüft von über 300 Standorten aus und benachrichtigt Sie per E-Mail, SMS, Slack, Telegram und mehr.

HostTracker Funktionen

Mehr in diesem Bereich: HTTP-Statuscodes erklärt