Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: duplicate Content für Artikellisten

    timopaul

    • modified Team
    • Beiträge: 360
    • Geschlecht:
    duplicate Content für Artikellisten
    am: 18. Februar 2015, 11:48:07
    Liebe Community,

    hier ist mal wieder ein Problem bei dem ich bisher noch keine optimale Lösung finden konnte, auch Google oder die Forensuche ;-) brachte mich nicht weiter.

    Folgendes Szenario: wir haben eine von vielen Kategorien im Shop mit 50 Produkten, pro Seite werden 30 Produkte angezeigt, macht also zwei Seiten:

    http://domain.tld/Kategorie:::1.html mit den ersten 30 Produkten und
    http://domain.tld/Kategorie:::1:2.html mit weiteren 20 Produkten

    Das funktioniert und keiner beschwert sich, Google und seine Freunde nehmen auch brav beide URL's in ihren Index auf.

    Nun nimmt der Shop-Betreiber 19 beliebige Produkte aus der Kategorie raus, weil es diese ganz einfach nicht mehr gibt. Jetzt wird auf der zweiten Seite nur noch ein Produkt angezeigt, dass aber gefällt dem Shop-Betreiber nicht und das Limit wird von 30 auf 50 gesetzt um alle Artikel auf einer Seite anzuzeigen. Da es nun keine zweite Seite mehr gibt werden für beide Links die gleichen Produkte angezeigt, in der gleichen Reihenfolge, beide Seiten haben Ihre spezielle URL auch als Canonical-Tag. Hier ist das Problem!

    Die Information, wie viele Seiten mit Artikeln es gibt, habe ich erst wenn ich die Produkte aufliste, in der Datei /includes/modules/product_listing.php. Hier kann ich allerdings kein Redirect für falsche Seitenzahlen machen da die Ausgabe bereits gestartet wurde. Dieser Redirect müsste in der /includes/modules/metatags.php erfolgen, alternativ könnte ich mir hier auch die korrekte Canonical-URL bilden. Leider habe ich an dieser Stelle noch keine Information darüber wie viele Seiten mit Artikeln es für diese Kategorie gibt.

    Wer hat eine intelligente Lösung für mich?

    Ich möchte bitte keinen Vorschlag haben mir das $listing_sql schon in der metatags.php zusammen zu basteln, das ist nicht intelligent sondern ein dreckiger Workaround.

    Vielen Dank,
    Timo

    Linkback: https://www.modified-shop.org/forum/index.php?topic=32295.0

    web0null

    • Experte
    • Beiträge: 1.998
    Re: duplicate Content für Artikellisten
    Antwort #1 am: 18. Februar 2015, 12:56:50
    Zitat
    Dieser Redirect müsste in der /includes/modules/metatags.php erfolgen, alternativ könnte ich mir hier auch die korrekte Canonical-URL bilden. Leider habe ich an dieser Stelle noch keine Information darüber wie viele Seiten mit Artikeln es für diese Kategorie gibt.

    Na dann lass dir mal folgendes in der metatags.php ausgeben,
    Code: PHP  [Auswählen]
    echo('<pre>'.print_r($listing_split, true).'</pre><hr />');

    Intelligenter weise solltest du wissen das, "/includes/modules/product_listing.php" vor "/includes/modules/metatags.php" geladen wird ;-)

    Hier wird diese Information verwendet.

    Gruß

    timopaul

    • modified Team
    • Beiträge: 360
    • Geschlecht:
    Re: duplicate Content für Artikellisten
    Antwort #2 am: 18. Februar 2015, 13:09:39
    Ahoi,

    dann erhalte ich innerhalb der META-Tags ein:

    Code: XML  [Auswählen]
    <pre></pre><hr />

    $listing_sql ist ebenfalls noch nicht vorhanden. Kommt denn bei dir etwas anderes raus, würde mich ja fast wundern.

    Besten Gruß,
    Timo

    web0null

    • Experte
    • Beiträge: 1.998
    Re: duplicate Content für Artikellisten
    Antwort #3 am: 18. Februar 2015, 13:14:37
    Ja klar kommt bei mir etwas heraus... die Informationen der split_page.
    Muss es ja auch, wenn du dir die Reihenfolge ansiehst, wie diese Dateien geladen werden.
    Du rufst eine Listing Seite mit Produkten (nicht nur Unterkategorien) auf, und bei die kommt nichts raus?

    Aber wenn du nur umleiten willst (z.B. 404) dann kannst du das auch in der "modules/product_listing.php" machen da die sowieso vor "metatags.php" geladen wird.

    ... bzw. würde ich es gleich in der "split_page_results.php" machen, dann greift es bei allen Seiten mit Folgeseiten.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: duplicate Content für Artikellisten
    Antwort #4 am: 18. Februar 2015, 13:31:25

    timopaul

    • modified Team
    • Beiträge: 360
    • Geschlecht:
    Re: duplicate Content für Artikellisten
    Antwort #5 am: 18. Februar 2015, 13:38:01
    Olá

    [ ... ]
    Intelligenter weise solltest du wissen das, "/includes/modules/product_listing.php" vor "/includes/modules/metatags.php" geladen wird ;-)
    [ ... ]

    ich hätte wohl erwähnen sollen dass das Problem in einem modifizierten 1.05er-Shop aufgefallen ist. In der aktuellen Shop-Version ist es so, korrekt, nur damals war es nicht so, habe es mir mal in der index.php angepasst. Besten Dank für den dezenten Hinweis.

    Um das Problem zu lösen habe ich in der Datei /includes/modules/metatags.php vor dem Block:

    Code: PHP  [Auswählen]
        //-- Canonical-URL
        //-- http://www.linkvendor.com/blog/der-canonical-tag-%E2%80%93-was-kann-man-damit-machen.html
        if (xtc_not_null($cPath)) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, 'cPath='.$cPath.$page_param,$request_type,false);
        } elseif (xtc_not_null($manu_id)) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manu_id.$page_param,$request_type,false);
        } elseif ($startpage) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, '', $request_type,false);
        }
        break;

    folgendes eingefügt:

    Code: PHP  [Auswählen]
        // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2015-02-17 - redirect to last page if selected page number does not exists
        if ($listing_split instanceof splitPageResults && (int) $_GET['page'] > $listing_split->number_of_pages) {
          xtc_redirect(xtc_href_link(FILENAME_DEFAULT, xtc_get_all_get_params(array('page', 'language')) . '&page=' . $listing_split->number_of_pages));
        }
        // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2015-02-17 - redirect to last page if selected page number does not exists

    um die korrekte Umleitung zu ermöglichen.

    Vielen Dank und einen angenehmen Tag,
    Timo

    timopaul

    • modified Team
    • Beiträge: 360
    • Geschlecht:
    Re: duplicate Content für Artikellisten
    Antwort #6 am: 18. Februar 2015, 13:41:36
    Nein, das ist doch nicht so schön wie ich dachte. Habe den Block nun zurück in die /includes/modules/product_listing.php geschoben, unterhalb von:

    Code: PHP  [Auswählen]
    $listing_split = new splitPageResults($listing_sql, (int)$_GET['page'], MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');

    also ein:

    Code: PHP  [Auswählen]
    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2015-02-17 - redirect to last page if selected page number does not exists
    if ((int) $_GET['page'] > $listing_split->number_of_pages) {
      xtc_redirect(xtc_href_link(FILENAME_DEFAULT, xtc_get_all_get_params(array('page', 'language')) . '&page=' . $listing_split->number_of_pages));
    }
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2015-02-17 - redirect to last page if selected page number does not exists

    das ist bedeutend schöner.

    Besten Gruß,
    Timo
    rechtstexte für onlineshop
    12 Antworten
    7538 Aufrufe
    14. Mai 2012, 16:55:49 von web0null
    1 Antworten
    2055 Aufrufe
    03. April 2013, 08:21:02 von Alfred
    3 Antworten
    3067 Aufrufe
    11. November 2011, 11:42:35 von Lucky
    3 Antworten
    2159 Aufrufe
    02. Februar 2017, 21:51:54 von UGOSI