Fehlerhafte Weiterleitung auf die Startseite

Wenn Artikel aufgerufen werden, die nicht mehr aktiv sind, leitet randshop auf die Startseite um. Das ist gleich zweimal ungünstig:

  • der Besucher klickt zum Beispiel auf ein Suchergebnis bei einer Suchmaschine, der Artikel wurde aber mittlerweile deaktiviert. Der Besucher landet dann im Shop auf der Startseite. Dort kommt jedoch meist sein gesuchter Gegenstand nicht vor, er ist möglicherweise verwirrt, in jedem Fall findet er nicht das Gesuchte. Würde er die Fehlerseite sehen, wüsste er zumindest schon mal, dass es diese Seite nicht mehr gibt. Er könnte dann z.B. die Suche des Shops verwenden.
  • eine Suchmaschine kennt von einem früheren Besuch die Adresse des mittlerweile deaktivierten Artikels und schickt zum Auffrischen der Seiteninformationen wieder mal einen Bot vorbei. Der ruft die Seite auf und bekommt die Startseite präsentiert. Er bekommt sogar die Info, die Seite sei zeitweise umgezogen (http-Status 302). Den Inhalt der Startseite kennt die Suchmaschine aber schon von der tatsächlichen Startseite. Für die Suchmaschine gibt es hier also nichts Neues, sie wird diese Seite wohl erstmal in "vorhanden, nicht wichtig, demnächst wieder mal vorbeischauen" einstufen. Möglicherweise auch als doppelten Inhalt (duplicate content) verstehen.

Ich konnte das jetzt bei den Versionen 2.0.2 bis 2.4 nachvollziehen. Bei den älteren randshop Versionen habe ich nicht explizit nachgesehen, gehe aber davon aus, dass es sich dort genauso verhält.

Auch für die Suchmaschine wäre also eine klare Ansage "die Seite gibt es nicht mehr" nützlich. Sie nimmt die Seite dann aus dem Index und zeigt sie in den Suchergebnissen nicht mehr an. Verhindert also auch weitere Verwirrung bei Besuchern.
Und in den Webmastertools würde diese Seite auch nicht mehr bei den html-Fehlerseiten mit gleichem title und gleicher description auftauchen.

Ursache

In der /themes/kategorie/detail.php wird etwa in Zeile 93 auf den deaktivierten Artikel geprüft und die Umleitung auf die Startseite vorgenommen:

if (!$ArtikelObject->aktiv || ($ArtikelObject->kundengruppe_id != 0 && $KundengruppenID != $ArtikelObject->kundengruppe_id) || ($ArtikelParentObject && $ArtikelParentObject->kundengruppe_id != 0 && $KundengruppenID != $ArtikelParentObject->kundengruppe_id)) {
        header("Location: " . URLPFAD . "index.php");  //leitet auf die Startseite
        exit;
    }

Lösung

Wird der Code folgendermaßen geändert, dann wird die Error404-Seite angezeigt und damit auch ein Error404-Header gesendet.

if (!$ArtikelObject->aktiv || ($ArtikelObject->kundengruppe_id != 0 && $KundengruppenID != $ArtikelObject->kundengruppe_id) || ($ArtikelParentObject && $ArtikelParentObject->kundengruppe_id != 0 && $KundengruppenID != $ArtikelParentObject->kundengruppe_id)) {
    //header("Location: " . URLPFAD . "index.php");  //leitet auf die Startseite
    include_once(DATEIPFAD . 'themes/error/error_404.php'); //leitet auf die Errorseite, mit richtigem Header
    exit;
}

Damit wird wieder ein Stückchen Klarheit in den Shop gebracht. Besuchern der Seite und Suchmaschinen wird konkrete Information geliefert, womit beide entsprechend reagieren können.

Für den Shopbetreiber ergeben sich ein paar weitere Vorteile:

  • eine Auswertung der Fehlerseite würde Hinweise auf extern verlinkte Artikel liefern, damit könnte man Weiterleitungen einrichten, die den potenziellen Kunden im Shop halten könnten.
  • auf der Fehlerseite könnten Alternativen zu dem gesuchten aber nicht mehr aktiven Artikel gezeigt werden

Diese Anwendungen sind derzeit im randshop noch nicht vorhanden. Möglicherweise baue ich dazu demnächst ein paar Module. Gerade die Auswertung der Aufrufe der Fehlerseite könnte einige Informationen zur Verbesserung des SEO des Shops bringen. Und wie schon oft beschrieben, SEO lässt sich selber machen!

Feedback oder Anregungen?

Wie immer, interessiert mich natürlich, ob diese Anleitung verständlich und hilfreich ist.

Schreiben Sie mir einfach im Kommentar, wenn noch nicht alle Fragen beantwortet wurden.

Übrigens erhalten Sie, wenn Sie die Adresse Ihrer Webseite angeben, einen Link zu Ihrer Webseite. Ist vielleicht für SEO ganz interessant ;-)

Vielen Dank!

Kommentar abgeben: