Statuscode 412 Precondition Failed
Was ist der HTTP-Statuscode 412?
Der HTTP-Statuscode 412 „Precondition Failed“ bedeutet, dass mindestens eine im Request-Header formulierte Vorbedingung nicht erfüllt ist. Der Server führt die angeforderte Methode deshalb nicht aus. Der Code schützt Ressourcen insbesondere vor unbeabsichtigtem Überschreiben, wenn Clients mit ETags oder Zeitangaben prüfen, ob sich Daten zwischenzeitlich geändert haben.
Was bedeutet der Statuscode 412 „Precondition Failed“?
Der HTTP-Statuscode 412 „Precondition Failed“ gehört zur Klasse der 4xx-Client-Fehler. Er zeigt an, dass der Server die Anfrage grundsätzlich verstanden hat, eine vom Client festgelegte Bedingung jedoch als falsch bewertet. Die Anfrage scheitert damit am aktuellen Zustand der angesprochenen Ressource und nicht an einer unbekannten URL oder einer fehlerhaften HTTP-Syntax.
Ein Client kann eine HTTP-Anfrage an Bedingungen knüpfen, die in Header-Feldern wie If-Match, If-None-Match oder If-Unmodified-Since stehen. Der Server prüft diese Bedingungen unmittelbar vor der Verarbeitung. Ist mindestens eine maßgebliche Vorbedingung nicht erfüllt, kann er mit 412 antworten und beispielsweise eine veraltete Änderung ablehnen.
Wie entsteht ein 412-Fehler?
Ein 412-Fehler tritt häufig auf, wenn mehrere Clients dieselbe Ressource lesen und bearbeiten. Hat ein Client eine ältere Version gespeichert, während ein anderer Client die Ressource bereits geändert hat, stimmen der mitgesendete Validator und der aktuelle Zustand nicht mehr überein. Der Server verhindert dann, dass die neuere Version unbemerkt überschrieben wird.
Beispiel mit If-Match und ETag
Ein Client ruft einen Datensatz ab und erhält den ETag "version-7". Bevor er seine Änderung per PUT sendet, wurde der Datensatz auf dem Server aktualisiert und trägt nun den ETag "version-8". Der folgende Request enthält deshalb eine veraltete Vorbedingung:
If-Match: "version-7", während auf dem Server bereits "version-8" gilt. Der Server antwortet mit HTTP/1.1 412 Precondition Failed und führt den PUT-Request nicht aus. Der Client sollte anschließend die aktuelle Version abrufen, Änderungen abgleichen und einen neuen Request mit dem gültigen ETag senden.ETags sind Kennzeichnungen für eine bestimmte Version einer Ressource. Sie ermöglichen eine genauere Zustandsprüfung als Zeitstempel, weil Änderungszeiten je nach System nur eine begrenzte Genauigkeit besitzen können. Bei gleichzeitig vorhandenem If-Match und If-Unmodified-Since hat If-Match deshalb Vorrang.
Welche Vorbedingungen können den Fehler auslösen?
HTTP definiert eine feste Reihenfolge für die Auswertung mehrerer Bedingungen. Zuerst wird If-Match geprüft, danach gegebenenfalls If-Unmodified-Since. Anschließend folgen If-None-Match, If-Modified-Since und bei Bereichsanfragen If-Range. Diese Reihenfolge verhindert widersprüchliche Ergebnisse und bevorzugt präzise ETag-Prüfungen gegenüber Datumsangaben.
Der Server bewertet Vorbedingungen erst nach grundlegenden Prüfungen der Anfrage. Würde derselbe Request ohne Bedingungen bereits eine Weiterleitung oder einen anderen Fehler auslösen, hat dieses Ergebnis normalerweise Vorrang. Der Code 412 beschreibt daher gezielt das Scheitern einer tatsächlich ausgewerteten Bedingung.
Abgrenzung zu 304, 409 und 428
Der Unterschied zwischen 412 und verwandten HTTP-Statuscodes liegt im konkreten Grund der Ablehnung. Besonders häufig wird „Precondition Failed“ mit „Not Modified“, „Conflict“ oder „Precondition Required“ verwechselt.
| Statuscode | Bedeutung | Typischer Auslöser | Reaktion des Clients |
|---|---|---|---|
| 304 Not Modified | Eine gecachte Ressource ist weiterhin aktuell. | Eine Bedingung bei GET oder HEAD ergibt, dass keine neue Übertragung erforderlich ist. | Die vorhandene Cache-Version verwenden. |
| 409 Conflict | Die Anfrage steht in einem inhaltlichen Konflikt mit dem Zustand der Ressource. | Eine Änderung ist logisch nicht ausführbar, ohne dass eine konkrete HTTP-Vorbedingung gescheitert ist. | Konfliktursache analysieren und Daten anpassen. |
| 412 Precondition Failed | Eine im Request angegebene Vorbedingung ist falsch. | Ein ETag oder Änderungszeitpunkt entspricht nicht mehr dem aktuellen Ressourcenstand. | Aktuelle Ressource abrufen und Request neu aufbauen. |
| 428 Precondition Required | Der Server verlangt eine bedingte Anfrage. | Der Client sendet beispielsweise keinen erforderlichen If-Match-Header. | Validator abrufen und eine Vorbedingung ergänzen. |
Bei einem PATCH-Request eignet sich 412 für eine fehlgeschlagene, ausdrücklich mitgesendete Vorbedingung. Erkennt der Server dagegen einen Änderungskonflikt ohne entsprechenden Conditional Header, beschreibt 409 „Conflict“ den Sachverhalt genauer.
Welche Bedeutung hat der 412-Statuscode für SEO?
Ein vereinzelter 412-Statuscode verursacht keine pauschale Ranking-Abwertung. Für SEO entsteht ein Problem, wenn Suchmaschinen-Crawler wichtige Seiten wiederholt nicht abrufen können. Liefert eine indexierbare URL statt des erwarteten Statuscodes 200 regelmäßig eine 4xx-Antwort, kann dies Crawling, Indexierung und die Aktualisierung des Suchmaschinenbestands beeinträchtigen.
Normale GET-Anfragen von Suchmaschinen enthalten nicht zwingend Vorbedingungen, die 412 auslösen. Häufen sich solche Antworten beim Crawling, solltest du deshalb Serverregeln, Sicherheitsmodule, CDN-Konfigurationen, Plugins und individuelle API-Logik untersuchen. Auch eine fehlerhafte Behandlung von Request-Headern oder Bots kann die Ursache sein.
Ein technischer SEO-Audit erfasst fehlerhafte Statuscodes systematisch und ordnet sie nach ihrer Auswirkung auf Crawling und Indexierung ein. Für eine erste Bestandsaufnahme kannst du zusätzlich den kostenlosen SEO-Check für Technik und Metadaten verwenden.
Wie lässt sich „Precondition Failed“ beheben?
Die passende Lösung hängt davon ab, ob die Anfrage von einem Browser, einer API, einem CMS oder einem Crawler stammt. Bei beabsichtigter Versionskontrolle sollte der Client zuerst den aktuellen Datensatz samt ETag oder Änderungsdatum abrufen. Danach kann er lokale Änderungen zusammenführen und die Anfrage mit einem aktuellen Validator wiederholen.
Bei unbeabsichtigten 412-Antworten liegt die Ursache häufig in einer fehlerhaften Server- oder Sicherheitskonfiguration. Vergleiche einen funktionierenden und einen abgelehnten Request, prüfe Header-Manipulationen durch Proxys und kontrolliere die Regeln der Web Application Firewall. Ein SEO-Technik-Crawler hilft dabei, betroffene URLs wiederholt zu testen und Statusänderungen früh zu erkennen.
Performance Suite
Mit einem regelmäßigen Technik-Crawling kannst du 4xx- und 5xx-Antworten auf wichtigen SEO- und SEA-Zielseiten überwachen und technische Fehler priorisieren.
Free Account anlegenHäufige Fragen zum HTTP-Fehler 412
Kann ein Browser einen 412-Fehler anzeigen?
Ja. Ein Browser kann eine 412-Antwort anzeigen, wenn er selbst oder eine ausgeführte Webanwendung einen bedingten Request sendet. Häufiger tritt der Code jedoch bei APIs, Bearbeitungsoberflächen und automatisierten Clients auf.
Sollte ein Client einen 412-Request automatisch wiederholen?
Ein unveränderter Request sollte nicht automatisch wiederholt werden, weil dieselbe Vorbedingung erneut scheitern würde. Der Client muss zunächst den aktuellen Ressourcenstand abrufen und seinen Validator oder die zu übertragenden Daten aktualisieren.
Kann ein CDN den Statuscode 412 verursachen?
Ja. Ein CDN, Reverse Proxy oder eine Web Application Firewall kann Conditional Header verändern, entfernen oder nach eigenen Regeln auswerten. Zur Diagnose sollten deshalb sowohl die Antwort des vorgeschalteten Dienstes als auch die Antwort des Ursprungsservers geprüft werden.
Was bedeutet If-Match mit einem Sternchen?
If-Match mit dem Wert Sternchen bedeutet, dass die Methode nur ausgeführt werden soll, wenn für die Zielressource bereits eine aktuelle Darstellung existiert. Fehlt die Ressource, kann die Vorbedingung scheitern.
Kann 412 bei Google Ads Landingpages Kosten verursachen?
Eine Landingpage mit wiederkehrenden 412-Antworten kann für Nutzer und Prüfprozesse zeitweise nicht erreichbar sein. Dadurch können Anzeigenklicks auf eine fehlerhafte Zielseite führen. Beworbene URLs sollten deshalb regelmäßig ohne unerwartete 4xx-Antworten getestet werden.
Sie haben noch Fragen?


