Duplicate Content bei Sprachen (/en)?

In unserem Shop haben wir 2 Shops (Subshop) mit je 2 Sprachen (deutsch und englisch mit der URL /en/) eingestellt. Allerdings sind nun alle Links sowohl mit, als auch ohne /en/ in beiden Shops erreichbar (ohne Canonical-Tag!).

Beispiel:

Für Google wäre das sicher Duplicate Cotnent. Im Forum konnte ich dazu nichts finden, ist das ein Fehler oder habe ich etwas übersehen? 

Nutze mal Sistrix Smart (kostenlos): https://www.sistrix.de/smart/. Dies zeigt dir an ob es als Duplicated Content gewertet wird und zwar unter der Rubrik Fehler.

ich denke, das ist offensichtlich, da der exakt gleiche Content unter 4 URLs erreichbar ist und in keinem der URLs ein Canoical-Tag eingetragen ist. Das kann doch nicht sein, dass das normal ist oder? Das muss doch ein Fehler sein?

Andernfalls wäre es für SEO katastrophal. 

Ich weiß nicht wie es sein müsste aber /en/ dürfe doch nur den englischen Content ausspielen. Ohne /en/ sicherlich nur den deutschen.

Hallo e24,

ich gehe davon aus, dass der gleiche Artikel in verschiedenen Sprachen im schlimmsten Fall bei Google als duplicate content gerated wird. Ein weiterer Punkt ist, dass Google im Idealfall jedem Benutzer eine Version der Seite in seiner Sprache präsentiert. Dafür gibt es den hreflang-Tag, den man in Verbindung mit dem Canonical sehen muss.

Um diese Tags zu setzen, gibt es soweit ich weiß ein oder mehrere Plugins. Es ist aber auch nicht schwierig, das selbst in den Custom-Templates zu machen. Wir haben das z.B. bei

https:/duessel-stapler.de

umgesetzt. Schau Dir mal eine Detailseite in beiden Sprachen an. Bei den Artikeln ist es einfach, weil es eine 1:1-Beziehung in den Sprachen gibt. Bei den Kategorien und CMS-Seiten ist das ja nicht unbedingt der Fall, muss also dann Shop-spezifisch definiert werden (also z.B. Zuordnung von „Versandkosten“ zu „Shipping“).

Du kannst das für die Artikel in Deinem Custom-Theme z.B. so machen:

  1. Eine Datei …/deinTheme/frontend/_includes/hreflang.tpl anlegen mit diesem Inhalt:

    {*

    • …/frontend/_includes/hreflang.tpl
    • Sets hreflang tags for de and en language versions for ‚simple‘ URL strings, i.e. where
    • language is indicated by ‚/de‘ or ‚/en‘ (define these properly in the shop/language subshop settings)
    • hreflang tags are set only for those pages where canonical and actual URL are identical - otherwise, the
    • current page is just a redirect (typically to home page)
    • Parameter: $myCanon - canonical url as determined by shopware
    • © van Wittlaer, 2017
      *}
      {assign myUrl $smarty.server.REQUEST_SCHEME|cat:"://"|cat:$smarty.server.HTTP_HOST|cat:$smarty.server.REQUEST_URI}
      {assign myLang ‚/‘|cat:($Locale|substr:0:2)|cat:’/’}
      {assign myPos strpos($myUrl, $myLang)}
      {if $myPos !== false && $myCanon == $myUrl}

    {/if}

  2. In …/deinTheme/frontend/detail/header.tpl diesen Block einfügen:

    {block name=‚frontend_index_header_canonical‘}
    {$smarty.block.parent}
    {include file=„frontend/_includes/hreflang.tpl“ myCanon="{url sArticle=$sArticle.articleID title=$sArticle.articleName}"}
    {/block}

Voraussetzung ist, dass der deutsche Shop mit der virtuellen URL /de angelegt ist, und der englische Subshop mit /en. (Und natürlich, das alle Artikel auch in beiden Shops angeboten werden!)

Viel Erfolg!

Geert

1 „Gefällt mir“

danke @vanwittlaer‍ für die Auflistung… aber das kann ja nicht die Lösung sein den Core-Code zu ändern, um kein vierfachen Duplicate-Content in Standard-Seiten zu haben. 

Das Problem scheint also nicht nur bei mir aufzutreten. Kann mir jemand helfen, wieso manche Shops das Problem haben, manche nicht?

 

Geht es denn nur um die Shopseiten?
Da kannst du ja per Shoplimitierung sagen, in welchem Shop die angezeigt werden sollen. Wenn da nichts definiert ist, sind die in allen Shops erreichbar.

Hi Moritz,

ja, durch die Shop-Limitierung in allen einzelnen Seiten, werden zumindest die generierten Seiten URLs (/seitexyz) nicht mehr angezeigt. Allerdings generiert Shopware trotzdem für jede Seite eine Art System-URL ähnlich “/custom/index/sCustom/84”, jeweils

  • mit und ohne /en
  • für jeden Shop / Domain

Bleibt also dennoch ein mindestens 4-facher Duplicate Content. Für Google ist das inakzeptabel. Wir haben das Problem per htacess-Befehl

RewriteRule ^(.*)sCustom(.*)$ http://%{HTTP_HOST}%/404-seite-nicht-gefunden [L,R=301]

gelöst, sollte aber mE standardmäßig sauberer von SW gelöst sein.