zur Startseite

Druckausgabe von https://privat.albicker.org
Iveco Daily 4x4, Hunde und multithematisches Blog - Bernhard Albicker

Tote Links und redirect

veröffentlicht am 03.03.2017

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

  1. eine Seite entfernt wurde
  2. 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:

  1. Der Benutzer wird die Inhalte weiterhin unter der bekannten Adresse finden, Lesezeichen etc. behalten ihre Gültigkeit
  2. Externe Links bleiben weiter gültig, z. B. von anderen Webseiten/Blogs oder aus Foren

Demgegenüber habe ich aber auch festgestellt, daß

  1. 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
  2. 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:

  1. 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.
  2. 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.
  3. Menschliche Besucher sollen nicht unnötig “im Regen stehen gelassen” werden, deshalb
    1. muß eine aussagekräftige Fehlerseite mit Hinweisen zu den vorhandenen Inhalten vorhanden sein
    2. 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:

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

dann wird für diese Einzelseite eine Umleitung eingerichtet.

Die Umsetzung

Zunächst erstelle ich eine Datei 404.php, die

  1. den Status “404” an den aufrufenden Benutzer/Suchmaschine sendet

    <?php
    header('HTTP/1.0 404 Not Found');
    ?>
    
  2. 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