Elya: http-Statuspflege für ständig sich ändernden dynamischen Content

Hallo,

heute mal wieder etwas aus der beliebten Serie "wie helfe ich meinem SEO-abhängigen Kunden" ;-)

Es geht um einen recht umfangreichen Shop auf XTCommerce-Basis. Google kommt täglich vorbei und indiziert, was das Zeug hält. Das Produktsortiment wird permanent gepflegt und auch ergänzt oder aktualisiert. Nun haben wir z.B. ausgelaufene Produkte auf Wunsch des Kunden mit einem Status 301 auf eine statische Infoseite geführt ("gibt's nicht mehr, such dir was anderes aus"). Dies scheint von Google recht negativ bewertet worden zu sein (deutliches Absacken in den Ergebnissen...). Zukünftig soll ein Status 404 für tatsächlich entfernte Produkte geschickt werden. Diese kann ich jedoch nicht anhand des Status aus der Datenbank auslesen, da es ja auch "vorübergehend" deaktivierte Produkte gibt, die dann wieder einen anderen Status erhalten sollen. (Kann mir noch jemand folgen?) XTCommerce schmeißt bei nicht gefundenen Produkten (z.B. deaktivierten) auch nicht von selber einen 404er, sondern eine hübsche Suchseite, siehe z.B. in diesem Demoshop.

Frage: Wie managt Ihr besonders "lebendige" Seiten, bei denen sich ständig etwas ändert, in Sachen Statusvergabe? Wir haben nach einem Umzug eine fette Liste in die httpconf geschrieben, um die redirects zu handhaben. Aber hier regelmäßig einzugreifen, um nach Bedarf etwas umzuleiten oder Status zu vergeben, kann es ja nun nicht sein. Wenn ich regelmäßig gelöschte Produkte habe: händisches Eintragen in die htaccess? Auch das finde ich recht hölzern zu handhaben. Dynamisch generierte htaccess - Kanonen auf Spatzen? Gesucht ist ein "Best practice" für derlei Seiten.

Danke für Eure Tipps.

Gruß aus Köln-Ehrenfeld,

Elya

--
We are drowning in information but starved for knowledge. John Naisbitt
  1. hi,

    Danke für Eure Tipps.

    So würde ich das machen: den Status 301 auf 302 ändern und eine Seite zeigen mit (vielen) Links zu ähnlichen Produkten.

    Hotte

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  2. Hallo!

    heute mal wieder etwas aus der beliebten Serie "wie helfe ich meinem SEO-abhängigen Kunden" ;-)

    Gleich vorweg: Ich habe keine Ahnung im Bezug auf deine eigentliche Frage.

    Das Produktsortiment wird permanent gepflegt und auch ergänzt oder aktualisiert. Nun haben wir z.B. ausgelaufene Produkte auf Wunsch des Kunden mit einem Status 301 auf eine statische Infoseite geführt ("gibt's nicht mehr, such dir was anderes aus"). Dies scheint von Google recht negativ bewertet worden zu sein (deutliches Absacken in den Ergebnissen...).

    Ich könnte mir vorstellen, dass dadurch zuviele Links auf ein und dieselbe Adresse leiten (was Google wohl offensichtlich nicht mag).

    Zukünftig soll ein Status 404 für tatsächlich entfernte Produkte geschickt werden.

    Ob Google das "besser schmeckt" als die 301 Variante, wage ich aber dann auch mal zu bezweifeln.

    Diese kann ich jedoch nicht anhand des Status aus der Datenbank auslesen, da es ja auch "vorübergehend" deaktivierte Produkte gibt, die dann wieder einen anderen Status erhalten sollen. (Kann mir noch jemand folgen?)

    Wie!? Es gibt keine Möglichkeit "festzustellen", ob ein Artikel nur vorübergehend oder dauerhaft deaktiviert ist? Wie unterscheidet man denn dann zwischen den Zuständen?

    XTCommerce schmeißt bei nicht gefundenen Produkten (z.B. deaktivierten) auch nicht von selber einen 404er, sondern eine hübsche Suchseite, siehe z.B. in diesem Demoshop.

    Aus SEO-Sicht scheint mir das auch sinnvoll/ richtig zu sein. Denn der gesuchte Artikel wurde ja quasi "gefunden" - nur dass es ihn halt nicht (mehr) gibt. Ein verbleiben auf der angeforderten Seite und somit ein 200er scheint mir da durchaus korrekt. Ein 404er würde ja bedeuten, dass der Client bspw. eine Resource angefordert (einen Artikel aufgerufen) hat, den es (noch) nie gab.

    Beim "Zusammenbau" der Artikelseite müsste man natürlich schon wissen, ob ein Artikel nur temporär oder dauerhaft deaktiviert ist, um den Seiteninhalt entsprechend zu gestalten (Infos für den Kunden/ Besucher).

    Gruß Gunther

    1. Hallo Gunther,

      danke für Deine Anmerkungen.

      Das Produktsortiment wird permanent gepflegt und auch ergänzt oder aktualisiert. Nun haben wir z.B. ausgelaufene Produkte auf Wunsch des Kunden mit einem Status 301 auf eine statische Infoseite geführt ("gibt's nicht mehr, such dir was anderes aus"). Dies scheint von Google recht negativ bewertet worden zu sein (deutliches Absacken in den Ergebnissen...).
      Ich könnte mir vorstellen, dass dadurch zuviele Links auf ein und dieselbe Adresse leiten (was Google wohl offensichtlich nicht mag).

      richtig, das wird vermutet.

      Wie!? Es gibt keine Möglichkeit "festzustellen", ob ein Artikel nur vorübergehend oder dauerhaft deaktiviert ist? Wie unterscheidet man denn dann zwischen den Zuständen?

      im Augenblick nur manuell: der Kunde deaktiviert und aktiviert seine Produkte selbst, da wird nicht unterschieden. Hier würde eine Scriptlösung künftig sicher etwas helfen.
      Gruß aus Köln-Ehrenfeld,

      Elya

      --
      We are drowning in information but starved for knowledge. John Naisbitt
      1. Hallo

        »» Wie!? Es gibt keine Möglichkeit "festzustellen", ob ein Artikel nur vorübergehend oder dauerhaft deaktiviert ist? Wie unterscheidet man denn dann zwischen den Zuständen?

        im Augenblick nur manuell: der Kunde deaktiviert und aktiviert seine Produkte selbst, da wird nicht unterschieden. Hier würde eine Scriptlösung künftig sicher etwas helfen.

        Sollte es in XTC nicht einen Produktstatus wie "momentan nicht lieferbar" geben, an dem sich das unterscheiden ließe?

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        Veranstaltungsdatenbank Vdb 0.3
        1. Hallo Auge,

          Sollte es in XTC nicht einen Produktstatus wie "momentan nicht lieferbar" geben, an dem sich das unterscheiden ließe?

          meines Wissens nur in Verbindung mit aktivierten Lagerverwaltungsoptionen - also daß Lagermengen mit eingepflegt werden und diese vom Shop runtergerechnet werden. Dies wird hier jedoch aus verschiedenen Gründen nicht genutzt.

          Gruß aus Köln-Ehrenfeld,

          Elya

          --
          We are drowning in information but starved for knowledge. John Naisbitt
  3. Hi,

    heute mal wieder etwas aus der beliebten Serie "wie helfe ich meinem SEO-abhängigen Kunden" ;-)

    "Lobotomie - und schon ist Ruhe."

    Nun haben wir z.B. ausgelaufene Produkte auf Wunsch des Kunden mit einem Status 301 auf eine statische Infoseite geführt ("gibt's nicht mehr, such dir was anderes aus"). Dies scheint von Google recht negativ bewertet worden zu sein (deutliches Absacken in den Ergebnissen...).

    Ist ja auch nicht sonderlich nett - jemanden erst mal woanders hin schicken, nur um ihm dort zu sagen, "gibt's nicht mehr". Das gilt in Bezug auf den menschlichen Nutzer - der Suchmaschine wird das ja noch nicht mal mitgeteilt (wenn die Infoseite, wie ich wohl annehme, mit 200 OK ausgeliefert wird). Die hat jetzt also nur die Info, dass die Infos zum Produkt jetzt permanent unter einer anderen Adresse abrufbar sein sollen - und findet sie dort dann aber nicht mehr.

    Zukünftig soll ein Status 404 für tatsächlich entfernte Produkte geschickt werden.

    410 Gone soll besser wirken, wenn man "tote" Links auch wirklich aus den SuMa-Ergebnisseiten heraus bekommen will.

    Diese kann ich jedoch nicht anhand des Status aus der Datenbank auslesen, da es ja auch "vorübergehend" deaktivierte Produkte gibt, die dann wieder einen anderen Status erhalten sollen. (Kann mir noch jemand folgen?)

    Das sind doch dann zwei verschiedene Statii - durchaus unterscheidbar.

    Btw., was soll denn mit letzteren nach aussen hin passieren - "normale" Produktseite ausgeben, mit der Info "gibt's erst zum x.y.2009 wieder", oder ...?

    XTCommerce schmeißt bei nicht gefundenen Produkten (z.B. deaktivierten) auch nicht von selber einen 404er, sondern eine hübsche Suchseite, siehe z.B. in diesem Demoshop.

    Wenn es die wenigstens mit einem 404/410 ausliefern würde, und nicht als 200 ...

    Frage: Wie managt Ihr besonders "lebendige" Seiten, bei denen sich ständig etwas ändert, in Sachen Statusvergabe? Wir haben nach einem Umzug eine fette Liste in die httpconf geschrieben, um die redirects zu handhaben. Aber hier regelmäßig einzugreifen, um nach Bedarf etwas umzuleiten oder Status zu vergeben, kann es ja nun nicht sein. Wenn ich regelmäßig gelöschte Produkte habe: händisches Eintragen in die htaccess? Auch das finde ich recht hölzern zu handhaben. Dynamisch generierte htaccess - Kanonen auf Spatzen? Gesucht ist ein "Best practice" für derlei Seiten.

    Dynamisch reagieren - ja. Aber nicht durch ständiges neu erstellen einer fetten .htaccess, die der Webserver bei jedem Request erst mal durchpflügen muss.

    Hier passend zu reagieren, wäre Aufgabe der Scriptlogik.
    Das gesuchte Produkt finde ich nicht in der Datenbank? 404
    Das gesuchte Produkt ist zwar in der Datenbank, wird aber nicht mehr angeboten? 410

    Wie auf die temporär "daktivierten" Produkte reagiert werden soll, wäre noch zu klären.
    Kurz-/mittelfristig nicht lieferbar - würde m.E. die Ausgabe einer normalen Seite, die diese Info in Textform für den Nutzer transportiert, rechtfertigen - unter einem 200er Status. Normale Produktinfos auf der Seite wie sonst auch, dann kann ich mich als Kunde schon mal informieren.

    Saisonabhängige Produkte, wie bspw. das Grillzubehör, das in den Wintermonaten nicht angeboten wird - da müsste man überlegen, ob man die wirklich aus dem Katalog rausnehmen will; und wenn ja wie - 410 mit revisit-after o.ä. kombinieren? K.A., wie eine SuMa darauf reagiert.
    Vielleicht auch lieber weiterhin die "normale" Seite ausgeben, mit entsprechender Info an den Nutzer. Damit behält man wenigstens Links, die sich ein mal ihre Aufnahme in den SuMa-Katalog erkämpft haben.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. hi,

      [..]Damit behält man wenigstens Links, die sich ein mal ihre Aufnahme in den SuMa-Katalog erkämpft haben.

      Und wenn die SuMa haufenweise Seiten im Index hat, die einst mit einem 404er ausgeliefert wurden, kannste die ja mit einer aktuellen Linkliste auf eigene Inhalte wiederbeleben.

      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    2. Hallo ChrisB,

      heute mal wieder etwas aus der beliebten Serie "wie helfe ich meinem SEO-abhängigen Kunden" ;-)

      "Lobotomie - und schon ist Ruhe."

      Grabesruhe... ich geh dann schonmal nachhause ;-)

      Zukünftig soll ein Status 404 für tatsächlich entfernte Produkte geschickt werden.

      410 Gone soll besser wirken, wenn man "tote" Links auch wirklich aus den SuMa-Ergebnisseiten heraus bekommen will.

      ja, den habe ich auch inzwischen gefunden, klingt logisch.

      Diese kann ich jedoch nicht anhand des Status aus der Datenbank auslesen, da es ja auch "vorübergehend" deaktivierte Produkte gibt, die dann wieder einen anderen Status erhalten sollen. (Kann mir noch jemand folgen?)

      Das sind doch dann zwei verschiedene Statii - durchaus unterscheidbar.

      mit zusätzlicher Scriptlogik, ja.

      Btw., was soll denn mit letzteren nach aussen hin passieren - "normale" Produktseite ausgeben, mit der Info "gibt's erst zum x.y.2009 wieder", oder ...?

      eher eine Übergangsseite mit statischen Infos, aber was dynamisches wäre sicher sinnvoller.

      XTCommerce schmeißt bei nicht gefundenen Produkten (z.B. deaktivierten) auch nicht von selber einen 404er, sondern eine hübsche Suchseite, siehe z.B. in diesem Demoshop.

      Wenn es die wenigstens mit einem 404/410 ausliefern würde, und nicht als 200 ...

      das könnte man ja vielleicht auch noch einbauen...

      Dynamisch reagieren - ja. Aber nicht durch ständiges neu erstellen einer fetten .htaccess, die der Webserver bei jedem Request erst mal durchpflügen muss.

      danke, meine Rede.

      Hier passend zu reagieren, wäre Aufgabe der Scriptlogik.
      Das gesuchte Produkt finde ich nicht in der Datenbank? 404
      Das gesuchte Produkt ist zwar in der Datenbank, wird aber nicht mehr angeboten? 410

      Wie auf die temporär "daktivierten" Produkte reagiert werden soll, wäre noch zu klären.
      [...]

      gute Anregungen, danke! Es läuft alles auf einen neuen Auftrag zur Script-Erweiterung raus ;-)

      Gruß aus Köln-Ehrenfeld,

      Elya

      --
      We are drowning in information but starved for knowledge. John Naisbitt
  4. Hallo,

    heute mal wieder etwas aus der beliebten Serie "wie helfe ich meinem SEO-abhängigen Kunden" ;-)

    nett gesagt. ;-)

    Es geht um einen recht umfangreichen Shop auf XTCommerce-Basis.

    Zunächst: Auch ich habe Null Erfahrung mit Online-Shops (außer gelegentlich als Kunde). Aber ein paar Dinge sind mir beim Lesen doch auch auf- und eingefallen.

    Nun haben wir z.B. ausgelaufene Produkte auf Wunsch des Kunden mit einem Status 301 auf eine statische Infoseite geführt

    Dazu hat ChrisB schon etwas gesagt. Ergänzend: Wenn du tatsächlich umleiten möchtest, anstatt einen 404/410 zu senden, wäre da 302 (Moved Permanently) nicht treffender als 301 (Moved Temporarily)? Sicher, die technische Wirkung ist dieselbe, die Aussage aber IMHO eine etwas andere. 301 würde ich ausgeben, wenn ich z.B. wartungsbedingt eine Seite mal eben stilllegen muss.

    ("gibt's nicht mehr, such dir was anderes aus").

    Genau diese Info, evtl. kombiniert mit einer Suchmaske oder einem Link auf die Shop-interne Suche würde ich mit 410 ausliefern.

    Zukünftig soll ein Status 404 für tatsächlich entfernte Produkte geschickt werden. Diese kann ich jedoch nicht anhand des Status aus der Datenbank auslesen, da es ja auch "vorübergehend" deaktivierte Produkte gibt, die dann wieder einen anderen Status erhalten sollen.

    Ich gehe mal davon aus, die Datenbank unterschiedet zwischen "verfügbar", "vorübergehend nicht verfügbar" und "endgültig weg", so dass Bestellungen von nicht verfügbaren Artikeln nicht möglich sind.

    Dann würde ich bei "vorübergehend nicht verfügbaren" Artikeln die ganz normale Artikel-Seite anbieten, auch mit einem regulären 200er Status, und nur im Seiteninhalt auf die Nichtverfügbarkeit hinweisen. Hat den Vorteil, dass ich mich zumindest über Eigenschaften (vielleicht auch Preise) des Artikels informieren kann, für den Fall dass das Produkt irgendwann wieder lieferbar ist.

    (Kann mir noch jemand folgen?)

    Ich denke schon. ;-)

    XTCommerce schmeißt bei nicht gefundenen Produkten (z.B. deaktivierten) auch nicht von selber einen 404er, sondern eine hübsche Suchseite

    Bäh, das ist aber blöd!

    Frage: Wie managt Ihr besonders "lebendige" Seiten, bei denen sich ständig etwas ändert, in Sachen Statusvergabe?

    Ich hatte bisher noch keine so umfangreiche Site zu betreuen, und auch noch keinen Shop. Aber aus meiner heutigen Sicht behaupte ich, dass ich diese Geschichten wohl nicht über die Serverkonfiguration regeln würde, sondern über das Script (die Scripts) selbst.

    Schönes Wochenende schonmal,
     Martin

    --
    Zwei Mäuse treiben's miteinander. Sagt der Mäuserich: "Hoffentlich ist nicht wieder alles für die Katz."
    1. Hi,

      Ergänzend: Wenn du tatsächlich umleiten möchtest, anstatt einen 404/410 zu senden, wäre da 302 (Moved Permanently) nicht treffender als 301 (Moved Temporarily)?

      301 ist Moved Permanently;
      302 ist Found - "[t]he requested resource resides temporarily under a different URI".

      307 ist Temporary Redirect - wobei 302 für diesen Zweck gebräuchlicher, bzw. vermutlich auch besser unterstützt ist (auf Client-Seite).

      301 würde ich ausgeben, wenn ich z.B. wartungsbedingt eine Seite mal eben stilllegen muss.

      503 Service Unavailable; plus Retry-After, wenn das Ende des Umstandes absehbar ist.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      1. Hallo,

        »» Wenn du tatsächlich umleiten möchtest, anstatt einen 404/410 zu senden, wäre da 302 (Moved Permanently) nicht treffender als 301 (Moved Temporarily)?
        301 ist Moved Permanently;
        302 ist Found - "[t]he requested resource resides temporarily under a different URI".

        oops, dann habe ich das offensichtlich verwechselt, danke.

        »» 301 würde ich ausgeben, wenn ich z.B. wartungsbedingt eine Seite mal eben stilllegen muss.
        503 Service Unavailable; plus Retry-After, wenn das Ende des Umstandes absehbar ist.

        Auch gut, es sei denn, ich will anstatt der üblichen Seite vorübergehend zur Überbrückung etwas anderes anbieten.

        Ciao,
         Martin

        --
        F: Was ist wichtiger: Die Sonne oder der Mond?
        A: Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.
    2. [latex]Mae  govannen![/latex]

      wäre da 302 (Moved Permanently) nicht treffender als 301 (Moved Temporarily)?

      Du verdrehst hier gerade etwas.

      Siehe auch Anmerkungen zu 303/307 bei 302 @ HTTP/1.1.

      Cü,

      Kai

      --
      „It's 106 miles to Chicago, we got a full tank of gas, half a pack of cigarettes,
      it's dark, and we're wearing sunglasses“.  „Hit it!“
      Foren-Stylesheet Site Selfzeugs
      SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?