307 Temporäre Weiterleitung

Was eine 307 Temporary Redirect ist, wie sie im Gegensatz zu 302 die HTTP-Methode strikt erhält, wo sie auftaucht (HSTS und vorübergehende Umzüge) und wie Google sie für SEO behandelt.

Erstveröffentlicht: 28. Juni 2026 · Zuletzt aktualisiert: 8. Aug. 2026 · Fortgeschritten
Sprachen
1 Evidenzsignal auf dieser Seite

Eine 307 Temporary Redirect bedeutet für Google dasselbe wie eine 302 — ein schwaches, vorübergehendes Signal, das keine Rankingsignale der ursprünglichen URL auf das Ziel überträgt. Der eine echte Unterschied zu 302 ist eine Garantie der Spezifikation: Eine 307 darf Request-Methode und Body nicht ändern, daher bleibt die POST-Anfrage eine POST-Anfrage. Das ist für Formulare, APIs und moderne Frameworks wichtig (Next.js verwendet standardmäßig 307), für gewöhnliche GET-Weiterleitungen aber irrelevant. Der 307, der viele Menschen verwirrt, ist überhaupt keine Weiterleitung: Er ist das browserinterne HSTS-Artefakt beim Upgrade von HTTP auf HTTPS, mit einem Body von 0 Byte, den der Server nie gesendet hat. Ein Redirect Checker oder eine einfache curl-Anfrage zeigt den echten Statuscode.

TL;DR — Eine 307 ist gemäß RFC 9110 eine vorübergehende Weiterleitung, die “MUST NOT change the request method” (Übersetzung) „die Request-Methode nicht ändern darf“ — die eine feste Garantie, die eine 302 nicht gibt. Für SEO ist sie ein Nicht-Ereignis: Googles Dokumentation führt sie als “Equivalent to 302 (Übersetzung) „gleichwertig zu 302“ (ein schwaches, vorübergehendes Signal), und Mueller sagte, die Wahl zwischen 307 und 302 “doesn’t really matter” (Übersetzung) „spielt für die Suche keine wirkliche Rolle“ — entscheidend ist, ob die Weiterleitung für POST-/API-Traffic funktionieren muss. Die 307, die tatsächlich Verwirrung stiftet, ist das HSTS-Artefakt: eine browserinterne „Weiterleitung“ mit 0 Byte, die der Server nie gesendet hat und die entsteht, wenn der Browser HTTP eigenständig zu HTTPS hochstuft. Es gibt zwei funktional unabhängige Fälle, und sie auseinanderzuhalten ist die gesamte Aufgabe.

Eine 307 hat zwei völlig unterschiedliche Fälle

Das ist die ordnende Idee für alles Folgende und stammt direkt aus meinem Statuscodes-Leitfaden, in dem 307 zwei getrennte Einträge erhält: “307 Temporary Redirect – Has the same functionality as a 302 redirect, except you can’t switch between POST and GET” (Übersetzung) „307 Temporary Redirect – hat dieselbe Funktion wie eine 302-Weiterleitung, außer dass nicht zwischen POST und GET gewechselt werden kann“ und “307 HSTS Policy – Forces the client to use HTTPS when making requests instead of HTTP.” (Übersetzung) „307 HSTS Policy – zwingt den Client, Anfragen über HTTPS statt über HTTP zu stellen.“ Sie teilen sich eine Nummer und fast nichts anderes:

  1. 307 als echte, vom Server ausgegebene vorübergehende Weiterleitung — absichtlich ausgewählt (oder von einem Framework als Standard verwendet), um Methode und Body einer Nicht-GET-Anfrage zu erhalten.
  2. 307 als HSTS-Browserartefakt — überhaupt keine Serverantwort. Der Browser stuft HTTP intern zu HTTPS hoch und beschriftet dieses Upgrade als 307.

Diese beiden Fälle zu vermischen ist die häufigste Quelle der 307-Verwirrung. Ich behandle sie nacheinander.

Fall 1: die echte 307 — was die Spezifikation tatsächlich verlangt

RFC 9110, die aktuelle Spezifikation für HTTP-Semantik, ist in §15.4.8 eindeutig:

“The 307 (Temporary Redirect) status code indicates that the target resource resides temporarily under a different URI and the user agent MUST NOT change the request method if it performs an automatic redirection to that URI.” (Übersetzung) „Der Statuscode 307 (Temporary Redirect) zeigt an, dass die Zielressource vorübergehend unter einer anderen URI liegt und der User-Agent die Request-Methode NICHT ändern DARF, wenn er automatisch zu dieser URI weiterleitet.“

Evidence for this claim RFC 9110 defines 307 Temporary Redirect as a temporary move and requires clients not to change the request method when following it automatically. Scope: HTTP semantics for real server 307 responses, not browser-internal HSTS displays. Confidence: high · Verified: IETF: RFC 9110 §15.4.8 — 307 Temporary Redirect

Dieses „DARF NICHT“ ist eine harte Anforderung, keine Empfehlung. Vergleichen Sie das mit dem Abschnitt zu 302 (§15.4.3), der das historische Durcheinander, zu dessen Behebung 307 geschaffen wurde, offen dokumentiert: “For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 307 (Temporary Redirect) status code can be used instead.” (Übersetzung) „Aus historischen Gründen DARF ein User-Agent die Request-Methode für die folgende Anfrage von POST zu GET ändern. Wenn dieses Verhalten unerwünscht ist, kann stattdessen der Statuscode 307 (Temporary Redirect) verwendet werden.“ 307 existiert ausdrücklich, um die POST→GET-Mehrdeutigkeit zu beseitigen, die ältere Clients bei 302s hatten.

MDN beschreibt dieselbe Unterscheidung in der Praxis:

“The difference between 307 and 302 is that 307 guarantees that the client will not change the request method and body when the redirected request is made. With 302, older clients incorrectly changed the method to GET. 307 and 302 responses are identical when the request method is GET.” (Übersetzung) „Der Unterschied zwischen 307 und 302 besteht darin, dass 307 garantiert, dass der Client die Request-Methode und den Body bei der weitergeleiteten Anfrage nicht ändert. Bei 302 änderten ältere Clients die Methode fälschlicherweise zu GET. 307- und 302-Antworten sind identisch, wenn die Request-Methode GET ist.“

Der letzte Satz ist für SEO am wichtigsten. Fast jede Weiterleitung, die für SEO relevant ist — eine alte Seite zu einer neuen — ist eine GET-Anfrage, und bei GET-Anfragen sind 307 und 302 buchstäblich identisch. Die Garantie der Methodenerhaltung greift nur, wenn die Methode nicht GET ist: bei erneuten Formularübermittlungen, API-Endpunkten, Webhook-Zielen sowie Checkout- oder Auth-POST-Übergaben. Die Spezifikation garantiert Methode und Body, legt aber nicht automatisch den exakten Umgang jedes Clients mit Headern, Anmeldedaten oder Cross-Origin-Anfragen bei der Wiederholung fest. Prüfen Sie das daher mit Ihrem tatsächlichen Client. Der direkte Vergleich der beiden Codes bei einem normalen Seitenumzug wird im eigenen Beitrag zu 302 vs. 307 ausführlich behandelt.

302 vs. 303 vs. 307 in einer Tabelle

Alle drei liegen in der „vorübergehenden“ Gruppe der RFC, verhalten sich aber auf den zwei entscheidenden Achsen — Methodenerhaltung und Caching — nicht gleich:

CodeMethode bei automatischer WeiterleitungHeuristisch cachebar?
302 FoundDarf POST in GET ändern (historisches Client-Verhalten; keine RFC-Anforderung)Nein
303 See OtherRuft das Ziel bewusst mit GET oder HEAD abNein
307 Temporary RedirectDARF die Methode NICHT ändernNein

Keiner der drei Statuscodes ist standardmäßig heuristisch cachebar — eine 307 (wie 302 und 303) benötigt ein ausdrückliches Frische-Signal (Cache-Control, Expires usw.), bevor ein Cache sie ohne erneute Anfrage speichert.

Fall 1, Fortsetzung: Wie Google eine echte 307 für SEO behandelt

Die Kurzfassung: genau wie eine 302. Googles Dokumentation zu HTTP-Statuscodes führt die 307-Zeile als “Equivalent to 302,” (Übersetzung) „gleichwertig zu 302“ auf, und die geerbte 302-Zeile erklärt, was das bedeutet:

“By default, Google’s crawlers follow the redirect, and Google systems use the redirect as a weak signal that the redirect target should be processed.” (Übersetzung) „Standardmäßig folgen Googles Crawler der Weiterleitung, und Google-Systeme verwenden die Weiterleitung als schwaches Signal dafür, dass das Weiterleitungsziel verarbeitet werden soll.“

„Schwach“ ist das entscheidende Wort — eine vorübergehende Weiterleitung konsolidiert die Kanonisierung nicht auf dem Ziel, wie eine dauerhafte Weiterleitung es tut. Googles Dokumentation Redirects and Google Search gruppiert 302, 303 und 307 unter „vorübergehend“ und sagt: “Googlebot follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.” (Übersetzung) „Googlebot folgt der Weiterleitung, aber die Indexierungspipeline verwendet die Weiterleitung nicht als Signal dafür, dass das Weiterleitungsziel kanonisch sein soll.“ Auf derselben Seite heißt es außerdem: “If you just want to send users to a different page temporarily, use a temporary redirect.” (Übersetzung) „Wenn Sie Nutzer nur vorübergehend an eine andere Seite senden möchten, verwenden Sie eine vorübergehende Weiterleitung.“

Evidence for this claim Google's indexing pipeline does not use a temporary 302, 303, or 307 redirect as a signal that the redirect target should be canonical. Scope: redirect crawling, indexing, and canonicalization Confidence: high · Verified: Redirects and Google Search

Direkt nach den Zeilen zu 307 und 308 fügt Google den Hinweis hinzu, den man sich an die Wand tätowieren sollte:

“While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (Übersetzung) „Auch wenn Google diese Statuscodes gleich behandelt, bedenken Sie, dass sie semantisch verschieden sind. Wählen Sie den für die Weiterleitung passenden Statuscode, damit andere Clients – etwa E-Reader und andere Suchmaschinen – davon profitieren können.“

Google fasst 307 und 302 für Rankings also in einer Gruppe zusammen, sagt Ihnen aber weiterhin, den semantisch richtigen Code auszuwählen. Das ist die gesamte SEO-Antwort. Evidence for this claim Google treats 307 as equivalent to 302 for Search while noting that the HTTP semantics differ. Scope: Google Search redirect handling; clients still need the semantically appropriate status code. Confidence: high · Verified: Google: HTTP status codes and Search John Mueller formulierte es im Podcast Search Off the Record, Folge 51 (“Let’s talk redirects”), noch direkter. Er erklärte, dass “with 307, 308, it also forwards POST requests” (Übersetzung) „bei 307 und 308 werden auch POST-Anfragen weitergeleitet“ — anders als bei 301/302, die GET-Anfragen weiterleiten — und brachte den Punkt anschließend auf den Nenner:

“I think for SEO, it doesn’t really matter. It’s more like, I don’t know… Does it work for APIs or not? And usually, APIs are not something that you need to have indexed directly in Search.” (Übersetzung) „Meiner Ansicht nach ist das für SEO nicht wirklich entscheidend. Die eigentliche Frage lautet eher: Funktioniert es für APIs? Normalerweise müssen APIs nicht direkt in der Suche indexiert werden.“

Es gibt keinen Rankingvorteil, wenn Sie Ihre vorübergehenden Weiterleitungen auf 307 umstellen. Der einzige stichhaltige Grund ist die Erhaltung von Methode und Body — oder, als allgemeine Präferenz für Zukunftssicherheit, die ich am Ende bespreche.

Fall 1, Fortsetzung: Framework- und CDN-Standards

Immer mehr Fragen nach dem Muster „Warum ist das eine 307?“ sind keine bewusste Entscheidung, sondern Framework-Standards. Die Funktion redirect() von Next.js verwendet standardmäßig 307; der Begriff redirect bezeichnet dabei die Weiterleitung. Die Dokumentation erklärt: „Die Methode redirect() verwendet standardmäßig 307 statt einer vorübergehenden 302, was bedeutet, dass Ihre Anfragen immer als POST-Anfragen erhalten bleiben.“ Next.js verwendet innerhalb von Server Actions gezielt 303 und stellt für 308 die Funktion permanentRedirect() bereit. Wenn Sie 307s sehen, die Sie nicht selbst geschrieben haben, prüfen Sie, ob Ihr Framework oder Ihre Edge-Plattform sie bei Nicht-GET-Weiterleitungen als Standard verwendet — das ist normalerweise die Erklärung und normalerweise korrekt.

Fall 2: das HSTS-„Phantom-307“, das Ihr Server nie gesendet hat

Wenn eine Website einen Strict-Transport-Security-(HSTS-)Header sendet, sagt sie dem Browser: Lade mich ab jetzt ausschließlich über HTTPS. Bei der nächsten Anfrage an die HTTP-Version stuft der Browser selbst auf HTTPS hoch, ohne mit dem Server zu sprechen — und zeigt dieses interne Upgrade in Developer-Tools und Crawlern als „307“ an.

John Mueller erklärte die Mechanik auf seiner persönlichen Website:

“After seeing the HTTPS URL with the HSTS header (for example, with any redirect from the HTTP version), Chrome will act like it’s seeing a 307 redirect the next time you try to access the HTTP page. Your server’s not returning a 307, Chrome is just showing it to you as such to explain that it’s doing the redirect for you.” (Übersetzung) „Nachdem Chrome die HTTPS-URL mit dem HSTS-Header gesehen hat (zum Beispiel nach einer Weiterleitung von der HTTP-Version), verhält es sich beim nächsten Versuch, die HTTP-Seite aufzurufen, so, als würde es eine 307-Weiterleitung sehen. Ihr Server gibt keine 307 zurück, Chrome zeigt sie Ihnen nur so an, um zu erklären, dass es die Weiterleitung für Sie übernimmt.“

Der Body mit 0 Byte ist der Hinweis — wie Mueller ergänzt: “the 307 isn’t actually a redirect at all, it’s just a placeholder.” (Übersetzung) „Die 307 ist eigentlich überhaupt keine Weiterleitung, sondern nur ein Platzhalter.“ Mein Weiterleitungsleitfaden fasst die praktische Folge für Audits zusammen: “When web servers require clients to only use HTTPS connections (HSTS policy), Google won’t see the 307 because it’s cached in the browser. The initial hit (without cache) will have a server response code that’s likely a 301 or a 302. But your browser will show you a 307 for subsequent requests which makes it more difficult to troubleshoot. You will need to use a fresh Incognito session to see the returned status code.” (Übersetzung) „Wenn Webserver von Clients ausschließlich HTTPS-Verbindungen verlangen (HSTS-Richtlinie), sieht Google die 307 nicht, weil sie im Browser gecacht ist. Der erste Abruf ohne Cache liefert wahrscheinlich den Serverstatus 301 oder 302. Der Browser zeigt bei späteren Anfragen jedoch eine 307 an, was die Fehlersuche erschwert. Sie müssen eine frische Inkognito-Sitzung verwenden, um den zurückgegebenen Statuscode zu sehen.“

Was Googlebot bei HSTS tatsächlich sieht (und wie sich die Aussage entwickelt hat)

Zwei Google-Aussagen im Abstand von fünf Jahren sollte man zusammen lesen. Im Dezember 2015 sagte Zineb Ait Bahajji laut Search Engine Roundtable: “With HSTS implemented, Googlebot sees a 301 redirect (try it with Fetch as Google). The 307 is just an ‘internal redirect’.” (Übersetzung) „Bei aktiviertem HSTS sieht Googlebot eine 301-Weiterleitung (probieren Sie es mit Fetch as Google). Die 307 ist lediglich eine ,interne Weiterleitung‘.“ Im Oktober 2020 war Muellers Einordnung in einem Ask-Google-Webmasters-Video (über Search Engine Journal) anders: “In short, [Googlebot] doesn’t interact with them. 307 redirects are generally not real redirects.” (Übersetzung) „Kurz gesagt: [Googlebot] arbeitet damit nicht; diese 307-Weiterleitungen sind im Allgemeinen keine echten Weiterleitungen.“ In beiden Fällen sieht der Crawler nicht dieselbe 307 wie ein Mensch in Developer-Tools. Behandeln Sie die Aussage von 2020 als aktuelle Anleitung; die Aussage von 2015 ist nützliche Geschichte.

Die wichtige operative Schlussfolgerung: HSTS ist eine Komfortfunktion des Browsers, kein Mechanismus zur Erkennung durch Crawler. Website-Betreiber benötigen weiterhin eine echte serverseitige Weiterleitung (eine echte 301) für HTTP→HTTPS, wenn dieser Pfad für Crawler funktionieren soll.

Wie Bing eine 307 behandelt

Ehrlich gesagt gibt es hier eine Dokumentationslücke. Ich habe keine öffentliche Aussage von Bing gefunden, die 307 ausdrücklich oder speziell die HSTS-bedingte 307 behandelt. Bings Weiterleitungsleitfäden behandeln nur die dauerhafte-vs.-vorübergehende Trennung von 301 und 302 — 307, 308 und HSTS werden nicht erwähnt. Nehmen Sie daher keine Gleichheit mit Google an: Bing hat öffentlich nichts Spezifisches zu 307 gesagt. Das Phänomen ist unabhängig von der Suchmaschine real und für Crawler relevant — Screaming Frogs SEO Spider bietet deshalb einen Schalter „Respect HSTS Policy“ — aber das ist Tool-Dokumentation und keine Aussage von Bing.

Wann Sie bewusst eine 307 wählen

Wählen Sie eine 307 (statt einer 302), wenn der Verlust der ursprünglichen Methode oder des Bodys etwas beschädigen würde:

  • API-Endpunkte und Webhook-Ziele, die POST/PUT/PATCH empfangen.
  • Formularübermittlungen (POST), die nach der Verarbeitung weiterleiten.
  • Checkout-/Login-POST-Übergaben zwischen Hosts.
  • Alles, was einen Body trägt, den Sie nicht verlieren können.

Bei einem einfachen Seiten-zu-Seiten-Umzug sind 302 und 307 für Google nicht zu unterscheiden, daher sind beide aus SEO-Sicht in Ordnung. Bei der dauerhaften Variante derselben Methodenerhaltungslogik ist das die Beziehung 301 zu 308 — 308 verhält sich zu 301 wie 307 zu 302.

Meine eigene Präferenz aus dem Weiterleitungsleitfaden ist eindeutiger als das übliche „spielt keine Rolle“: “my preferred order would be: 307 / 302 / 303 > Meta refresh 0 / HTTP refresh 0.” (Übersetzung) „Meine bevorzugte Reihenfolge wäre: 307 / 302 / 303 > Meta refresh 0 / HTTP refresh 0.“ Ich setze 307 unter den vorübergehenden Optionen an die erste Stelle, weil sie bei der Methodenerhaltung zukunftssicher ist. Egal, was Sie wählen: Achten Sie darauf, dass eine echte 307 oder das HSTS-Artefakt nicht zu einem Hop in einer längeren Weiterleitungskette wird — jeder zusätzliche Hop bedeutet Latenz und verlorene Effizienz.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.