Hreflang & Canonical: Duplicate Content Probleme auf Internationalen Seiten

29. 04. 2016
|
SEO Wissen & Tipps
|
Magnaduf / Pixabay

Mehrsprachige oder Internationale Seiten sind oft eine besondere Herausforderung in Sachen Suchmaschinenoptimierung. Besonders wenn es Seiten in der selben Sprache für verschiedene Regionen gibt, wie zum Beispiel eine deutschsprachige Version für den Deutschen Markt, die natürlich auf google.de ranken soll und zusätzlich eine deutschsprachige Version für den österreichischen Markt, die dann österreichische Usern auf google.at finden sollen.

Die Folge: ziemlich viele Inhalte werden ziemlich gleich sein, vielleicht ändern sich zum Beispiel nur einzelne Adressen oder Preise. Ein Duplicate Content Problem?

hreflang Attribut um verschiedene Versionen zu kennzeichnen

Um (auch) dieses Problem zu lösen gibt es aber die hreflang-Auszeichnungen mit denen verschiedene Seitenversionen für verschiedene Regionen und / oder Sprachen miteinander verknüpft werden können und der Maschine hilft die verschiedenen Versionen zu interpretieren.
Damit verstehen Google & Co, dass es nicht um doppelte Inhalte handelt, sondern dass diese Inhalte für ein spezifisches Publikum gedacht sind.

hreflang dient nicht nur der Vermeidung von Duplicate Content bei zwei Versionen in der gleichen Sprache, sondern dient grundsätzlich dazu, dass Versionen richtig verstanden werden.

 

Leider gibt es in der Praxis immer wieder Probleme mit der korrekten Implementierung des hreflang Attributs.

Grundsätzlich stehen die Sprachverknüpfung meist im HTML Head und bestehen aus einem Tag mit den Attributen rel=“alternative“, dem besagten hreflang=“x“ Attribut und der URL der alternativen Version als href=http://www.domain.com.

Gibt es 3 etwa verschiedene Versionen, zwei deutschsprachige für Deutschland und Österreich und noch eine „internationale“ auf Englisch sähe die Auszeichnung also so aus:

<link rel="alternate" hreflang="de-DE" href="http://www.domain.com/de/" />
<link rel="alternate" hreflang="de-AT" href="http://www.domain.com/at/" />
<link rel="alternate" hreflang="en" href="http://www.domain.com/" />

Alternativ können diese Angaben aber auch im http-Header oder über eine XML-Sitemap gelöst werden. Wie die Sprachversionen voneinander getrennt sind, ist dabei egal. Möglich wäre es, die Aufteilung über Subfolder, Subdomains oder eigene TLDs zu lösen.

Wichtig ist aber einige grundlegende Regeln zu beachten:

Erstens müssen natürlich alle Seiten einer Website miteinander verknüpft sein und nicht nur die Homepages, wobei natürlich auch immer die jeweiligen Subseiten verknüpft sein müssen.Gibt es eine Subseite in einer Sprache nicht, darf es auch keine hreflang Links zu diesem nicht vorhandenen Pendant geben.

Das hreflang-Attribut muss zweitens selbstreferenziell sein. Der Verweis auf die eigene URL als alternative Seite ist also immer mit dabei.

Drittens müssen über hreflang verlinkte URLs auch immer zurückverlinken. Eine einseitige Auszeichnung in nur einer Sprachversion bringt nichts. Dazu sollten viertens auch immer absolute URLS angegeben werden.

Hreflang & Canonical Tags gemeinsam einsetzen

Nun kann es aber auch vorkommen, dass ein Inhalt schon auf einer Sprachversion über verschiede URLs geladen wird. Ein klassisches Beispiel dafür sind immer Produkte, die in verschiedenen Kategorien eines Shops geladen werden.

Die URLs sehen zum Beispiel also so aus:

meinshop.com/kategorie1/meinprodukt/
meinshop.com/kategorie2/meinprodukt/

Um diese Form von Duplicate Content zu vermeinden setzt man in der Regel das Canonical Tag ein um eine Version des Inhalts, also in unserem Fall der Produktseite als kanonische Version zu markieren.

Also zum Beispiel durch

<link rel=“canonical“ href=“http://meinshop.com/kategorie1/meinprodukt/“ />

auf meinshop.com/kategorie2/meinprodukt/ (und selbstreferenziell auch auf meinshop.com/kategorie1/meinprodukt/ ).

Google weiß: OK – dieser Inhalt liegt auf beiden URLs, aber die kanonische Version soll bevorzugt werden.

Nun kann es natürlich vorkommen, dass eben jenes Problem auch in einer mehrsprachigen Website vorkommen kann, also etwas in diese Richtung:

Im Deutschen Shop, wie oben beschrieben lautet auf beiden Seiten

meinshop.com/kategorie1/meinprodukt/
meinshop.com/kategorie2/meinprodukt/

das Canonical Tag

<link rel=“canonical“ href=“http://meinshop.com/kategorie1/meinprodukt/“ />

Zusätzlich haben wir aber eine englische Version mit dem selben Problem:

en.meinshop.com/category1/myproduct/
en.meinshop.com/category2/myproduct/

beide mit Canonical auf

<link rel=“canonical“ href=“ http://en.meinshop.com/category1/myproduct/“ />

Haben wir jetzt diese Situation auf zwei oder mehr Sprachversionen heißt es aufpassen!

Würde man jetzt einfach die hreflang Auszeichungen zusätzlich auf allen Seiten laden, würde das zu unterschiedlichen Signalen führen. Und wir möchten nicht, dass Google verwirrt ist.

Auf meinshop.com/kategorie2/meinprodukt/ würden die hreflang Tags den Robot auf alternative Versionen dieser Seite auf anderen URLs hinweisen, die es zu indexiert gibt. Gleichzeitig sagt man über das Canonical auf die URL meinshop.com/kategorie1/meinprodukt/, dass es nur diese andere Seite indexiert werden soll.

Auch der Ansatz, alle die hreflang tags auf allen Seiten immer nur auf die kanonischen Versionen (also /kategorie1/ bzw. /category1/) zeigen zu lassen funktioniert nicht. Das Problem: Auf meinshop.com/kategorie2/meinprodukt/ oder en.meinshop.com/category2/myproduct/ gäbe es keine selbstreferenziellen hreflang Auszeichnungen.

Die Lösung: Nur URLs, die nicht per Canonical-Tag auf eine andere URL verweisen, sollten mit dem hreflang-Attribut ausgezeichnet sein. Ein selbstrefenzielles Canonical-Tag ist kein Problem.

In unserem Beispiel wären die Tags dann auf meinshop.com/kategorie1/meinprodukt/ dann:

<link rel="alternate" hreflang="de" href=" http://meinshop.com/kategorie1/meinprodukt/" />
<link rel="alternate" hreflang="en" href=" en.meinshop.com/category1/myproduct/" />


<link rel=“canonical“ href=“http://meinshop.com/kategorie1/meinprodukt/“ />

aber auf meinshop.com/kategorie2/meinprodukt/ lediglich

<link rel=“canonical“ href=“http://meinshop.com/kategorie1/meinprodukt/“ />

ebenso auf der englischen Version en.meinshop.com/category1/myproduct/

<link rel="alternate" hreflang="de" href=" http://meinshop.com/kategorie1/meinprodukt/" />
<link rel="alternate" hreflang="en" href=" en.meinshop.com/category1/myproduct/" />

<link rel=“canonical“ href=“ http://en.meinshop.com/category1/myproduct/“ />

aber auf en.meinshop.com/category2/myproduct/ wieder nur

<link rel=“canonical“ href=“ http://en.meinshop.com/category1/myproduct/“ />