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.

  • If-Match: Der Server führt die Methode nur aus, wenn der übermittelte ETag mit dem aktuellen ETag der Ressource übereinstimmt.
  • If-Unmodified-Since: Die Methode wird nur verarbeitet, wenn die Ressource seit dem genannten Zeitpunkt nicht geändert wurde.
  • If-None-Match: Bei Methoden außerhalb von GET und HEAD kann ein übereinstimmender ETag zu 412 führen, etwa wenn eine Ressource nur angelegt werden darf, falls sie noch nicht existiert.
  • Anwendungsspezifische Bedingungen: APIs, Content-Management-Systeme, Web Application Firewalls oder vorgeschaltete Dienste können zusätzliche Prüfungen implementieren, die ebenfalls eine 412-Antwort auslösen.

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:

Der Client sendet 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.

StatuscodeBedeutungTypischer AuslöserReaktion des Clients
304 Not ModifiedEine gecachte Ressource ist weiterhin aktuell.Eine Bedingung bei GET oder HEAD ergibt, dass keine neue Übertragung erforderlich ist.Die vorhandene Cache-Version verwenden.
409 ConflictDie 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 FailedEine 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 RequiredDer 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.

  • Prüfe den vollständigen Request einschließlich Methode und Conditional Header.
  • Vergleiche die Antwort für Browser, Suchmaschinen-Crawler und interne Monitoring-Systeme.
  • Kontrolliere Server-, CDN- und Firewall-Logs für die betroffene URL.
  • Teste, ob der Fehler nur nach Änderungen, bei API-Aufrufen oder bei bestimmten User-Agents auftritt.
  • Stelle sicher, dass indexierbare URLs in der XML-Sitemap dauerhaft mit Statuscode 200 antworten.

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.

Ein 412-Fehler sollte nicht durch das pauschale Entfernen aller Vorbedingungen behoben werden. Bei PUT-, PATCH- oder DELETE-Anfragen können Conditional Header verhindern, dass parallele Änderungen verloren gehen. Prüfe zuerst, weshalb der Validator veraltet ist und ob der Client Konflikte korrekt auflösen kann.

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 anlegen

Hä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?

Kontaktieren Sie uns

SEO Agentur kostenlose SEO Potentialanalyse


Weitere Inhalte