Das hreflang-Attribut wurde im Dezember 2011 von Google eingeführt und wird benötigt, sobald es von einer Webseite mehr als eine Sprachversion gibt. Hierdurch wird sichergestellt, dass dem Benutzer bei den Suchergebnissen die Internetseite in seiner Sprache angezeigt wird und zusätzlich lässt sich damit Duplicate Content vermeiden.
<html>
<head>
<link rel="alternate" hreflang="de-DE" href="https://seitenreport.de/" />
</head>
</html>
Sofern die Internetseite schon in mehrere Sprachen gepflegt wird, möchte man damit auch erreichen, dass dem User die für ihn passende Seite angezeigt wird. Zum einen erreicht man hierdurch eine höhere Verweildauer, da sich der Benutzer durch seine Sprache natürlich eher angesprochen fühlt, als eine ihm unverständliche Sprache.
Zum anderen lassen sich durch das hreflang-Attribut Doppelte Inhalte vermeiden. Nehmen wir an, die Internetseite wird für Deutschland und Österreich zur Verfügung gestellt. Hierbei entstehen nahezu identische Inhalte auf unterschiedlichen URLs und Google könnte sich dazu entscheiden, nur eine davon zu indexieren. Mithilfe des Attributs kann Google die Beziehung zwischen den Webseiten verstehen.
Ein weiterer Pluspunkt ist, dass hreflang-Tags einen direkten Effekt auf Suchmaschinen Rankings haben können, da sich die Internetauftritte in einem hreflang Cluster die Rankingsignale teilen.
Google nennt drei mögliche Einsatzszenarien, bei denen die Angabe einer alternativen Seite sinnvoll ist:
Generell sollte man keine URL mir hreflang aufzeichnen, die per Canonical Tag auf eine andere URL verweist. Hreflang signalisiert grundsätzlich, dass die URL indexiert werden soll. Sofern nun diese URL zusätzlich via Canonical Tag auf eine andere Webseite verweist, sende ich damit widersprüchliche Signale an Google und der hreflang funktioniert nicht. Somit sollte unbedingt darauf geachtet werden, dass auf internationalen Webseiten das hreflang-Attribut nur auf Canonical-URLs verweist.
Nachstehend ein Beispiel anhand meiner deutschen und englischen Webseite, wie das hreflang-Attribut zusammen mit dem Canonical Tag richtig eingebunden werden könnte.
<html>
<head>
<link rel="alternate" hreflang="de-DE" href="https://seitenreport.de/" />
<link rel="alternate" hreflang="en-US" href="https://seitenreport.de/en/" />
<link rel="canonical" href="https://seitenreport.de/" />
</head>
</html>
<html>
<head>
<link rel="alternate" hreflang="de-DE" href="https://seitenreport.de/" />
<link rel="alternate" hreflang="en-US" href="https://seitenreport.de/en/" />
<link rel="canonical" href="https://seitenreport.de/en/" />
</head>
</html>