Eine Kategorie hat ein canonical-tag die andere nicht. Erklärung?

Hallo,

es sind mehrere Kategorien (und Unterkategorien) im Shop. Aber für manche Kategorien wird ein Canonical-tag für andere nicht. Wie läst ich das erklären und natürlich vereinheitlichen. Ich habe auch schon die in …frontend/listing/header.tpl geändert und mal ausserhalb von {block name=‚frontend_index_header_canonical‘} ein zweites canonical angelegt. Die Kategorien die schon vorher ein canonical-tag hatten, haben dann, wie erwartet, zwei. Aber die Kategorien die keines haben, haben auch weiterhin keins. werden sie nicht durch die listing/header.tpl erzeugt? Das Problem betrifft Haupt und Unterkategorien gleichermaßen und ich kann kein Schema darin erkennen. Alle caches wurden nach jeder Änderung natürlich gründlich gelöscht.

Ich hab grade ganz große Fragezeichen in den Augen.

 

Viele Grüße

rowa

Kannst Du das im Shopware- Demoshop nachstellen?
Wenn nicht, stimmt in Deinem Shop was nicht.
Fehler im Theme, Einstellungen, …

@simplybecause schrieb:

Kannst Du das im Shopware- Demoshop nachstellen?
Wenn nicht, stimmt in Deinem Shop was nicht.
Fehler im Theme, Einstellungen, …

Hallo und danke für Deine Antwort,

Welchen Demo Shop meinst Du? Ich weiß auch nicht was das bringen soll, leider habe ich grade nicht die Zeit einen guten Bugreport dafür zu erzeugen. Wir haben mehrer tausend Produkte im Shop für die grade die SEO-Rankings abstürzen und dutzende Kategorien von denen einige wenige nicht funktionieren. Ich wüsste nicht wie ich das schnell mal nach bauen sollte.

Ich weiß leider nicht so richtig, wo ich noch anfangen soll zu schauen, denn die Canonical Einstellung ist in der header.tpl ja immer die gleiche.

 

Viele Grüße

rowa

Hallo,

er meint den offiziellen Demoshop von Shopware: http://www.shopwaredemo.de/ .

Beste Grüße

Sebastian

Danke.

Ich versuche das Problem zu debuggen. Unter Debugging Shopware steht, das nur das DebugPlugin installiert werden muss und schon erscheinen Debugmeldungen in der Dev-Console ich hab auch meine externe-IP im Plugin eingetragen. Aber weder im FF noch im Chrome sehe ich irgend einen output und auch das Sencha-Plugin sagt, dass kein Sencha gefunden wurde.

MIttels {debug} konnte ich jetzt wesentliche Unterschiede feststellen:

- var $sCategoryContent enthält deutlich weniger Infos als auf einer Seite bei der der Canonical funktioniert. zB:
 - $sCategoryContent.metaTitle ist leer
 - $sCategoryContent.metaDescription ist leer
 - einen $sCategoryContent.sSelfCanonical hat es lustigerweise
 - einen $sCategoryContent.sSelf dagegen nicht

Daten einer Kat wo der Canonical funktioniert:
- $sCategoryContent.canonicalParams => Array (2) 
   - sViewport => "cat"
   - sCategory => 238
 - $sCategoryContent.Smarty_Variable Object (3)
  - ->value = Array (1)
   - sCategory => 238
 ->nocache = null
 ->scope = "snippet:frontend/listing/header.tpl"

Daten einer Kat wo der Canonical nicht funktioniert:
- $sCategoryContent.canonicalParams => Array (3)
  - sViewport => "listing"
  - sAction => "manufacturer"
  - sSupplier => 5
 - $sCategoryContent.ajaxCountUrlParams Smarty_Variable Object (3)
  - ->value = Array (2)
   - sSupplier => "5"
   - sCategory => 3
 ->nocache = null
 ->scope = "snippet:frontend/listing/header.tpl"

Besonders stutzig macht mich da natürlich der völlig unterschiedliche Inhalt von canonicalParams. Aber ich hab keine Erklärung wodurch die Abweichung zustande kommt.

So, die Erklärung:

Die Standard listings/header.tpl verhindert das Kategorien, die nicht paginieren müssen (weil zu wenige Artikel), keinen canonical bekommen. Sprich Seiten, die nur eine oder sogar Null Artikelseiten haben, erhalten kein Canonical. Was SEO Mässig wohl nicht so gut ist. Das hab ich hierdurch gefixt:

{* Canonical link *}
{block name='frontend_index_header_canonical'}
       [...]
    {if {config name=seoIndexPaginationLinks} && $showListing && $pages > 1}
       [...]
    {/if}

    {if $pages == 1 || $pages == 0}
      {* für nur Kategorien die Null oder Eine Artikelseite haben *}
      
    {/if}

{/block}

 

Ganz toll wäre jetzt noch wenn sich im template folgendes sagen lassen könnte:

Wenn die Besucher-URL ein paginierter Aufruf ist ("?p=[0-9]") dann bitte kein canonical. Ist die Auswertung der request-URL hier möglich? Wenn ja, wie?