Tote Links und redirect
veröffentlicht am 03.03.2017 mit 759 Worten - Lesezeit: 4 Minute(n) in * SOFTWARE *
Wie beschrieben habe ich kürzlich diese Homepage überarbeitet. Dabei bleibt es nicht aus, daß sich das eine oder andere verändert (sonst wäre es ja auch keine Überarbeitung :) und ich könnte die Zeit anderweitig verwenden).
Folgerichtig kam kürzlich also eine e-mail von Google (ich nutze für meine Seiten dort die Webmaster-Tools (nicht zu verwechseln mit der Datenkrake Google Analytics - letztere möchte ich meinen Lesern nicht zumuten), die mir Hinweise geben auf Probleme beim Indexieren oder Fehler auf der Webseite):
Googlebot identified a significant increase in the number of URLs on http://privat.albicker.org/ that return a 404 (not found) error. This can be a sign of an outage or misconfiguration, which would be a bad user experience. This will result in Google dropping those URLs from the search results. If these URLs don’t exist at all, no action is necessary.
404
Der “404-Error” ist allgemein bekannt und beliebt: Eine Webseite wird nicht gefunden. Er tritt auf, wenn
- eine Seite entfernt wurde
- sich die Adresse einer Seite geändert hat
Umgang mit dem Fehler
Zunächst kann man die unschöne Servermeldung 404 - not found
, die dem Nutzer nicht wirklich weiterhilft, durch eine “schöne” Fehlerseite ersetzen.
Auf Apache-Servern läßt sich das durch die sog. .htaccess
-Datei erreichen, die man in der obersten Verzeichnis-Ebene seines Webauftritts anlegt und die für diesen Fall eine Zeile der Form
ErrorDocument 404 /Pfad/zur/Fehlerseite.html
enthält. Wenn also eine Seite nicht gefunden wird, dann wird die genannte Fehlerseite aufgerufen, die dem Besucher mitteilt, was schief gelaufen ist und optimalerweise ihm weiterhilft, die gesuchten Inhalte doch noch zu finden:
Menü, Sitemap, Suchfunktion u. dgln. sind da geeignete Mittel.
Weiterleitung
Vorstellbar wäre natürlich auch, alle Seiten, die noch vorhanden sind, aber deren Adresse sich geändert hat, mit einer automatischen Weiterleitung zu versehen. Dies kann ebenfalls in der besagten .htaccess
-Datei geschehen:
redirect permanent /pfad/zur/datei.html http://www.domain.tld/neuer/pfad/neuedatei.html
Weiterleitung - ja oder nein?
Für eine Weiterleitung spricht:
- Der Benutzer wird die Inhalte weiterhin unter der bekannten Adresse finden, Lesezeichen etc. behalten ihre Gültigkeit
- Externe Links bleiben weiter gültig, z. B. von anderen Webseiten/Blogs oder aus Foren
Demgegenüber habe ich aber auch festgestellt, daß
- Google auch 5 Jahre nach dem Umzug meiner Fotoseiten nach bilddateien.de diese Seiten immer noch für diese Homepage hier im Index führt
- die weiter Gültigkeit der Lesezeichen dafür sorgt, daß Benutzer nicht wirklich wahrnehmen, daß sich die Adresse geändert hat und ihre Links aktualisieren.
Insbesondere der erste Punkt hat mich bewogen, mir Gedanken zu machen, wie ich bei der Neugestaltung meiner Seite mit den Suchmaschinen umgehen will.
Das Konzept
Für das Konzept gelten folgende Grundüberlegungen:
- Suchmaschinen brauchen offenbar eine klare Ansage, ob Inhalte noch auf einer Adresse zu listen sind oder nicht. Insoweit ist also der 404-error eine gute Sache, die Suchmaschinen auf die Notwendigkeit der Aktualisierung ihres Indexes hinzuweisen.
- In Verbindung mit einer aktuellen Sitemap läßt sich so die Aktualisierung des Indexes beschleunigen und dafür sorgen, daß nur noch aktuell vorhandene Seiten von Suchmaschinen angezeigt werden.
- Menschliche Besucher sollen nicht unnötig “im Regen stehen gelassen” werden, deshalb
- muß eine aussagekräftige Fehlerseite mit Hinweisen zu den vorhandenen Inhalten vorhanden sein
- sollte überlegt werden, für wichtige Seiten doch eine Weiterleitung einzurichten
Was sind jetzt wichtige Seiten?
Um heraus zu bekommen, für welche (Unter)Seiten ich eine Weiterleitung einrichten will, habe ich mir ein Logfile eingerichtet, das bei 404-Fehlern aufzeichnet:
- Datum/Uhrzeit
- Seite, auf die der Besucher zugreifen wollte
- Browser
- Seite, von der der Besucher kam
Wenn nun der “Browser” keine Suchmaschine ist und der Besucher von einer anderen Webseite gekommen ist (Homepage, Blog, Forum), dann schaue ich mir die Herkunftsseite an und
- wenn diese im sachlichen Zusammenhang mit meiner Seite steht,
- und auf eine spezielle Einzelseite verweist
dann wird für diese Einzelseite eine Umleitung eingerichtet.
Die Umsetzung
Zunächst erstelle ich eine Datei 404.php
, die
-
den Status “404” an den aufrufenden Benutzer/Suchmaschine sendet
<?php header('HTTP/1.0 404 Not Found'); ?>
-
den Fehler aufzeichnet wie oben beschrieben
<?php //Fehler in Logfile schreiben: $datei = fopen("/voll/ständiger/pfad/auf/dem/server/zur/404.txt","a+"); $datumzeit = date("Y-m-d H:i:s", time()); $out = $datumzeit . "\t" . $_SERVER['REQUEST_URI'] . "\t" . $_SERVER['HTTP_USER_AGENT'] . "\t" . $_SERVER['HTTP_REFERER'] . "\n"; fwrite($datei, $out); fclose($datei); ?>
Unterhalb des PHP-Teils kann jetzt eine normale HTML-Fehlerseite folgen, die den Benutzer auf den Fehler hinweist und ihm die o. g. Hilfen anbietet, um (vielleicht) doch noch zum Ziel seiner Suche zu kommen.
Damit dieses Script nun seinen Job erfüllen kann, muß in der .htaccess
folgende Zeile eingefügt werden:
# Fehlerbehandlung
ErrorDocument 404 /404.php
Und wenn dann die Analyse dazu führt, daß ich einzelne Seiten weiterleiten will, dann füge ich diese ebenfalls in der .htaccess
so hinzu (Beispiel, alles auf einer Zeile)
# Blogpost verschoben
redirect permanent /blog/post/2016-02-11-darktable-fuer-windows/ http://privat.albicker.org/blog/2016-02-11-darktable-fuer-windows.html
weitere Artikel
- Hugo und die Krux mit dem Zeilenumbruch
- Trennung von Struktur und Design/Inhalt und Layout
- Ein Kommentarsystem für Hugo-Webseiten
- Paßt der Aufbau meiner Homepage zur Ausstattung meiner Besucher?
- Kampf gegen Formularspam: Blacklists im Vergleich