HTTP-Statuscode 404 bei einer Fehlerseite richtig übergeben

Eine 404-Fehlerseite, auch ErrorDocument 404 genannt, ist in erster Linie eine Seite, die den Nutzer über das Nichtvorhandensein der angeforderten Ressource informiert.

Folgt ein Nutzer beispielsweise einem Link, dessen Zielseite nicht mehr existiert, so sollte ihm vom Webserver eine sogenannte 404-Fehlerseite angezeigt werden.

Eine 404-Fehlerseite ist jedoch für weitaus mehr zuständig. Korrekt konfiguriert, informiert sie vor allem den Google-Bot über nicht existente Dokumente. Damit dies auch korrekt passiert, ist es wichtig, dass eine 404-Fehlerseite auch den korrekten HTTP-Statuscode 404 zurück gibt.

Wie gebe ich bei einer 404-Fehlerseite den korrekten HTTP-Statuscode 404 zurück?

Ist der Webserver oder das verwendete Content-Management-System (CMS) falsch konfiguriert, sodass eine Fehlerseite entweder den HTTP-Statuscode 200 (OK) zurück gibt oder Nutzer & Google-Bot mittels einer 301-Weiterleitung auf eine andere Seite verweist, spricht man von einer fehlerhaften 404-Seite bzw. eines Soft-404-Fehlers.

Folgend möchten wir auf die richtige Konfiguration einer 404-Fehlerseite mit entsprechendem HTTP-Statuscode 404 eingehen. Wir unterscheiden hierbei zwischen zwei Anwendungsfällen:

  • statische 404-Fehlerseite unter Verwendung des Apache Webservers und der .htaccess-Datei
  • Verwendung des CMS WordPress und der vorhandenen Datei 404.php im Theme-Verzeichnis

.htaccess- und Apache-Webserver-Fehlerseite konfigurieren

Egal ob du für deine Website auf .html- oder .php-Dateien setzt oder eine Verzeichnisstruktur nutzt. Eine 404-Fehlerseite erstellst du, indem du in die .htaccess-Datei folgendes einträgst:

Screenshot eines Editors der .htaccess-Datei mit Verweis auf das ErrorDocument 404.

Der Screenshot zeigt, wie der relative Pfad zum Fehlerdokument in der .htaccess-Datei hinterlegt wird.

Öffne oder erstelle die .htaccess-Datei und trage den relativen Pfad zur Fehlerseite ein. Die Fehlerseite (z. B. 404.html) musst du zuvor als Datei noch anlegen.

ErrorDocument 404 /404.html

Die durchzuführenden Schritte im einzelnen:

  • eine Fehlerseite (404.html oder 404.php) auf erster Ebene (im Root-Verzeichnis) erstellen
  • die .htaccess-Datei öffnen oder erstellen, wenn nicht vorhanden. (Ebenfalls im Root-Verzeichnis)
  • trage „ErrorDocument 404“ gefolgt von dem relativen Pfad zur Fehlerseite ein
  • speichere und rufe eine nicht existierende Seite auf, z.B. http://www.deine-domain.de/98899351
  • Du solltest den Inhalt der Fehlerseite 404.html sehen
  • teste hier, ob der korrekte HTTP-Statuscode 404 zurückgegeben wird
Test des HTTP-Statuscode 404 für eine URL.

Die nicht gefundene Seite https://www.sistrix.de/98899351 gibt den HTTP-Statuscode 404 zurück

Fehlerseite in Nginx einrichten

Wenn du Nginx nutzt, kannst du eine 404-Fehlerseite einrichten, indem du folgendes im entsprechenden Server-Block der Config-Datei hinterlegst:

error_page 404/404.html

Die durchzuführenden Schritte unterscheiden sich von denen oben nur im Eintrag der Config-Datei und das nichtvorhandensein der htaccess. Der restliche Workflow passt auch hier.

WordPress CMS – Fehlerseite richtig konfigurieren

Verwendest du das Content-Management-System (CMS) WordPress, so ist das Setzen des korrekten HTTP-Statuscodes für die 404-Fehlerseite einfach – vorausgesetzt, dein verwendetes Theme unterstützt dies.

Viele WordPress-Themes, Designs oder Templates verfügen über eine entsprechende 404.php-Datei im jeweiligen Theme-Ordner. Findest Du diese Datei nicht, so konfiguriere eine Fehlerseite mittels .htaccess.

Öffne die Datei 404.php in deinem aktiven WordPress-Themes und trage folgendes an erster Stelle ein:

Konfiguration des HTTP-Statuscode 404 einer WordPress-Fehlerseite im Editor.

Oben: Konfiguration des HTTP-Statuscodes 404 einer WordPress-Fehlerseite.

Die Fehlerseite 404.php findest Du meistens im Theme-Verzeichnis unter /wp-content/themes/aktiver-themename/

<?php
header("HTTP/1.0 404 Not Found");
?>

Die durchzuführenden Schritte im einzelnen:

  • Fehlerseite im WordPress Theme-Ordner finden und öffnen (meist „404.php“)
  • an erster Stelle oben stehenden PHP-Quellcode eintragen und speichern
  • rufe eine nicht existierende Seite auf, z.B. http://www.deine-domain.de/98899351
  • Du solltest den Inhalt der Fehlerseite 404.html sehen
  • teste hier, ob der korrekte HTTP-Statuscode 404 zurückgegeben wird
Test des HTTP-Statuscode 404 für eine URL.

Die nicht gefundene Seite http://www.deine-domain.de/98899351 gibt den HTTP-Statuscode 404 zurück

Warum ist der richtige HTTP-Statuscode für Fehlerseiten wichtig?

Bei nicht existierenden URLs sollte der Webserver den HTTP-Statuscode 404 (Not Found) oder 410 (Gone) ausliefern. Falls im Web veraltete oder auf der eigenen Website falsche Links vorhanden sind, kann Google nur an einem HTTP-Statuscode 404 oder 410 fehlerfrei erkennen, dass die Zielseite nicht (mehr) vorhanden ist.

Stelle deshalb sicher, dass die Fehlerseite deiner Website den korrekten HTTP-Statuscode 404 zurück gibt. Nicht mehr vorhandene Seiten einfach mittels einer 301-Weiterleitung auf die Startseite weiterzuleiten, ist nicht empfohlen.

Was genau ist ein Soft-404 Fehler?

Webmaster, die nicht mehr vorhandene Inhalte auf andere Seiten mit 301-Redirect weiterleiten, stellen Google vor ein Problem. Ein Beispiel:

Wenn Google weiß, dass der Inhalt der Seite www.domain.de/ratgeber/wie-stelle-ich-rote-gummibaerchen-her/ das beste Ergebnis für eine Suchanfrage nach „Wie stelle ich rote Gummibärchen her?“ ist, dann wird Google diese Seite in den Suchergebnissen ganz vorne anzeigen.

Löscht der Webseitenbetreiber nun diese Seite, möchte jedoch das Ranking für „Wie stelle ich rote Gummibärchen her?“ behalten kann er versuchen, Google eine thematisch ähnliche Seite auszuliefern und auf diese per 301 Weiterleitung zu verweisen. In unserem Beispiel könnte dies die Kategorieseite für rote Gummibärchen im Shop sein, www.domain.de/shop/rote-gummibaerchen/.

Googles Anspruch ist es, dem Nutzer immer das beste Ergebnis für eine bestimmte Suchanfrage zu liefern.

Entscheidet Google jedoch, dass der Inhalt dieser Seite nicht die gewünschte Relevanz für die Suchanfrage hat, wie es bei der vorherigen Seite der Fall war, dann kann Google dies selbstständig als Soft-404-Fehlerseite interpretieren.

Das „Soft“ beschreibt in diesem Fall einfach, dass eine Seite, die technisch gesehen zwar keinen Status-Code 404 (Seite nicht gefunden) zurück gibt, von Google auf die gleiche Weise interpretiert wird, wie eine Seite mit einem tatsächlichen 404 Status-Code.

Was sagt Google?

Unabhängig davon, wie schön und nützlich Ihre benutzerdefinierte 404-Seite auch sein mag – Sie möchten wahrscheinlich nicht, dass sie in den Google-Suchergebnissen angezeigt wird. Um die Indexierung von 404-Seiten durch Google und andere Suchmaschinen zu unterbinden, stellen Sie sicher, dass Ihr Webserver tatsächlich einen 404-HTTP-Statuscode ausgibt, wenn eine nicht existierende Seite aufgerufen wird.

Quelle: Search-Console-Hilfe

Unser Google-Fazit

Nicht (mehr) existierende Seiten müssen via 404-Statuscode auch klar an Google kommuniziert werden.

SISTRIX Experten-Video

Steve Paine