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: Fehler des Canonical bei paginierten Seiten

    HaldOn

    • Fördermitglied
    • Beiträge: 486
    Fehler des Canonical bei paginierten Seiten
    am: 14. September 2018, 11:33:12
    Hallo zusammen,

    in der Shopversion 2.0.3 (auch im aktuellen Demoshop 2.0.4) gibt es meiner Meinung nach einen Fehler beim Canonical Tag wenn Seiten Paginiert sind.

    Beispiel Kategorie Seite 2:
    falsch (aktuell)
    Code: PHP  [Auswählen]
    <link rel="canonical" href="https: //www.examlpe.de/Kategorie---1.html" />
    <link rel="prev" href="https: //www.examlpe.de/Kategorie---1.html" />
    <link rel="next" href="https: //www.examlpe.de/Kategorie---1-3.html" />

    Richtig sollte es so sein
    Code: PHP  [Auswählen]
    <link rel="canonical" href="https: //www.examlpe.de/Kategorie---1-2.html" />
    <link rel="prev" href="https: //www.examlpe.de/Kategorie---1.html" />
    <link rel="next" href="https: //www.examlpe.de/Kategorie---1-3.html" />

    Der Fehler ist den rel=canonical auf die erste Seite einer Paginierung zu beziehen und nicht auf die angezeigte Seite, im Beispiel Kategorie Seite 2, selbst.

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

    HaldOn

    • Fördermitglied
    • Beiträge: 486
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #1 am: 14. September 2018, 14:43:27
    Wer es auch als Fehler ansieht kann ihn so beheben:

    suche (ungefähr Zeile 430)
    /includes/modules/metatags.php
    Code: PHP  [Auswählen]
      if (xtc_not_null($cPath)) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, 'cPath='.$cPath,'NONSSL',false);
        } elseif (xtc_not_null($manu_id)) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, 'manufacturers_id='.(int)$manu_id,'NONSSL',false);
        } elseif ($startpage) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, '', 'NONSSL',false);
        }

    ersetze mit
    Code: PHP  [Auswählen]
        if (xtc_not_null($cPath)) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, 'cPath='.$cPath.$page_param,'NONSSL',false);
        } elseif (xtc_not_null($manu_id)) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, 'manufacturers_id='.(int)$manu_id.$page_param,'NONSSL',false);
        } elseif ($startpage) {
          $canonical_url = xtc_href_link(FILENAME_DEFAULT, '', 'NONSSL',false);
        }

    manne35

    • Fördermitglied
    • Beiträge: 594
    • Geschlecht:
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #2 am: 14. September 2018, 17:57:40
    Ich denke , Du hast recht, da ja die 2. Seite einen anderen content hat, der sonst nicht abgebildet wird. Seite 1 und Seite 2 sind ja immer anders, also auch verschiedene canonical.
    Ich glaube bei alternate hrefs (mehrsprachig)  ist das genauso.
    Danke Dir fuers Teilen.lgmanne

    HaldOn

    • Fördermitglied
    • Beiträge: 486
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #3 am: 14. September 2018, 18:28:28
    Mehrsprachigkeit, Sonderangebote und Neue Produkte habe ich nicht getestet, da ich sie nicht verwende.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #4 am: 15. September 2018, 01:44:52
    Mmmh, interessant, hat sich meine Wenigkeit länger nicht mit beschäftigt.
    Imho ist der rel="cannonical" bei paginierten Seiten überhaupt unnötig.
    Auch wenn es im I-net viele verschiedene Meinungen über das Thema gibt, ich meine folgendes:
    • Erste Seite nur rel="next"
    • Letzte Seite nur rel="prev"
    • Alle Seiten dazwischen sowohl rel="next" als auch rel="prev"
    Der rel="cannonical" macht ja nur Sinn wenn es Ambiguitäten gibt, wie bei in mehrere Kategorien verlinkten Artikeln.

    Jedenfalls ist es wie es jetzt ist verkehrt bzw. unsinnig.
    Das Thema sollte in ein Ticket überführt werden, als lediglich Thread-Thema geht es evtl. unter.
    Thread-Starter HoldOn ?

    Gruß,
    noRiddle

    *NACHTRAG*
    Das hier halte ich für gut begründet.

    Daß man versucht mit dem rel="cannonical" die Relevanz auf die erste Seite des Pagings zu konzentrieren halte ich für einen Irrweg.

    HaldOn

    • Fördermitglied
    • Beiträge: 486
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #5 am: 15. September 2018, 07:11:12
    Auch wenn es im I-net viele verschiedene Meinungen über das Thema gibt, ich meine folgendes:
    • Erste Seite nur rel="next"
    • Letzte Seite nur rel="prev"
    • Alle Seiten dazwischen sowohl rel="next" als auch rel="prev"
    Der rel="cannonical" macht ja nur Sinn wenn es Ambiguitäten gibt, wie bei in mehrere Kategorien verlinkten Artikeln.

    Jedenfalls ist es wie es jetzt ist verkehrt bzw. unsinnig.


    So sehe ich das auch, aber wenn canonical dann richtig, zumal sich das Problem mit den Filtermöglichkeiten und Sortierfunktionen noch vervielfacht.

    Wie man ein Ticket eröffnet werde ich mir mal ansehen müssen...

    HaldOn

    • Fördermitglied
    • Beiträge: 486
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #6 am: 15. September 2018, 08:43:11

    Jürgen

    • Viel Schreiber
    • Beiträge: 894
    • Geschlecht:
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #7 am: 15. September 2018, 10:31:47
    Hallo zusammen,

    hatte mich über das setzen des cannonical auf die erste Seite bei paginierten/nachfolgenden Seiten auch schon gewundert...

    Hierzu gibt es viele Infos die hiervon abraten/dies als falsch ansehen und entsprechend erklären...

    Hier eine Seite auf welcher das ganze beim Einsatz von Filtern und Sortiermöglichkeiten im template erklärt wird...

    https://www.gsqi.com/marketing-blog/how-to-set-up-pagination-rel-next-prev/

    oder hier zum selben Thema...

    https://www.stonetemple.com/pagination-canonicalization-seo-your-technical-guide/

    Gruss

    Jürgen

    Timm

    • Fördermitglied
    • Beiträge: 6.343
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #8 am: 15. September 2018, 17:03:30
    Danke für die Links. Der erste beinhalted auch noch 2 gute zu Google selbst, die da wären:

    5 common mistakes with rel=canonical
    Indicating paginated content to Google

    Wenn ich das richtig verstehe, dann ist die Kernaussage, dass rel="canonical" entweder die Seite selbst sein muss, oder eine view-all Seite, aber in keinem Fall die erste Seite der Pagination.

    Jetzt frag ich mich:
    • Ist die Filtermöglichkeit "alle anzeigen" überhaupt eine view all Seite, wie es in den Links gemeint ist? 
    • Was, wenn man im Template nicht die Filterbar anzeigen lässt? Dann würde ich annehmen, dass google die view all Seite (sofern es eine ist) nicht findet. Das würde doch dafür sprechen, dass rel="canonical" die paginierte Seite selbst sein sollte, damit es für alle richtig funktioniert.

    Zusätzlich wurde in den Links für Paginationseiten mit Filtern gefordert das rel="prev" und "next" die Filter beinhalten, der rel="canonical" aber nicht:

    Code: XML  [Auswählen]
    <link rel=“prev” href=“https://glennsgloves.com/baseball-gloves/pre-broken-in.htm?price=high” />

    <link rel=“next” href=“https://glennsgloves.com/baseball-gloves/pre-broken-in.htm?page=3&price=high” />

    <link rel=“canonical” href=“https://glennsgloves.com/baseball-gloves/pre-broken-in.htm?page=2” />

    Allerdings fügt der Shop das nicht im head des Seitenquelltext ein. Filter werden dort nicht in rel="prev" und "next" berücksichtigt.

    Dazu kommt, dass die Filter der selbsterstellten Eigenschaften zwar im Link ein
    Code: XML  [Auswählen]
    ?filter_id=...
    haben, jedoch die Shopvorgegebenen Filter wie "Artikel pro Seite" oder "Preis aufsteigend" das gar nicht nutzen.

    Vermutungen:
    Das führt doch dazu, dass Google die Seite nicht richtig verstehen kann, weil der Link für eine erstmalig geöffnete Kategorieseite dem Link der Seite mit aktiviertem Filter "Sortieren nach Preis" zb gleicht, obwohl beide Seiten ganz unterschiedliche Artikel auf der Paginationsseite 1 dann anzeigen.

    Das ganze führt dann wahrscheinlich auch zu den Fehlern in der Google Search Konsole unter dem Punkt "Strukturierte Daten-Html Verbesserungen", wo Seiten mit doppelten Metabeschreibungen bemängelt werden, weil unterschiedliche Filter ausgewählt wurden.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Und am Ende führt das dazu, dass im Index von Google:

    • einerseits Seiten mit Filtern landen und sich die Ergebnisse vervielfachen, aber nicht ranken - wahrscheinlich auch, weil Google das abstraft
      (hab dazu zb einen modifiedshop gefunden, der ca 5mal soviele Ergebnisse im Index hat, wie eigentlich Produktseiten+Kategorieseiten und nein er hat sich nicht besonders viel Mühe gegeben soviele Landingpages zu erstellen, sondern es sind tatsächlich die vielen Filterseiten)
    • und andererseits nur die erste Paginationseite einer Kategorie im Index landet und nicht alle folgenden aber genauso wichtigen paginierten Artikelseiten

    Was am Ende dazu führt, dass man viele unnötige Seiten im Index hat und die wichtigen nicht. Fällt einem aber nur auf, wenn man sich die Ergebnisse von site:meinshop.de bei google mal genauer anguckt. Wenn man nur zählt, könnte man meinen, dass alle Seiten abgebildet werden. Das ganze verstärkt sich natürlich mit Anzahl der Filter und tritt bei Shops ohne Filter nicht auf. Da stimmt die Anzahl der Ergebnisse mit der Sitemap fast überein.

    Gruß Timm

    HaldOn

    • Fördermitglied
    • Beiträge: 486
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #9 am: 15. September 2018, 18:09:20
    Hallo Timm,

    Wenn ich das richtig verstehe, dann ist die Kernaussage, dass rel="canonical" entweder die Seite selbst sein muss, oder eine view-all Seite, aber in keinem Fall die erste Seite der Pagination.

    Jetzt frag ich mich:
    • Ist die Filtermöglichkeit "alle anzeigen" überhaupt eine view all Seite, wie es in den Links gemeint ist? 

    Nein ist keine view-all Seite, die müsste alle vorhandenen Artikel auf einer Seite haben, bei 1000 Produkten alle auf der einen Seite ohne Pagination.

    Problem Filter;
    Die Filter bewirken möglicherweise einen ganz anderen Seiteninhalt als der der ungefilterten Seite (andere Produkte).
    Es soll ein Canonical ja nur auf Seiten verwendet werden die den gleichen Inhalt haben, das ist dann nicht mehr der Fall.
    Zudem erzeugt der Filter einen neue Parameter der an die Url angehangen wird, bei einer einzelnen Seite würde der canonical nützen, aber bei paginierten denke ich nicht mehr.

    Beispiel
    Kategorie ungefiltert besteht aus 100 Produckten auf 5 Seiten, nun filtert man nach dem Hersteller A der nur 2 Produkte in der Kategorie hat, bleibt nur noch eine Seite mit 2 Produkten in der Kategorie übrig.
    Hier ist der canonical auf die erste Seite der Kategorie dann auch falsch.

    Aus meiner Sicht sollten Filter, Sortierungen auf noindex stehen und dann ohne canonical und ohne Paginierung rel=prev / rel=next auf der Seite.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #10 am: 16. September 2018, 13:59:31
    Ich finde Ihr macht es zu kompliziert.
    Ich bezweifele, daß Suchmaschinen-Bots Dropdown-Filter betätigen.
    Gibt es eine "view-all"-Seite dann mit canonical; und ich halte "Alle anzeigen" gar wohl für eine solche.
    Allerdings dürfte sie dem Bot nicht bekannt sein, kann also ignoriert werden.
    Nebenbei bemerkt, müsste diese "Alle anzeigen" ohnehin optional sein, einstellbar im Backend oder der config.php des Templates, denn, wer massig Artikel in einer Kategorie hat, dürfte die Parse-Zeiten sowie den Browser beim Rendern des HTML sprengen. Das muß ausschaltbar sein.

    Paging-Seiten ohne canonical und so
    • Erste Seite nur rel="next"
    • Letzte Seite nur rel="prev"
    • Alle Seiten dazwischen sowohl rel="next" als auch rel="prev"
    wie ich bereits schrieb.

    Gruß,
    noRiddle

    Timm

    • Fördermitglied
    • Beiträge: 6.343
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #11 am: 16. September 2018, 14:26:16
    Ich bezweifele, daß Suchmaschinen-Bots Dropdown-Filter betätigen.

    Und wie kommen dann solche Seiten von mir in den Index?

    https://www.meinedomain.de/Naehzubehoer:::14.html?filter%5B6%5D=18

    Wie kann man das abstellen, dass die Filter in den Ergebnissen auftauchen? Mit einer Angabe in der robots.txt?

    Bsp aus der Praxis:
    Amazon und Otto haben ihre Paginationseiten mit rel="canonical" auf die entsprechende Paginationseite selbst gesetzt. Also auch nicht auf die erste Paginationseite.

    Und Amazon, Otto und Ebay nutzen rel="prev" und "next" überhaupt nicht.  :-?

    Gruß Timm

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #12 am: 16. September 2018, 18:04:15
    Ich bezweifele, daß Suchmaschinen-Bots Dropdown-Filter betätigen.
    [...]
    Wie kann man das abstellen, dass die Filter in den Ergebnissen auftauchen? Mit einer Angabe in der robots.txt?
    [...]

    Also von SEO habe ich nicht viel Ahnung, aber ich würde meinen damit -> https://support.google.com/webmasters/answer/93710?hl=de und ev. noch damit -> https://support.google.com/webmasters/answer/96569?hl=de

    Gruss
    Hanspeter

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #13 am: 16. September 2018, 18:56:06
    Ich bin auch kein SEO-Fachmann (und sehr sehr viele die behaupten einer zu sein ebenso nicht :-D).
    Also ehrlich gesagt sind Größen wie Amazon, Otto usw. kein Vorbild für mich.
    Bei solchen Größen habe ich code-, anwendungs- und logik-technisch schon soviel Müll gesehen...
    Wir sollten uns an Googles Vorgaben halten.

    Wie ein Filter-Get-Parameter in eine URL in die SEPRs kommt kann ich dir nicht sagen (und dann auch noch urlencode-d).
    Sitemap ?
    jemand eine solche URL irgendwo im I-net gepostet ?
    du selbst als Link in irgendeinem Text im Shop ?

    Ich kann mir überhaupt nicht denken, daß ein Suchmaschinen-Bot alle möglichen Dropdowns anklickt und rumtestet (wenn das technisch überhaupt geht).

    Da wir sehen, daß solche URLs irgendwie verbreitet werden können, wenn es denn so ist, daß bei dir eine solche URL in den SERPs steht
    - würde ich gerne mal sehen, gib mal ein Suchwort... -
    wäre die richtige Lösung dann in der Tat ein canonical auf sich selbst (ohne Filterparameter, was mittels xtc_get_all_get_params() leicht machbar wäre, denke ich).

    Das hier halte ich zum Beispiel für eine solide Erklärung (für die die Englisch verstehen).

    Und, wie gesagt, "Alle anzeigen" ist eine "view-all"-Seite, da müsste man ja dann auch was tun (auch wenn es an der URL nicht sichtbar ist). Da eine Suchmaschine diese "Alle anzeigen" aber nicht kennt ist es schnuppe.
    Außerdem wollen wir ja nicht irgendwelchen Vorgaben blind folgen sondern steuern was in den SERPs gelistet wird und wie.

    Gruß,
    noRiddle

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.853
    • Geschlecht:
    Re: Fehler des Canonical bei paginierten Seiten
    Antwort #14 am: 17. September 2018, 06:43:46