Jede HTTP-Antwort beginnt mit einer dreistelligen Zahl, und diese Zahl ist die kürzestmögliche Auskunft des Servers darüber, was mit deiner Anfrage passiert ist. Meistens siehst du sie nie: die Seite lädt, der Browser macht weiter. Sichtbar wird die Zahl erst, wenn etwas schiefgeht – also genau dann, wenn du wissen musst, was sie bedeutet.
Statuscodes sind aber nicht nur Diagnose, sondern Anweisungen. Ein 301 sagt einer Suchmaschine, ihren Indexeintrag dauerhaft zu verschieben; ein 429 sagt einem Client genau, wie er sich zurücknehmen soll; ein 503 sagt einem Crawler, später wiederzukommen statt deine Seite zu entfernen. Den falschen Code zurückzugeben ist eine der leisesten Möglichkeiten, Traffic zu verlieren, denn sichtbar geht nichts kaputt. Dieser Leitfaden geht jede Klasse durch, die Codes, denen du wirklich begegnest, und wie du prüfst, was eine URL tatsächlich zurückgibt.
Warum Statuscodes wichtig sind
Vier Zielgruppen lesen deine Statuscodes, und jede handelt anders:
- Browser. Sie entscheiden, ob sie einer Weiterleitung folgen, eine Kopie aus dem Cache wiederverwenden und einen Formularinhalt erneut senden.
- Suchmaschinen. Der Code entscheidet, ob eine URL indexiert, mit einer anderen zusammengeführt, später erneut versucht oder verworfen wird. Eine freundliche „Nicht gefunden“-Seite mit
200auszuliefern ist der klassische Fehler: dem Crawler wird gesagt, die Seite existiere, und er behält sie im Index. - API-Clients. Gut geschriebene Clients verzweigen anhand des Codes. Ein
429oder503lohnt einen erneuten Versuch; ein400nie, denn eine fehlerhafte Anfrage erneut zu senden erzeugt denselben Fehler. - Dein eigenes Monitoring. Fehlerquoten und Alarme bauen fast immer auf Statuscodes auf. Ein Dienst, der
200mit einem Fehler im Rumpf zurückgibt, ist für seine eigenen Dashboards unsichtbar.
Die fünf Klassen
Die erste Ziffer sagt dir, wer verantwortlich ist und was als Nächstes zu tun ist. Wenn du nur eines behältst, dann diese Tabelle.
| Klasse | Bedeutung | Was der Client tun soll |
|---|---|---|
1xx | Information: Anfrage erhalten, Verarbeitung läuft | Warten; du siehst sie selten |
2xx | Erfolg: Anfrage erhalten, verstanden und angenommen | Antwort verwenden |
3xx | Weiterleitung: die Ressource liegt anderswo | Dem Location-Header folgen |
4xx | Client-Fehler: die Anfrage war falsch | Anfrage korrigieren, nicht blind wiederholen |
5xx | Server-Fehler: die Anfrage war in Ordnung, der Server versagte | Mit zunehmender Wartezeit wiederholen |
Die Trennung zwischen 4xx und 5xx ist praktisch die wichtigste, denn sie beantwortet die einzige Frage, die während eines Vorfalls zählt: muss ich das beheben oder die andere Seite?
Die Codes, denen du wirklich begegnest
Es gibt Dutzende registrierte Codes, aber ein Arbeitstag umfasst vielleicht fünfzehn. Die Erfolgscodes sind die einfachsten. 200 OK ist die normale Antwort. 201 Created ist die richtige Antwort auf ein POST, das etwas erzeugt hat, und sollte einen Location-Header auf die neue Ressource tragen. 204 No Content sagt, die Anfrage war erfolgreich und es gibt absichtlich nichts zurückzusenden – die richtige Antwort auf ein DELETE. 206 Partial Content ist das, was Videosprünge und fortsetzbare Downloads möglich macht.
Weiterleitungen: 301, 302, 307 und 308
Weiterleitungen verursachen mehr SEO-Schaden als jede andere Klasse, fast immer weil die dauerhafte und die temporäre Form vertauscht werden.
301 Moved Permanently– die URL hat sich endgültig geändert. Suchmaschinen übertragen Ranking-Signale auf die neue Adresse und ersetzen die alte irgendwann im Index. Verwende es für Domain-Umzüge, den Wechsel von HTTP zu HTTPS und das Hinzufügen oder Entfernen vonwww.302 Found– temporär. Die alte URL bleibt indexiert, weil du gesagt hast, sie kommt zurück. Verwende es für A/B-Tests, kurze Wartungsfenster und Geo-Routing, das du rückgängig machen willst.307 Temporary Redirect– wie302, aber Methode und Rumpf bleiben garantiert erhalten. Ein mit307weitergeleitetesPOSTkommt alsPOSTan; historisch machten manche Clients aus einem weitergeleitetenPOSTeinGET.308 Permanent Redirect– das dauerhafte Gegenstück zu307: dieselbe Caching-Semantik wie301, mit erhaltener Methode.304 Not Modified– eigentlich keine Weiterleitung. Es antwortet auf eine bedingte Anfrage und heißt „deine Kopie im Cache ist noch gültig“ – deshalb überträgt eine gut konfigurierte Website weit weniger Daten, als ihr Seitengewicht vermuten lässt.
Zwei Regeln: verkette nie Weiterleitungen, wo ein Sprung genügt, denn jeder Sprung kostet Latenz und Crawl-Budget; und leite nie alle fehlenden Seiten auf die Startseite. Das Zweite sieht ordentlich aus und erzählt Nutzern wie Crawlern etwas Falsches.
Client-Fehler: 400, 401, 403, 404 und 429
Die 4xx-Familie sagt, dass die Anfrage selbst das Problem war. Die Unterschiede lohnen sich, denn Clients verhalten sich bei jedem anders.
400 Bad Request– fehlerhafte Syntax: kaputtes JSON, ein fehlendes Pflichtfeld, ein nicht interpretierbarer Parameter. So wie gesendet nie wiederholbar.401 Unauthorized– falsch benannt; es bedeutet nicht authentifiziert. Keine Zugangsdaten oder solche, die der Server nicht prüfen konnte. Sollte einenWWW-Authenticate-Header enthalten.403 Forbidden– der Server weiß, wer du bist, und du darfst es trotzdem nicht. Erneutes Anmelden hilft nicht.404 Not Found– unter dieser URL existiert nichts. Der Server sagt nicht, ob je etwas existierte.405 Method Not Allowed– die URL existiert, aber nicht für dieses Verb. Füge einenAllow-Header mit den erlaubten hinzu.409 Conflict– die Anfrage kollidiert mit dem aktuellen Zustand, etwa ein doppelter Schlüssel oder eine veraltete Version.410 Gone– die Ressource existierte und wurde absichtlich entfernt. Suchmaschinen verwerfen ein410schneller als ein404, also die bessere Wahl, wenn du Inhalte bewusst zurückgezogen hast.422 Unprocessable Content– die Syntax ließ sich lesen, aber die Werte scheitern an der Validierung. Nützlich, um „ich kann das nicht lesen“ von „ich habe es gelesen und es ist falsch“ zu trennen.429 Too Many Requests– du hast ein Ratenlimit überschritten. Immer mit einemRetry-After-Header kombinieren; ohne ihn wiederholen Clients sofort und verschärfen die Überlast.
Server-Fehler: 500, 502, 503 und 504
Ein 5xx heißt, deine Anfrage war vernünftig und der Server versagte dennoch. Die vier häufigen zeigen auf verschiedene Schichten, was sie bei einem Vorfall wirklich nützlich macht.
500 Internal Server Error– eine unbehandelte Ausnahme in der Anwendung. Der generische Sammelcode und das Erste, wonach man in den Logs sucht.502 Bad Gateway– ein Proxy oder Load Balancer erhielt eine ungültige oder leere Antwort vom Backend. Meist ist die Anwendung hinter dem Proxy abgestürzt oder hat nicht gelauscht.503 Service Unavailable– der Server ist überlastet oder in Wartung. Das ist der einzige Code der Familie, den du absichtlich zurückgeben solltest, mitRetry-After-Header, während geplanter Ausfallzeit: Crawler behalten die Seite und kommen wieder.504 Gateway Timeout– der Proxy hat auf das Backend gewartet und aufgegeben. Deutet auf eine langsame Abhängigkeit statt auf einen Absturz.
Während eines Ausfalls sagt dir der Unterschied zwischen 502 und 504, ob deine Anwendung gestorben oder nur langsam geworden ist – oft der schnellste verfügbare Hinweis.
Statuscodes und SEO
Suchmaschinen behandeln den Statuscode als die verbindliche Aussage über eine URL und vertrauen ihm mehr als allem im Seitenrumpf. Daraus folgen vier Dinge:
- Soft-404s verschwenden Crawl-Budget. Eine „Seite nicht gefunden“-Meldung mit
200hält eine tote URL im Index, wo sie mit deinen echten Seiten konkurriert. Gib ein echtes404oder410zurück. - Nutze
301für dauerhafte Umzüge. Ein302bei einem echten Umzug lässt die alte URL im Index und teilt die Signale auf zwei Adressen auf. - Halte Weiterleitungsketten kurz. Jeder Sprung kostet Latenz, und Crawler folgen nur einer begrenzten Anzahl, bevor sie aufgeben. Lass die alte URL direkt auf das Endziel zeigen.
- Gib während der Wartung
503zurück. Ein503mitRetry-Aftersagt einem Crawler, wiederzukommen. Ein Timeout oder ein500sieht wie eine kaputte Website aus.
Weiterleitungen hängen auch mit HTTPS zusammen. Steht deine Weiterleitung von http:// auf https://, ist aber das Zertifikat ungültig oder abgelaufen, sehen Besucher eine Browser-Warnung, bevor die Weiterleitung überhaupt zählt. Es lohnt sich also, das Zertifikat gleich mit dem SSL Checker zu kontrollieren.
So prüfst du einen Statuscode
Dein Browser verbirgt den Code bei erfolgreichem Laden, du musst ihn also ausdrücklich erfragen. Drei verlässliche Wege:
- Das Netzwerk-Panel des Browsers. Entwicklertools öffnen, neu laden und die Spalte Status lesen. Das zeigt die ganze Weiterleitungskette, was eine einzelne Zahl nicht kann.
curl -I https://example.com. EineHEAD-Anfrage gibt Statuszeile und Header aus, ohne den Rumpf zu laden. Mit-Lfolgst du Weiterleitungen und siehst jeden Sprung.- Eine durchsuchbare Referenz. Wenn du die Zahl hast und Bedeutung, Pflichten und typische Ursachen brauchst, listet unsere Referenz der HTTP-Statuscodes jeden Code samt Handlungsempfehlung.
Zwei Dinge jenseits der Zahl selbst. Erstens: teste genau die URL, die ein Nutzer aufrufen würde, mit oder ohne Schrägstrich am Ende, denn beide lösen oft unterschiedlich auf. Zweitens: ist die Antwort ein 429, lies den Wert von Retry-After und prüfe, ob die Wartelogik deines Clients ihn wirklich beachtet; der Ratenlimit-Rechner macht aus einem Limit konkrete Abstände.
Häufige Fehler, die du vermeiden solltest
200mit einem Fehler im Rumpf zurückgeben. Monitoring, Caches, Crawler und Clients lesen den Code, nicht dein JSON. Der folgenreichste Fehler der Liste.302für einen dauerhaften Umzug. Ranking-Signale bleiben an der alten URL, manchmal monatelang.- Alle 404 auf die Startseite leiten. Das verbirgt defekte Links vor dir und erzeugt Soft-404s für Crawler.
403, wo401hingehört. Ein Client mit403versucht keine Anmeldung, denn403sagt, dass Authentifizierung nicht das Problem ist.429ohneRetry-After. Clients raten dann, meist auf „sofort“ – genau das Verhalten, das das Limit verhindern soll.- Wartung als Timeout ausliefern. Gib
503mitRetry-Afterzurück, damit deine Indexeinträge erhalten bleiben. - Lange Weiterleitungsketten nach einer Migration. Jede Migration fügt einen Sprung hinzu; fasse sie beim nächsten Eingriff in die Regeln zu einem zusammen.
Prüfe deine eigenen Statuscodes
Statuscodes sind die günstigste Diagnose im Web: eine Zahl, keine Anmeldung und eine eindeutige Antwort darauf, ob eine URL funktioniert, umgezogen ist oder versagt hat. Prüfe zuerst, was deine wichtigen Seiten zurückgeben, stelle sicher, dass deine Weiterleitungen dort dauerhaft sind, wo sie es sein sollen, und dort temporär, wo es nötig ist, und sorge dafür, dass jeder Fehlerpfad einen Code zurückgibt, der zum Geschehenen passt.
Verwandte Tools und Leitfäden:
- HTTP-Statuscodes – durchsuchbare Referenz für jeden Antwortcode.
- Ratenlimit-Rechner – macht aus einem Limit sichere Abstände und ein
Retry-After. - DNS-Abfrage – prüfe, ob eine Domain auflöst, bevor du ihre Antworten debuggst.
- SSL Checker – kontrolliere das Zertifikat hinter deiner HTTPS-Weiterleitung.
- 301 oder 302: Welche Weiterleitung, und was SEO sieht - welche Weiterleitung passt und was jede für dein Ranking bedeutet.
- 404 oder 410: Was beides Google über eine gelöschte Seite sagt - was jeder Code Google über eine gelöschte Seite sagt.
Häufige Fragen
Warum kostet ein 302 bei einem dauerhaften Umzug Platzierungen?⌄
Weil ein 302 Suchmaschinen sagt, die alte URL komme zurück: sie halten sie im Index und lassen die Ranking-Signale dort. Deine neue URL konkurriert dann mit der alten, statt von ihr zu erben, und die Teilung kann Monate anhalten. Der 301 ist die Anweisung, den Indexeintrag zu verschieben und diese Signale zu übertragen — genau das, was ein dauerhafter Umzug braucht.
Wie viele Weiterleitungssprünge sind zu viele?⌄
Einer ist das Ziel, zwei sind erträglich; darüber hinaus zahlst du bei jedem Besuch Latenz und verbrauchst Crawl-Budget, das echten Seiten zugutekommen könnte. Crawler folgen nur einer begrenzten Zahl von Sprüngen, bevor sie aufgeben, also kann eine über mehrere Migrationen gewachsene Kette die Zielseite unerreichbar machen. Lass beim nächsten Eingriff in die Regeln jede alte URL direkt auf ihr Endziel zeigen.
Was soll eine API zurückgeben, wenn ein Client ein Ratenlimit erreicht?⌄
Ein 429 Too Many Requests mit einem Retry-After-Header, der die Wartezeit in Sekunden angibt. Ein 403 oder 500 nimmt Clients jede Möglichkeit, sich korrekt zu verhalten: sie wiederholen sofort und verschärfen die Überlast. Der Ratenlimit-Rechner bestimmt für dich einen sinnvollen Abstand und Retry-After-Wert.
Woran erkenne ich, ob ein Ausfall meine Anwendung oder eine langsame Abhängigkeit ist?⌄
Lies den Code, den dein Proxy zurückgibt. Ein 502 heißt, er bekam eine ungültige oder leere Antwort vom Backend, die Anwendung dahinter ist also abgestürzt oder hat nicht gelauscht. Ein 504 heißt, er hat auf das Backend gewartet und aufgegeben, was auf etwas Langsames statt etwas Totes deutet. Diese eine Ziffer ist bei einem Vorfall oft der schnellste Hinweis.
Warum heißt 401 Unauthorized, wenn es nicht authentifiziert bedeutet?⌄
Das ist ein Benennungsunfall der ursprünglichen Spezifikation, der nie korrigiert wurde. In der Praxis heißt 401, dass die Anfrage keine oder vom Server nicht prüfbare Zugangsdaten enthielt, und sie sollte einen WWW-Authenticate-Header tragen. 403 Forbidden ist der Code für eine erfolgreich authentifizierte, aber dennoch nicht erlaubte Anfrage.
Wie sehe ich den Statuscode einer Seite im Browser?⌄
Öffne die Entwicklertools, wechsle ins Netzwerk-Panel, lade die Seite neu und lies die Spalte Status für das Hauptdokument. Diese Ansicht zeigt außerdem jeden Sprung einer Weiterleitungskette, was ein einzelner Code nicht kann. Im Terminal gibt curl -I die Statuszeile ohne den Rumpf aus, und mit -L folgst du Weiterleitungen.
Über 15 Jahre praktische Erfahrung in Webentwicklung und Sicherheit. Schwerpunkt ist praxisnahe Websicherheit: Websites sicher, zuverlässig und leicht zu diagnostizieren halten. BuildToolForge macht diese Prüfungen kostenlos, privat und verständlich. Die Tools laufen, wo immer möglich, in deinem Browser, und nichts, was du in ein Tool eingibst, wird gespeichert.
So schreiben wir unsere Anleitungen: Jede Anleitung entsteht aus praktischer Erfahrung, wird mit den offiziellen Standards abgeglichen und mit unseren eigenen Tools an echten Domains getestet. Wir aktualisieren die Anleitungen, wenn sich Standards oder Tools ändern. Einen Fehler gefunden? Schreib uns an contact@buildtoolforge.com.