Wenn du eine Webseite aufrufst, kommuniziert dein Browser im Hintergrund mit einem Webserver. Der Server beantwortet die Anfrage unter anderem mit einem HTTP-Statuscode.
Diese Statuscodes zeigen an, ob eine Anfrage erfolgreich verarbeitet wurde, ob eine Weiterleitung erfolgt, ob die angeforderte Ressource nicht gefunden wurde oder ob ein anderer Fehler aufgetreten ist.
Zu den wichtigsten Statuscodes für Website-Betreiber gehören 200, 301, 403, 404 und 500. Wer ihre Bedeutung kennt, kann viele Website-Probleme schneller einordnen und gezielter nach der tatsächlichen Ursache suchen.
Kurz erklärt: Ein HTTP-Statuscode ist eine standardisierte Antwort des Servers auf eine HTTP-Anfrage. Die erste Ziffer zeigt bereits, zu welcher Gruppe die Antwort gehört: Erfolg, Weiterleitung, Problem mit der Anfrage oder serverseitiger Fehler.
Was passiert beim Aufruf einer Webseite? #
Wenn du beispielsweise folgende Adresse aufrufst:
sendet dein Browser eine HTTP-Anfrage an den zuständigen Server.
Vereinfacht läuft der Vorgang so ab:
Browser
↓
HTTP-Anfrage
↓
Webserver
↓
HTTP-Antwort
↓
Statuscode + weitere Informationen + gegebenenfalls Inhalt
↓
Browser
Wenn alles funktioniert, erhält der Browser beispielsweise den Statuscode:
200 OK
Wurde die Seite dauerhaft verschoben, kann stattdessen 301 Moved Permanently zurückgegeben werden. Existiert sie nicht, kann die Antwort 404 Not Found lauten.
HTTP-Statuscode und sichtbare Webseite sind nicht dasselbe #
Ein Statuscode ist eine technische Information innerhalb der HTTP-Antwort. Besucher sehen normalerweise nicht einfach nur die Zahl 200, 404 oder 500.
Der Server kann zusätzlich eine HTML-Seite ausliefern, die der Browser darstellt.
Deshalb kann beispielsweise eine individuell gestaltete Fehlerseite erscheinen, während der Server technisch den Statuscode 404 zurückgibt.
Für eine zuverlässige Diagnose solltest du deshalb nicht ausschließlich danach beurteilen, wie eine Seite aussieht.
Die fünf Klassen der HTTP-Statuscodes #
HTTP-Statuscodes bestehen aus drei Ziffern. Die erste Ziffer ordnet die Antwort einer bestimmten Klasse zu.
| Bereich | Bedeutung | Vereinfacht |
|---|---|---|
1xx | Informational | Information zur laufenden Anfrage |
2xx | Successful | Anfrage erfolgreich |
3xx | Redirection | Weitere Aktion beziehungsweise Weiterleitung |
4xx | Client Error | Anfrage kann so nicht erfüllt werden |
5xx | Server Error | Server konnte eine grundsätzlich gültige Anfrage nicht erfolgreich verarbeiten |
Für den normalen Betrieb einer Website begegnen dir besonders häufig Codes aus den Bereichen 2xx, 3xx, 4xx und 5xx.
200 OK – Anfrage erfolgreich #
200 OK gehört zur Klasse der erfolgreichen HTTP-Antworten.
Bei einem normalen Seitenaufruf bedeutet dies vereinfacht, dass die Anfrage erfolgreich verarbeitet wurde und die angeforderte Ressource ausgeliefert werden kann.
Browser
↓
GET /kontakt/
↓
Server
↓
200 OK
↓
Kontaktseite wird ausgeliefert
Für eine regulär erreichbare HTML-Seite ist 200 OK deshalb ein typischer Statuscode.
200 bedeutet nicht automatisch, dass inhaltlich alles richtig ist #
Der Statuscode 200 sagt aus, dass die HTTP-Anfrage erfolgreich verarbeitet wurde. Er bewertet aber nicht die inhaltliche Qualität der ausgelieferten Seite.
Eine Seite kann beispielsweise technisch mit 200 OK antworten und trotzdem einen falschen Text, ein defektes Formular oder veraltete Informationen enthalten.
Auch eine falsch konfigurierte Fehlerseite kann unter Umständen optisch „Seite nicht gefunden“ anzeigen, obwohl der Server 200 OK liefert. Das wird häufig als Soft-404-Situation bezeichnet.
301 Moved Permanently – dauerhaft weitergeleitet #
Der Statuscode 301 Moved Permanently gehört zur Gruppe der 3xx-Antworten.
Er signalisiert, dass die angeforderte Ressource dauerhaft unter einer anderen URL erreichbar ist.
Beispiel:
https://example.com/alte-seite/
↓
301 Moved Permanently
↓
https://example.com/neue-seite/
Der Browser kann anschließend automatisch die neue Adresse aufrufen.
Eine 301-Weiterleitung ist beispielsweise sinnvoll, wenn sich die URL einer Seite dauerhaft geändert hat.
Die praktische Einrichtung erklären wir unter 301-Weiterleitung einrichten: URLs dauerhaft umleiten.
301 ist nicht der einzige Weiterleitungsstatus #
Neben 301 existieren weitere HTTP-Statuscodes für Weiterleitungen.
Wichtige Beispiele sind:
301 → dauerhaft
302 → temporär
307 → temporär, Methode bleibt erhalten
308 → dauerhaft, Methode bleibt erhalten
Die Unterschiede erklären wir ausführlich unter 301, 302, 307 und 308: HTTP-Weiterleitungen einfach erklärt.
403 Forbidden – Zugriff verweigert #
403 Forbidden gehört zur Gruppe der 4xx-Statuscodes.
Der Server hat die Anfrage erhalten und verstanden, verweigert aber den Zugriff auf die angeforderte Ressource.
Vereinfacht:
Browser fordert Ressource an
↓
Server versteht die Anfrage
↓
Zugriff wird nicht erlaubt
↓
403 Forbidden
Ein 403-Fehler unterscheidet sich damit deutlich von einem 404-Fehler.
403 und 404 nicht verwechseln #
Die beiden Statuscodes gehören zwar zur selben 4xx-Klasse, beschreiben aber unterschiedliche Situationen.
403 Forbidden
→ Zugriff auf die Ressource wird verweigert
404 Not Found
→ Ressource wurde unter dieser URL nicht gefunden
Bei der Fehlersuche ist diese Unterscheidung wichtig, weil die möglichen Ursachen und Lösungen unterschiedlich sind.
Was kann einen 403-Fehler verursachen? #
Ein 403-Status kann verschiedene Ursachen haben. Welche davon zutrifft, hängt von der jeweiligen Website- und Serverkonfiguration ab.
Mögliche Ursachen sind beispielsweise Zugriffsbeschränkungen, bestimmte Sicherheitsregeln oder unpassende Berechtigungen.
Auch Regeln in einer Konfigurationsdatei wie .htaccess können bei entsprechend konfigurierten Webservern eine Rolle spielen.
Wichtig: Ändere Dateiberechtigungen oder Sicherheitsregeln nicht wahllos, nur um einen 403-Fehler verschwinden zu lassen. Zuerst sollte geklärt werden, weshalb der Zugriff verweigert wird.
404 Not Found – Ressource nicht gefunden #
404 Not Found ist einer der bekanntesten HTTP-Statuscodes.
Er bedeutet, dass die angeforderte Ressource unter der aufgerufenen URL nicht gefunden wurde.
Beispiel:
https://example.com/nicht-vorhandene-seite/
↓
404 Not Found
Typische Ursachen sind gelöschte Seiten, geänderte URLs, fehlerhafte interne Links oder Tippfehler in einer Adresse.
Wie du solche Fehler richtig beurteilst und behandelst, erklären wir unter 404-Fehler finden und beheben.
Ein 404-Status kann vollkommen korrekt sein #
Wenn eine Ressource tatsächlich nicht existiert, ist eine entsprechende 404-Antwort nicht automatisch ein technischer Defekt.
Das Internet enthält beliebig viele denkbare URLs, die auf deiner Website nie existiert haben.
Wenn beispielsweise jemand folgende erfundene Adresse aufruft:
ist es grundsätzlich sinnvoll, dass der Server mitteilt, dass diese Ressource nicht gefunden wurde.
Problematisch wird ein 404 insbesondere dann, wenn eine wichtige Ressource eigentlich vorhanden sein sollte oder ein interner Link versehentlich auf eine nicht mehr vorhandene URL zeigt.
500 Internal Server Error – interner Serverfehler #
500 Internal Server Error gehört zur Klasse der 5xx-Statuscodes.
Der Statuscode zeigt an, dass der Server bei der Verarbeitung der Anfrage auf einen unerwarteten Zustand beziehungsweise Fehler gestoßen ist und die Anfrage deshalb nicht erfolgreich abschließen konnte.
Browser
↓
HTTP-Anfrage
↓
Server
↓
Fehler bei der Verarbeitung
↓
500 Internal Server Error
Im Gegensatz zu 404 liegt das Problem hier nicht einfach darin, dass eine bestimmte URL nicht gefunden wurde.
Was kann einen 500-Fehler verursachen? #
Ein 500-Fehler ist ein allgemeiner serverseitiger Fehlerstatus und verrät allein noch nicht die genaue Ursache.
Bei einer Website können beispielsweise fehlerhafte Anwendungscodes, problematische Konfigurationsregeln oder andere serverseitige Verarbeitungsfehler beteiligt sein.
Bei PHP-basierten Websites kann beispielsweise ein Fehler innerhalb einer Anwendung, eines Plugins, Themes oder eigenen Scripts eine Rolle spielen.
Auch eine fehlerhafte Konfigurationsanweisung kann unter bestimmten Bedingungen einen 500-Status auslösen.
Wichtig:
500 Internal Server Errorist eine Fehlerkategorie und keine vollständige Diagnose. Für die eigentliche Ursache müssen weitere Informationen wie Fehlerprotokolle und die zuletzt vorgenommenen Änderungen untersucht werden.
Was tun bei einem 500-Fehler? #
Prüfe zunächst, ob der Fehler nur eine einzelne URL oder die gesamte Website betrifft.
Überlege anschließend, ob unmittelbar zuvor Änderungen vorgenommen wurden.
Das können beispielsweise Änderungen an:
Plugins
Themes
PHP-Code
Konfigurationsdateien
PHP-Version
Dateien
Website-Anwendung
sein.
Wenn der Fehler direkt nach einer bestimmten Änderung aufgetreten ist, ist diese Information für die Fehlersuche besonders wertvoll.
Fehlerprotokolle statt blindem Ausprobieren #
Bei serverseitigen Fehlern solltest du nach Möglichkeit vorhandene Fehlerprotokolle beziehungsweise Logs heranziehen.
Ein Logeintrag kann deutlich konkretere Hinweise auf die Ursache liefern als die allgemeine Meldung 500 Internal Server Error.
Ändere nicht mehrere Einstellungen gleichzeitig auf Verdacht. Dadurch wird häufig schwerer nachvollziehbar, welche Änderung das Problem tatsächlich verursacht oder behoben hat.
500 bedeutet nicht automatisch, dass der ganze Server ausgefallen ist #
Ein 500-Fehler kann auch nur eine bestimmte Website, Anwendung oder einzelne Funktion betreffen.
Wenn beispielsweise ein fehlerhaftes Script nur auf einer bestimmten Seite ausgeführt wird, können andere Bereiche weiterhin funktionieren.
Deshalb solltest du zunächst prüfen, wie groß der tatsächlich betroffene Bereich ist.
Was ist der Unterschied zwischen 4xx und 5xx? #
Die Unterscheidung hilft bei der ersten Einordnung eines Problems.
| Statusklasse | Bedeutung | Beispiele |
|---|---|---|
4xx | Die Anfrage kann in der vorliegenden Form nicht erfüllt werden | 403, 404 |
5xx | Der Server konnte eine grundsätzlich gültige Anfrage nicht erfolgreich verarbeiten | 500, 502, 503, 504 |
Die Statusklasse liefert damit eine erste Richtung für die Fehlersuche, ersetzt aber keine konkrete Diagnose.
Weitere häufige 2xx-Statuscodes #
Neben 200 OK gibt es weitere erfolgreiche Statuscodes.
Beispielsweise bedeutet 201 Created, dass eine Anfrage erfolgreich war und dabei eine neue Ressource erstellt wurde.
204 No Content bedeutet, dass die Anfrage erfolgreich verarbeitet wurde, aber kein Nachrichteninhalt zurückgegeben wird.
Solche Codes begegnen Website-Betreibern seltener beim normalen Aufruf einer HTML-Seite, spielen aber beispielsweise bei Webanwendungen und APIs eine Rolle.
Weitere häufige 4xx-Statuscodes #
Neben 403 und 404 existieren weitere Statuscodes dieser Klasse.
Einige Beispiele:
400 Bad Request
→ Anfrage ist fehlerhaft oder kann nicht verarbeitet werden
401 Unauthorized
→ Authentifizierung ist erforderlich beziehungsweise fehlt
403 Forbidden
→ Zugriff wird verweigert
404 Not Found
→ Ressource nicht gefunden
429 Too Many Requests
→ zu viele Anfragen in einem bestimmten Zeitraum
Die genaue Interpretation sollte immer im Kontext der jeweiligen Anwendung erfolgen.
401 und 403 sind nicht dasselbe #
Die Bezeichnungen können im Alltag zu Verwechslungen führen.
401 Unauthorized wird verwendet, wenn für den Zugriff eine gültige Authentifizierung erforderlich ist.
403 Forbidden bedeutet dagegen, dass der Server die Anfrage versteht, den Zugriff jedoch verweigert.
Die beiden Statuscodes sollten deshalb nicht einfach synonym verwendet werden.
Weitere häufige 5xx-Statuscodes #
Auch im Bereich der Serverfehler gibt es mehrere wichtige Statuscodes.
500 Internal Server Error
→ allgemeiner interner Serverfehler
502 Bad Gateway
→ ungültige Antwort von einem vorgeschalteten/upstream Server
503 Service Unavailable
→ Dienst derzeit nicht verfügbar
504 Gateway Timeout
→ vorgeschalteter/upstream Server antwortete nicht rechtzeitig
Gerade bei Websites mit Reverse Proxies, mehreren Serverdiensten oder externen Komponenten kann die Unterscheidung dieser Codes bei der Diagnose hilfreich sein.
503 Service Unavailable #
503 Service Unavailable bedeutet, dass der Server beziehungsweise Dienst die Anfrage derzeit nicht bearbeiten kann.
Das kann beispielsweise mit einer vorübergehenden Überlastung oder Wartung zusammenhängen.
Ein 503-Status beschreibt damit eine andere Situation als ein allgemeiner 500 Internal Server Error.
502 Bad Gateway und 504 Gateway Timeout #
Diese Statuscodes treten häufig in Architekturen auf, bei denen ein Server beziehungsweise Gateway mit einem weiteren Dienst kommuniziert.
502 Bad Gateway weist darauf hin, dass dabei eine ungültige Antwort empfangen wurde.
504 Gateway Timeout bedeutet dagegen, dass eine erforderliche Antwort nicht rechtzeitig eingetroffen ist.
Für Website-Betreiber ist diese Unterscheidung hilfreich, weil nicht jeder 5xx-Fehler dieselbe Ursache hat.
HTTP-Statuscodes und SEO #
HTTP-Statuscodes helfen auch Suchmaschinen dabei zu verstehen, was mit einer URL passiert.
Einige vereinfachte Beispiele:
200
→ Ressource erfolgreich erreichbar
301
→ Ressource dauerhaft verschoben
404
→ Ressource unter dieser URL nicht gefunden
5xx
→ serverseitiges Problem beim Abruf
Deshalb ist es wichtig, dass der technische Status möglichst zur tatsächlichen Situation der URL passt.
Eine Fehlerseite mit 200 OK kann problematisch sein #
Angenommen, eine URL existiert nicht. Statt eines 404-Status liefert der Server jedoch eine Fehlerseite mit:
200 OK
Technisch teilt der Server damit mit, dass die Anfrage erfolgreich war, obwohl der gewünschte Inhalt nicht vorhanden ist.
Eine solche Konstellation kann Suchmaschinen und Diagnosewerkzeuge unnötig verwirren.
Eine echte nicht vorhandene Ressource sollte deshalb nicht allein durch das Design einer Fehlerseite simuliert werden.
Eine Weiterleitung ist nicht dasselbe wie eine Fehlerseite #
Bei einer Weiterleitung erhält der Client einen 3xx-Status und eine neue Zieladresse.
Bei einem 404-Fehler wird dagegen mitgeteilt, dass die Ressource nicht gefunden wurde.
301
alte URL
↓
neue URL
404
angeforderte URL
↓
Ressource nicht gefunden
Welche Antwort korrekt ist, hängt davon ab, was mit der ursprünglichen Ressource tatsächlich passiert ist.
Wie kann ich den HTTP-Statuscode einer URL prüfen? #
Für eine technische Kontrolle kannst du beispielsweise die Entwicklerwerkzeuge eines modernen Browsers verwenden.
Öffne dort die Netzwerkansicht und lade anschließend die betreffende URL.
Du kannst dann die einzelnen HTTP-Anfragen und ihre Statuscodes untersuchen.
Je nach Browser werden beispielsweise Werte wie 200, 301, 404 oder 500 direkt in der Übersicht angezeigt.
Weiterleitungen im Browser richtig prüfen #
Bei einer Weiterleitung zeigt die Adresszeile nach dem Vorgang normalerweise bereits die neue Zieladresse.
Dadurch siehst du aber nicht zwangsläufig, welcher Statuscode für den vorherigen Schritt verwendet wurde.
In der Netzwerkansicht kannst du dagegen die Weiterleitungskette untersuchen.
GET /alte-url/
301
GET /neue-url/
200
Damit lässt sich erkennen, dass die alte URL mit 301 weitergeleitet und das neue Ziel anschließend erfolgreich mit 200 ausgeliefert wurde.
Mehrere Statuscodes können zu einem einzigen Seitenaufruf gehören #
Eine moderne Webseite besteht normalerweise aus mehr als nur dem HTML-Dokument.
Der Browser lädt zusätzlich beispielsweise Bilder, Stylesheets, JavaScript-Dateien und andere Ressourcen.
Deshalb können in der Netzwerkansicht bei einem einzigen Seitenaufruf zahlreiche HTTP-Anfragen mit unterschiedlichen Statuscodes erscheinen.
Wenn du eine bestimmte Seiten-URL untersuchen möchtest, achte darauf, dass du tatsächlich die Antwort für das entsprechende Dokument und nicht versehentlich nur eine Bild- oder Scriptdatei beurteilst.
Statuscode zuerst prüfen, dann Ursache suchen #
Bei einer nicht funktionierenden Website lohnt es sich, zunächst festzustellen, welche Art von Problem überhaupt vorliegt.
Seite funktioniert nicht wie erwartet
↓
HTTP-Status prüfen
↓
200? → Inhalt/Funktion genauer untersuchen
301? → Weiterleitungsziel prüfen
403? → Zugriff/Berechtigung/Sicherheitsregel prüfen
404? → URL/Ressource prüfen
500? → serverseitigen Fehler untersuchen
Diese erste Einordnung kann verhindern, dass du an der falschen Stelle nach der Ursache suchst.
Nicht mehrere Einstellungen gleichzeitig verändern #
Wenn ein Fehler auftritt, solltest du nicht wahllos DNS, PHP, Dateiberechtigungen, Weiterleitungen und andere Einstellungen gleichzeitig verändern.
Ermittle zuerst, welcher Statuscode vorliegt und welche Ebene wahrscheinlich betroffen ist.
Überlege außerdem, welche Änderung unmittelbar vor dem Auftreten des Problems vorgenommen wurde.
Praxis-Tipp: Gute Fehlersuche beginnt mit Beobachten und Eingrenzen. Erst danach sollte eine konkrete Einstellung verändert werden.
HTTP-Statuscodes bei einem Website-Relaunch #
Nach einem Relaunch sind insbesondere die Statuscodes 200, 301 und 404 interessant.
Wichtige neue URLs sollten erfolgreich erreichbar sein. Alte URLs mit einem eindeutigen neuen Nachfolger sollten korrekt weitergeleitet werden. Nicht vorhandene URLs ohne sinnvollen Ersatz können dagegen weiterhin einen passenden Fehlerstatus liefern.
Ein vereinfachter Relaunch-Check sieht beispielsweise so aus:
Neue wichtige URL
→ 200
Alte URL mit Nachfolger
→ 301 → neue URL → 200
Nicht vorhandene URL ohne Nachfolger
→ 404
Statuscodes und Website-Monitoring #
Auch Monitoring-Systeme können HTTP-Statuscodes verwenden, um die Erreichbarkeit einer Website zu überprüfen.
Wenn eine normalerweise mit 200 antwortende Seite plötzlich einen Fehlerstatus liefert, kann dies auf ein Problem hinweisen.
Eine bloße HTTP-Antwort bedeutet deshalb nicht zwangsläufig, dass eine Website vollständig korrekt funktioniert. Entscheidend ist auch, welcher Status zurückgegeben wird und welches Verhalten für die überwachte URL erwartet wird.
Das Thema behandeln wir später ausführlich unter Website-Monitoring: Erreichbarkeit und Ausfälle überwachen.
Die wichtigsten Statuscodes im Überblick #
| Code | Name | Bedeutung |
|---|---|---|
200 | OK | Anfrage erfolgreich |
301 | Moved Permanently | Ressource dauerhaft verschoben |
302 | Found | Temporäre Weiterleitung |
307 | Temporary Redirect | Temporäre Weiterleitung bei Erhalt der Methode |
308 | Permanent Redirect | Dauerhafte Weiterleitung bei Erhalt der Methode |
400 | Bad Request | Anfrage kann nicht korrekt verarbeitet werden |
401 | Unauthorized | Authentifizierung erforderlich |
403 | Forbidden | Zugriff verweigert |
404 | Not Found | Ressource nicht gefunden |
429 | Too Many Requests | Zu viele Anfragen |
500 | Internal Server Error | Allgemeiner interner Serverfehler |
502 | Bad Gateway | Ungültige Antwort eines vorgeschalteten Dienstes |
503 | Service Unavailable | Dienst derzeit nicht verfügbar |
504 | Gateway Timeout | Antwort eines vorgeschalteten Dienstes nicht rechtzeitig erhalten |
Zusammenfassung #
HTTP-Statuscodes sind standardisierte Antworten eines Servers auf HTTP-Anfragen. Sie helfen Browsern, Suchmaschinen, Monitoring-Systemen und Website-Betreibern zu verstehen, was mit einer Anfrage passiert ist.
200 OK steht für eine erfolgreiche Anfrage. 301 Moved Permanently kennzeichnet eine dauerhafte Weiterleitung. 403 Forbidden bedeutet, dass der Zugriff verweigert wird. 404 Not Found zeigt an, dass eine Ressource unter der angeforderten URL nicht gefunden wurde. 500 Internal Server Error weist auf einen serverseitigen Fehler bei der Verarbeitung hin.
Die erste Ziffer eines Statuscodes liefert bereits eine wichtige Orientierung: 2xx steht für erfolgreiche Antworten, 3xx für Weiterleitungen, 4xx für Probleme bei der Erfüllung einer Anfrage und 5xx für serverseitige Fehler.
Bei der Fehlersuche solltest du deshalb zunächst den tatsächlichen HTTP-Status prüfen und erst anschließend die mögliche Ursache untersuchen.
Der Statuscode löst ein Problem nicht – aber er zeigt dir häufig, in welcher Richtung du nach der Ursache suchen solltest.