So prüft Ihr Eure HTTP-Statuscodes

von Jochen Moschko

Kategorie(n): Ratgeber Datum: 14. Mai 2019
HTTP-Statuscodes haben einen großen Einfluss darauf, ob eine Suchmaschinenoptimierung erfolgreich verläuft oder nicht. Dieser Einfluss sollte nicht unterschätzt werden. In diesem Beitrag erfahrt Ihr, warum das so ist und worauf Ihr achten solltet. Grundsätzlich gilt: Wenn man eine Seite im World Wide Web aufruft, gibt der Server unter anderem einen HTTP-Statuscode zurück. Der wohl häufigste ist Code 200 (“Ok”). Er besagt, dass die angeforderte Ressource (also die angeforderte Seite oder Datei) erfolgreich abgerufen wurde. Es ist gar nicht mal so selten, dass Webserver falsche Statuscodes zurückgeben oder solche, die für die Auffindbarkeit der eigenen Website in Suchmaschinen kontraproduktiv werden können.

Wie finde ich den HTTP-Statuscode einer URL heraus?

Um den HTTP-Statuscode einer URL herauszufinden, kann man sich ein entsprechendes Skript schreiben, z. B. mit PHP oder VB.net, oder aber auf bereits bestehende Tools zurückgreifen. Solche Tools gibt es im Internet zuhauf und viele von ihnen sind sogar kostenlos. Ich persönlich finde die Website https://httpstatus.io sehr praktisch und sie bietet einige Komfortfunktionen, wie die Überprüfung mehrerer URLs auf einmal.

Wann sollte welcher Statuscode zurückgegeben werden?

Kommen wir nun dazu, in welchem Fall ein Server welchen Statuscode zurückgeben sollte. Wer mit seinem Webbrowser im Internet surft, wird von den Statuscodes nicht viel mitbekommen. Gegenüber Suchmaschinen ist es jedoch essentiell, dass der Server in dieser Hinsicht sauber konfiguriert ist, denn hier kann ein falscher Statuscode sogar die Aufnahme in den Suchmaschinenindex verhindern. Vorhandene Seiten Beim Aufruf jeder existierenden Seite sollte Statuscode 200 zurückgegeben werden. Wenn stattdessen Code 301 oder 307 erscheint, ist das in der Regel harmlos, da es sich um eine Weiterleitung handelt. In diesem Fall solltet Ihr prüfen, dass nicht zu viele Weiterleitungsketten vorhanden sind, z. B. 301-->301-->301-->200. Optimal ist es, wenn eine Weiterleitung direkt auf die Zielseite führt, daher lautet der Idealfall 301-->200. Unser SEO-Portal liegt unter der Domain https://seo-portal.de. Wer es über https://www.seo-portal.de aufruft, wird mit einer 301-Weiterleitung auf erstere weitergeleitet. Wenn Ihr statt Statuscode 301 oder 307 hingegen 302 erhaltet, solltet Ihr diese Weiterleitung in eine 301-Weiterleitung umwandeln. Vom Technischen her sind beide Weiterleitungsarten identisch, allerdings steht Code 302 für “Moved Temporarily”. Das lässt viele Suchmaschinen vermuten, dass die Weiterleitung nur vorübergehender Natur ist. Die Folge: Die ursprüngliche URL bleibt weiterhin im Index und die eigentliche neue erscheint dort möglicherweise nicht. Statuscode 301 steht hingegen für “Moved Permanently” und teilt Suchmaschinen mit, dass sich die eigentliche Seite nun unter der im Weiterleitungsziel angegebenen URL befindet. Diese wird daraufhin ihren Index aktualisieren. Eine 301-Weiterleitung wird deshalb auch als suchmaschinenfreundliche Weiterleitung bezeichnet. Sie ist eng verwandt mit der 307-Weiterleitung, die insbesondere vom TYPO3-CMS genutzt wird (hier findet Ihr mehr zu diesem Thema). Falls Ihr beim Abruf einer vorhandenen Seite gar Code 404 („Not Found“) oder 410 („Gone“) erhalten solltet – das erleben wir extrem selten, aber das gibt es ganz vereinzelt – solltet Ihr das Problem umgehend beheben, denn so werden Eure Seiten nicht im Suchmaschinenindex landen. Nicht vorhandene Seiten Wenden wir uns nun Seiten zu, die tatsächlich nicht oder nicht mehr vorhanden sind. Prüft nun, welcher Code in diesem Fall zurückgegeben wird. Wenn eine nicht (mehr) existierende Seite aufgerufen werden soll, lautet der richtige Statuscode 404 (“Not Found”) oder 410 (“Gone”): Eine entfallene Seite, bei welcher hingegen Statuscode 200 oder 302 zurückgegeben wird, bewirkt nämlich, dass ihre URL nicht aus dem Suchmaschinen-Index entfernt wird, weil der Crawler annimmt, dass die Seite noch existiert. Gebt zum Testen in das Tool Eure Domain ein und dahinter einen Fantasie-Dateinamen, z. B. https://www.example.com/test-123/ Wenn nun Statuscode 404 oder 410 erscheint, scheint Euer Webserver an dieser Stelle richtig konfiguriert zu sein. Wo liegt der Unterschied zwischen Code 404 und 410? Code 410 kann eingesetzt werden, um entfallene Seiten schneller aus dem Suchmaschinen-Index zu entfernen. Wenn Code 404 zurückgegeben wird, dauert das schonmal etwas länger, aber unter dem Strich zeigt es dieselbe Wirkung. Manchmal kann es auch sinnvoll sein, dass entfallene Seiten mit einer 301-Weiterleitung auf eine thematisch ähnliche Seite weitergeleitet werden. Das wäre ebenfalls eine technisch saubere Lösung. 302 statt 404: Ab und zu sieht man, dass statt Code 404/410 eine 302-Weiterleitung greift. Meistens liegt die Ursache darin, dass in der .htaccess-Datei eine individuelle Fehlerseite festgelegt und dabei der gesamte Domainname angegeben wurde, wie in diesem Beispiel: ErrorDocument 404 https://www.example.com/nicht-gefunden.html Richtig ist es jedoch ohne den Domainnamen, also so: ErrorDocument 404 /nicht-gefunden.html

Sonderfälle

Wenn Statuscode 500 (“Internal Server Error”) zurückgegeben wird, ist die hinter der URL liegende Seite nicht erreichbar. Hier kann ein Neustart Eures Servers Abhilfe schaffen – manchmal kann aber auch ein kleiner (Syntax-)Fehler in einer Anweisung in der .htaccess-Datei einen Code 500 auslösen. Wenn das Problem nach einem Serverneustart weiterhin auftritt, ist daher ein wenig Detektivarbeit gefragt. Hier nochmal eine übersichtliche Zusammenfassung der korrekten HTTP-Statuscodes:
Szenario Korrekte HTTP-Statuscodes
Aufruf einer vorhandenen Seite 200, 301, 307
Aufruf einer nicht vorhandenen Seite 404
…optional, wenn eine bestehende Seite entfallen ist 410
  Wir hoffen, dass Euch dieser Beitrag aufzeigen konnte, wie Ihr Eure HTTP-Statuscodes prüfen könnt und worauf Ihr achten solltet.