WordPress bietet in den Themes mit der 404.php die Möglichkeit, individuelle 404 Seiten zu erstellen und zum Beispiel mit einem Suchformular auszustatten. Weiter ist in den meisten Themes ein individuell programmierbarer Bereich enthalten, der den Blog anweist, dass wenn kein entsprechender Beitrag gefunden wird, zum Beispiel das Suchformular auszugeben.
Diese Einstellungen können in einigen Fällen sehr nützlich sein, so dass der User, der über die unterschiedlichen Verlinkungen (aus Suchmaschinen oder von anderen Seiten) kommt, auf jeden Fall im Blog landet. In manchen Fällen wünscht der Webmaster dieses Verhalten aber nicht und möchte es entsprechend ändern.
Aber nicht nur die individuellen Vorlieben der Webmaster können es notwendig machen, keine 404 Seiten auszugeben und stattdessen die Startseite des WordPress Blogs anzuzeigen. Ein Beispiel dafür wäre der Wunsch, alte, nicht mehr existierende aber doch noch von den Suchmaschinen indexierte Seiten aus dem Index verschwinden zu lassen. Gerade wenn so etwas Überhand nimmt, könnte es für die User durchaus nervig sein, ständig auf 404 Seiten zu landen.
Ein weiterer Grund sind falsche Verlinkungen, die von anderen entweder absichtlich oder unabsichtlich gesetzt werden. Nimmt so etwas Überhand, kann einem WordPress Blog schnell Schaden zugefügt werden. Auch werden von einigen so genannten bösen Bots auch gerne 404 Seitenaufrufe generiert.
WordPress 404 Seiten können auf eine sehr einfache Weise deaktiviert und auf die Startseite umgeleitet werden. Dazu braucht es nur eine einzelne zusätzliche Zeile in der header.php im entsprechenden WordPress Theme. Diese ganz oben an den Anfang in die erste Zeile setzen (oberhalb von “DOCTYPE…”):
<?php if( is_404( )) { header("Location: /",TRUE,301); } ?>
Dieser Befehl bewirkt, dass 404 Seiten auf die Startseite mit dem HTTP-Status-Code 301 (permanenter Umzug) ungeleitet werden. Bei dem Teil "Location: /" ist darauf zu achten, dass dieser Befehl die Domain selbst darstellt und alles auf http://www.meinedomain.tld/ beziehungsweise http://meinedomain.tld/ umleitet.
Liegt die Startseite des Blogs aber beispielsweise im Verzeichnis /blog/ (http://www.meinedomain.tld/blog/), so ist dieser Befehl anzupassen auf: "Location :/blog/"
Weiter ist es notwendig, dass im WordPress Theme eine Datei 404.php vorhanden ist und diese den Inhalt <?php get_header(); ?> aufweist.
6 Kommentare zum “WordPress 404 Seiten via 301 auf die Startseite umleiten”
[...] 404 Fehler per 301 auf Startseite weiterleiten [...]
Ich habe des mal ausprobiert und bei mir funktioniert es auch ohne 404.php.
Hallo, ist es bei diesem Redirect auch möglich, einen Code 410 auszugeben, damit Google die Seiten aus dem Index nimmt?
@Markus: Das ist technisch nicht möglich. Entweder wird die 404 Seite angezeigt und damit ist auch der Status Code 404 oder man macht eine 301 Umleitung, dann ist der Status Code 301. So oder so, Google wird die Seite in jedem Fall aus dem Index nehmen.
Hallo, danke für die schnelle Antwort. Das Problem ist einfach, dass Google von mir aktuell 42.000 Seiten als 404 in den Webmaster Tools hat und ich den Index gerne dauerhaft bereinigen würde, weil die Seiten gelöscht wurden. Das kann aber ewig dauern und eine “schönere” Lösung wäre mir sympathisch gewesen.
Glücklicherweise behandelt Google 404er ja an sich wie 410er …
@markus: Ich habe auf diese Weise alle alten Index von mir bereinigen können (404 via 301 auf die Startseite). Es dauert halt leider nur ne Weile.
Die einzig schnelle Lösung geht nur über URL löschen in den Webmaster Tools. Damit sind die Seiten über Nacht aus dem Index raus und auch für 6 Monate gesperrt (werden nicht automatisch wieder aufgenommen in dieser Zeit). Wenn die aber nicht einem bestimmten URL Bereich zuzuordnen sind (URL Ordner), sitzt Du aber bei 42.000 da auch sehr lange, denn Du müsstest sie einzeln eingeben.