Der Statuscode 404 („Not Found“) wird verwendet, wenn eine URL aufgerufen wird, die aktuell auf dem Server nicht mehr vorhanden ist. Der Fehlercode 410 („Gone“) wird genutzt, wenn eine URL permanent gelöscht wird.
Der Hauptunterschied zwischen den Fehlercodes 410 („Gone“) und 404 („Not Found“) besteht darin, dass bei einem Status Code 404 noch unklar ist, ob diese URL möglicherweise in der Zukunft (wieder) verfügbar wird. Ein Status-Code 404 weisst also auf einen möglicherweise temporären Zustand hin, während ein Status-Code 410 einen dauerhaften Zustand anzeigt.
Wird eine Seite auf eine neue URL umgezogen, muss der korrekte Status Code 301 genutzt werden.
Wie erkenne ich einen Status Code 410?
Abhängig vom genutzten Server der Webseite, kann die Benennung dieses Status Codes leicht variieren. Ob der Server mit einem „Gone„, „Error 410″, „410 Gone“ oder auch „HTTP Status 410″ antwortet, bedeutet immer das gleiche.
Wann sollte ich 410 anstelle von 404 ausliefern?
Den korrekten Status Code für den richtigen Anwendungsfall zu nutzen hat seine Vorteile:
Zum einen können Besucher bei einem Status Code 410 erkennen, dass es die aufgerufene Seite zwar in der Vergangenheit gegeben hat, jedoch jetzt nicht mehr.
Antwortet die Seite hingegen mit dem Status Code 404, ist nicht klar ob es die angeforderte Ressource einfach nur nicht gibt, oder ob die Seite gelöscht wurde. Es kann sich um einen fehlerhaften link handeln, oder man sich einfach verschrieben.
Für Google ist es bei dem Status Code 410 klarer, dass es die Seite nicht mehr gibt, da es aufwändiger ist den Status Code 410 explizit zu nutzen als einen Status Code 404.
Wenn du also bewusst eine Ressource löscht, gib den Status Code 410 auf dieser URL zurück. Damit wissen auch verlinkende Webseiten, nach der dazugehörigen Umsetzungsrichtlinie, dass sie ihre Verlinkung anpassen oder löschen sollten.
Da dieser Status Code gecached werden darf, kann sich der Googlebot und auch ein Browser eine erneute Anfrage für einen bestimmten Zeitraum sparen.
Zum Thema, wie der Googlebot mit den beiden Status Codes 410 und 404 umgeht hat Matt Cutts ein Video augenommen. Wenn der Googlebot einen Status Code 404 bekommt, wird diese Seite im Crawling System für 24 Stunden geschützt, mit der Annahme, „möglicherweise wurde der Status Code aus Versehen angezeigt“ und nicht direkt als Fehler angezeigt. Trifft der Googlebot auf den Status Code 410 geht Google davon aus, dass sich der Webmaster schon etwas dabei gedacht hat und nimmt die Seite direkt als Fehlerseite aus dem Index.
2018 hat John Müller die Frage in einem Webmaster Hangout so beantwortet:
Aus unserer Perspektive ist der Status Code 404, auf mittel- bis langfristige Sicht, der Gleiche wie ein 410. In beiden Fällen nehmen wir die URL aus unserem Index.
Üblicherweise rufen wir diese URLs auch weniger häufig ab, so dass wir nicht zu viel Zeit darin investieren, Dinge zu crawlen von denen wir wissen, dass es sie nicht gibt.
Der feine Unterschied ist, dass eine 410 manchmal dazu führt, dass die URL schneller aus dem Index entfernt wird als bei einer 404. Generell sprechen wir hierbei jedoch nur von der Größenordnung von ein paar Tagen oder so.
Wenn du also Inhalte ganz normal entfernst, ist es völlig Ok entweder das eine oder das andere zu nutzen. Wenn du den Inhalt schon vor langem entfernt hast, dann ist der Inhalt sowieso nicht indexiert und es macht für uns auch keinen Unterschied ob eine 404 oder 410 genutzt wird.
Wenn der Inhalt also in Zukunft wieder zurückkommen könnte, nutze den Status Code 404. Wenn es sicher ist, dass der Inhalt nicht wiederkommt, gib den Status Code 410 aus.
Wie erkenne ich einen Status Code 410?
Es gibt verschiedene Tools um zu prüfen, ob eine URL einen Status Code 410 ausspielt: Im Google Chrome Browser in den Entwicklerwerkzeugen, unter „Network“.
Das Browserplugin Ayima Redirect Path.
Sowie verschiedenen anderen Webtools: es gibt eine Menge Tools, die diese Informationen bereithalten. Zwei davon sind urlitor.com sowie httpstatus.io, welches von Tom Anthony zur Verfügung gestellt wird um gleichzeitig die Status Codes von vielen URLs testen zu können.
Wenn du den SISTRIX Optimizer nutzt, kannst du einfach in deinem Projekt auf Analyse klicken 1 und dann links auf Status-Codes 2. Bei 3 findet sich die Anzahl aller Status Codes des Typs 4XX.
Es ist auch möglich, mit einem Klick auf das 4xx Icon, detailiertere Informationen aller Seiten mit einem Status Code dieser Kategorie zu erhalten.
Wie kann der Status Code 410 für SEO genutzt werden?
Es gibt einige praktische Anwendungsfälle zu bedenken:
- Massenlöschung von ermäßigten oder eingestellten Produkten.
- Massenlöschung alter oder obsoleter Inhalte.
- Löschung von URLs die wenig bis keinen Traffik anziehen.
- Löschung von URLs, die ein CMS unkontrolliert erstellt.
- Löschung von URLs die automatisiert durch Hacker erstellt wurden.
Wie kann ich den Status Code 410 ausliefern?
Die technische Umsetzung für die Auslieferung des Statuscode 410 hängt vom verwendeten Webserver ab. Für die gängigsten Webserver haben wir hier eine Anleitung zusammengestellt:
Webserver: Apache
Bei der Nutzung eines Apache Servers gibt es vershiedene Wege den Status Code auszuliefern. Wenn ich die Unterseite /frag-sistrix/dieseSeitegibtesnichtmehr/ gelöscht habe, kann ich einen der folgenden Einträge zur .htaccess-Datei hinzufügen:
RewriteRule ^/frag-sistrix/dieseSeitegibtesnichtmehr/ - [L,R=410]
RewriteRule ^/frag-sistrix/dieseSeitegibtesnichtmehr/ - [G]
Redirect gone /dieseSeitegibtesnichtmehr/
Bei dem letzten Beispiel ist es sogar möglich, eine eigene Fehlerseite zu erstellen. Dazu muss einfach eine weitere Zeile hinzugefügt werden, in der Steht welche HTML-Seite für 410 angezeigt werden soll:
ErrorDocument 410 /410-Seite.html
Redirect gone /dieseSeitegibtesnichtmehr/
Webserver: Nginx
Wird ein Nginx-Server genutzt, kann folgendes zu der nginx.conf-Datei hinzugefügt werden. Entweder in einem bestehenden Server-Block oder einem neuen:
location ^/frag-sistrix/dieseSeitegibtesnichtmehr/ { return 410; }
Auch hier kann eine eigene HTML-Datei ausgewählt werden, die bei einem Status Code 410 angezeigt werden soll:
error_page 410 /410-Seite.html;
Weitere Informationen zu diesen und anderen Status Codes findest du auf unserer Seite zu den HTTP-Statuscodes.