HTTP-Statuscode ermitteln

HTTP-Statuscode ermitteln

0 von 10
Weiterleitungen werden nicht verfolgt, das Ziel steht als Location dabei.

Jede Antwort eines Webservers beginnt mit einer dreistelligen Zahl. Diese Zahl sagt dir, ob eine Seite ausgeliefert wurde, weitergeleitet wird oder gar nicht existiert. Für alles, was mit Weiterleitungen, Relaunches oder Indexierung zu tun hat, ist der Statuscode die erste Information, die du brauchst.

Mit dem Tool oben prüfst du bis zu zehn Adressen auf einmal. Weiter unten zeige ich dir, wie du denselben Wert im Browser, per Kommandozeile und im Server-Log findest.

Was der Statuscode überhaupt aussagt

Der Statuscode gehört zum HTTP-Header, also zu dem Teil der Antwort, den du im Browserfenster nie zu sehen bekommst. Der Server schickt ihn vor dem eigentlichen Seiteninhalt. Erst danach folgt das HTML.

Wichtig dabei: Was du auf dem Bildschirm siehst, muss nicht zum Statuscode passen. Eine hübsch gestaltete Fehlerseite mit der Aufschrift "Seite nicht gefunden" kann technisch mit Code 200 ausgeliefert werden. Für Besucher sieht das identisch aus, für Suchmaschinen ist es ein gewaltiger Unterschied: Google hält diese Seite dann für vollwertigen Inhalt und nimmt sie in den Index auf. Solche Fälle nennt man Soft 404, und sie fallen ohne Statuscode-Prüfung schlicht nicht auf.

Die fünf Gruppen

Die erste Ziffer verrät bereits, worum es geht:

Für die tägliche Arbeit reichen eine Handvoll Codes aus:

200 OK

Der Normalfall. Die Seite existiert und wurde ausgeliefert. Wenn du eine Liste prüfst und überall 200 steht, ist alles in Ordnung.

301 Moved Permanently

Die dauerhafte Weiterleitung. Suchmaschinen übertragen die Signale der alten Adresse auf die neue und ersetzen die URL im Index. Das ist der Code, den du nach einem Domainumzug oder einer Umstrukturierung brauchst.

302 Found und 307 Temporary Redirect

Temporäre Weiterleitungen. Die alte Adresse bleibt im Index, weil der Server signalisiert, dass sie später wieder gilt. Wer versehentlich 302 statt 301 setzt, wundert sich hinterher, warum die alte URL nicht verschwindet. Das ist einer der häufigsten Fehler überhaupt, oft weil ein Plugin oder Framework 302 als Voreinstellung verwendet.

404 Not Found

Die Adresse existiert nicht. Für Besucher ärgerlich, technisch aber sauber. Ein 404 ist keine Katastrophe, solange keine wertvollen Links darauf zeigen.

410 Gone

Die deutlichere Variante von 404: Der Inhalt existierte, wurde aber bewusst entfernt und kommt nicht zurück. Suchmaschinen nehmen solche Seiten in der Regel schneller aus dem Index als bei 404.

500 und 503

Bei 500 ist etwas im Server oder im Skript kaputt. 503 bedeutet, dass der Dienst vorübergehend nicht verfügbar ist, etwa bei Wartungsarbeiten. Für geplante Wartungen ist 503 die richtige Wahl, weil Suchmaschinen dann später wiederkommen, statt die Seite als defekt einzustufen.

Statuscode im Browser ablesen

Jeder aktuelle Browser bringt die nötigen Werkzeuge mit, du brauchst keine Erweiterung. Öffne mit F12 die Entwicklerwerkzeuge und wechsle auf den Reiter "Netzwerkanalyse" beziehungsweise "Network". Lade die Seite neu, und in der Liste steht zu jeder Anfrage der Statuscode.

Zwei Kleinigkeiten machen den Unterschied:

Bei Weiterleitungen zeigt die Liste jeden Schritt einzeln. So erkennst du auch Ketten, bei denen drei oder vier Umleitungen hintereinander laufen.

Per Kommandozeile prüfen

Auf der Kommandozeile geht es schneller, und es lässt sich automatisieren. Unter Linux, macOS und im aktuellen Windows steht curl bereit:

curl -I https://example.de

Der Schalter -I fordert nur den Header an, nicht den Seiteninhalt. Die Antwort beginnt mit der Statuszeile, gefolgt von den Headern.

Wenn du wissen willst, wohin eine Weiterleitung am Ende führt, hängst du -L an. Dann folgt curl der Kette und zeigt jeden Schritt:

curl -IL https://example.de

Für eine reine Zahl ohne Drumherum, etwa in einem Skript:

curl -o /dev/null -s -w "%{http_code}\n" https://example.de

In der PowerShell erledigt das folgender Aufruf:

(Invoke-WebRequest -Uri "https://example.de" -Method Head -MaximumRedirection 0).StatusCode

Warum manche Server anders antworten

Es kommt vor, dass ein Werkzeug einen anderen Code meldet als der Browser. Dafür gibt es drei häufige Gründe.

Manche Server behandeln die Methode HEAD anders als GET. Ein curl -I löst eine HEAD-Anfrage aus, dein Browser dagegen eine GET-Anfrage. Schlecht konfigurierte Server antworten auf HEAD mit 405 Method Not Allowed, obwohl die Seite normal erreichbar ist.

Dann spielt der User-Agent eine Rolle. Einige Systeme liefern Bots und unbekannten Programmen bewusst andere Antworten aus, etwa 403 Forbidden. Wer eine Firewall wie Cloudflare davorgeschaltet hat, kennt das.

Und schließlich unterscheiden sich Antworten je nachdem, ob du mit oder ohne www, mit http oder https anfragst. Genau deshalb lohnt es, alle vier Varianten einer Domain zu prüfen. Sie sollten in genau einer Weiterleitungskette zusammenlaufen und nicht im Kreis.

Statuscodes im Server-Log

Wer Zugriff auf den Server hat, findet im Zugriffsprotokoll die Codes aller echten Aufrufe. Bei Apache steht in jeder Zeile hinter der angeforderten Adresse die Zahl. So bekommst du eine Übersicht, welche Codes wie oft aufgetreten sind:

awk '{print $9}' access.log | sort | uniq -c | sort -rn

Und so listest du auf, welche Adressen 404 erzeugt haben:

awk '$9 == 404 {print $7}' access.log | sort | uniq -c | sort -rn | head -20

Das ist oft aufschlussreicher als jede Crawler-Auswertung, weil hier steht, was Besucher und Suchmaschinen tatsächlich angefragt haben.

Wann welches Werkzeug

Für eine einzelne Adresse mit Weiterleitungskette nimmst du den Redirect-Checker, der jeden Hop einzeln auflistet und Endlosschleifen erkennt. Das Tool auf dieser Seite ist für den anderen Fall gedacht: viele Adressen auf einmal, je ein Status. Nach einem Relaunch prüfst du damit in einem Durchgang, ob die wichtigsten alten URLs sauber weiterleiten.

Für laufende Überwachung großer Seiten führt langfristig kein Weg an einem Crawler vorbei. Für den schnellen Blick zwischendurch sind Browser, curl und ein Bulk-Check aber völlig ausreichend.