Bei einem technischen SEO-Audit mehrsprachiger bzw. multiregionaler Websites und Shops ist die Untersuchung der hreflang Tags ein wichtiger Bestandteil. hreflang Tags zählen zu den umfangreichsten und fehler-anfälligsten Angaben im SEO und erfordern daher eine genaue Prüfung. In diesem Beitrag zeige ich, wie man hreflang Tags mit Screaming Frog untersuchen und technische Fehlkonfigurationen leicht enttarnen kann.
Inhaltsverzeichnis
Was ist Screaming Frog SEO Spider?
Screaming Frog SEO Spider ist eine Desktop-Software zur Durchführung tiefgründiger SEO Audits von Websites und Online Shops. Die Spider-Software wird kostenfrei unter https://www.screamingfrog.co.uk/seo-spider/ zum Download für Windows, MacOS und Ubuntu angeboten.
Mehr Informationen, Tipps und Tricks stelle ich im User Guide zum Screaming Frog SEO Spider vor.
Was sind hreflang Tags?
hreflang Markup teilt Suchmaschinen mit, für welche Sprache und optional Region (Land) der Inhalt einer Webseite, PDF-Datei, etc. bestimmt ist. Suchmaschinen können so die richtige Sprachversion in den Suchergebnissen ausliefern. Für den Website-Besucher bleiben diese Informationen verborgen.
Mehr Informationen stelle ich im SEO International User-Guide hreflang Tags zur Verfügung.
🔥 hreflang Filter-Berichte im Screaming Frog
Um die hreflang-Notationen der Website mit Screaming Frog SEO Spider zu untersuchen, muss ein Crawl (Crawl-Mode) durchgeführt werden. Zuvor muss in der Konfiguration die Verarbeitung von hreflang Tags angehakt werden. (Hauptnavigation > „Configuration“ > „Spider“ > Reiter: „Basic“) Nach dem Crawl ist eine Crawl Analyse (Hauptnavigation > „Crawl Analysis“ > „Hreflang“ anhaken) erforderlich, damit der Screaming Frog sämtliche hreflang-Informationen ermittelt.
Werden hreflang-Tags in XML Sitemaps deklariert (hier mehr), muss Screaming Frog auch die XML Sitemaps verarbeiten. Die Sitemap-URLs sollten unter „Configuration“ > „Spider“ > Reiter „Basic“ manuell hinzugefügt werden.
Im Folgenden stelle ich alle hreflang-Berichte vom Screaming Frog SEO Spider vor und beschreibe, welche Filter jedem Bericht hinterlegt sind. hreflang Tags können damit umfassend untersucht und korrigiert werden.
- All
- Contains hreflang
- Non-200 hreflang URLs
- Unlinked hreflang URLs
- Missing Confirmation Links
- Inconsistant Language & Region Confirmation Links
- Non-Canonical Confirmation Links
- Noindex Confirmation Links
- Incorrect Language & Region Codes
- Multiple Entries
- Missing Self Reference
- Missing X-Default
- Missing
01. All
Hierbei handelt es sich um alle Seiten, auch URLs die kein hreflang-Markup verwenden.
02. Contains hreflang
Hierbei handelt es sich um alle URLs, die rel=“alternate“ aus allen möglichen hreflang-Annotationen enthalten – wie Link-Elemente, HTTP-Header oder XML-Sitemap.
03. Non-200 hreflang URLs
Hierbei handelt es sich um URLs, die in rel=“alternate“ hreflang-Tags enthalten sind und keinen HTTP Statuscode 200 liefern – wie durch robots.txt-Anweisungen blockierte URLs, URLs die keine Antwort liefern, 3XX (Umleitungen), 4XX (Client error) oder 5XX (Serverfehler). hreflang URLs müssen crawlbar und indizierbar sein. Daher werden URLs, die keinen Statuscode 200 liefern, als Fehler behandelt und von Suchmaschinen ignoriert. Diese URLs können durch den Export „Reports“ > „Hreflang“ > „Non-200 hreflang URLs“ vollständig exportiert werden.
Die „Non-200 hreflang URLs“ können im unteren Fenster im Reiter „URL Details“ bewertet werden. Sie besitzen den Confirmation Status „Non-200“.
04. Unlinked hreflang URLs
Hierbei handelt es sich um URLs, die nur über rel=“alternate“-Anmerkungen auffindbar sind. hreflang-Tags übergeben keinen PageRank, wie herkömmliche HTML-Links. Diese URLs könnten ein Anzeichen für ein Problem mit der internen Verlinkung oder den in hreflang-Anmerkungen enthaltenen URLs sein.
In der Tabelle vom Filter „Unlinked hreflang URLs“ sind alle hreflang-URLs einer Seite (je Zeile) dokumentiert. Alle URLs einer Zeile kann man als hreflang-Cluster bezeichnen. Anhand dieser Tabelle herauszufinden, welche hreflang-URLs nur durch rel=“alternate“-Anmerkungen auffindbar sind, erscheint mir nicht schlüssig. Um das heraus zu finden, müsste man die Inlinks jeder URL im Filter „Internal“ > „HTML“ prüfen. Das kann sehr umfangreich werden.
05. Missing Confirmation Links
Es handelt sich um URLs mit fehlenden Rückverweis-Links von ihren alternativen Seiten. Da hreflang wechselseitig (reziprok) funktioniert, müssen alle alternativen Versionen die Beziehung bestätigen. Wenn Seite X zu Seite Y mittels rel=“alternate“ verlinkt und Seite Y damit als alternative Seite festlegt, dann muss Seite Y auf Seite X mittels rel=“alternate“ zurück verlinken. Kein Rückverweis-Link bedeutet, dass die hreflang-Anmerkungen möglicherweise ignoriert oder nicht richtig interpretiert werden können. Diese URLs können mit dem Export „Reports“ > „Hreflang“ > „Missing Confirmation Links“ vollständig exportiert werden.
hreflang-Annotation von Seite X
1 2 |
<link rel="alternate" hreflang="de" href="https://example.com/seite-x" /> <link rel="alternate" hreflang="en" href="https://example.com/seite-y" /> |
hreflang-Annotation von Seite Y
1 2 |
<link rel="alternate" hreflang="en" href="https://example.com/seite-y" /> <link rel="alternate" hreflang="de" href="https://example.com/seite-x" /> |
Die „Missing Confirmation Links“ können im unteren Fenster im Reiter „URL Details“ bewertet werden. Sie besitzen den Confirmation Status „Missing“.
06. Inconsistant Language & Region Confirmation Links
Dieser Filter enthält URLs mit inkonsistenter Sprache bzw. regionalen Rückverweis-Links. Das betrifft Seiten, die eine andere Sprache oder einen anderen regionalen Code angeben als die URL, die auf sich selbst verweist. Diese URLs können über den Export „Reports“ > „Hreflang“ > „Inconsistant Language & Region Confirmation Links“ vollständig exportiert werden.
Beispiel für Seite X (deutschsprachig)
1 2 |
<html lang="de"> <link rel="alternate" hreflang="en" href="https://example.com/seite-x" /> |
Oder: Seite Y gibt einen falschen Sprachcode für Seite X (deutschsprachig) an
1 2 |
<link rel="alternate" hreflang="en" href="https://example.com/seite-x" /> <link rel="alternate" hreflang="en" href="https://example.com/seite-y" /> |
Die „Inconsistant Language & Region Confirmation Links“ können im unteren Fenster im Reiter „URL Details“ bewertet werden. Sie besitzen den Confirmation Status „Inconsistent“.
07. Non-Canonical Confirmation Links
Hierbei handelt es sich um URLs mit nicht kanonischen Bestätigungslinks. Hreflang sollte nur kanonische Versionen von URLs enthalten. Dieser Filter greift also Links auf, die zu URLs führen, die keine kanonischen URL-Versionen sind. Die URLs können über den Export „Reports“ > „Hreflang“ > „Non Canonical Confirmation Links“ vollständig exportiert werden.
Beispiel für Seite X
1 2 |
<link rel="canonical" href="https://example.com/seite-x"> <link rel="alternate" hreflang="de" href="https://example.com/seite-x?p=123" /> |
Die „Non-Canonical Confirmation Links“ können im unteren Fenster im Reiter „URL Details“ bewertet werden. Sie besitzen den Confirmation Status „Non Canonical“.
08. Noindex Confirmation Links
Hierbei handelt es sich um Bestätigungslinks mit einem „noindex“-Robots Meta Tag. Alle Seiten innerhalb eines hreflang-Clusters müssen indizierbar sein. Alle Rückverweis-URLs mit „noindex“-Meta Tag können dazu führen, dass die hreflang-Beziehung von den Suchmaschinen-Bots ignoriert wird. Diese URLs können über den Export „Reports“ > „Hreflang“ > „Noindex Confirmation Links“ vollständig exportiert werden.
Beispiel für Seite X
1 2 |
<meta name="robots" content="noindex, follow"> <link rel="alternate" hreflang="de" href="https://example.com/seite-x" /> |
Die „Noindex Confirmation Links“ können im unteren Fenster im Reiter „URL Details“ bewertet werden. Sie besitzen den Confirmation Status „noindex“.
09. Incorrect Language & Region Codes
Hierbei werden lediglich die Sprache (im ISO 639-1-Format) und optionale regionale (im ISO 3166-1 Alpha 2-Format) Codewerte überprüft.
Die „Incorrect Language & Region Codes“ können im unteren Fenster im Reiter „URL Details“ bewertet werden. Sie besitzen den Confirmation Status „Invalid“.
10. Multiple Entries
Hierbei handelt es sich um URLs mit mehreren Einträgen zu einer Sprache oder einem Regionalcode. Zum Beispiel, wenn Seite X mit Seite Y und Z verknüpft ist, die dieselbe hreflang-Annotation mit dem Sprachwert „en“ verwenden. Der Filter greift auf mehrere Implementierungen zu, etwa wenn hreflang-Annotationen als Linkelemente und über den HTTP-Header gefunden wurden.
Beispiel
1 2 3 |
<link rel="alternate" hreflang="de" href="https://example.com/seite-x" /> <link rel="alternate" hreflang="en" href="https://example.com/seite-y" /> <link rel="alternate" hreflang="en" href="https://example.com/seite-z" /> |
Bei großen Websites mit vielen hreflang-URLs pro HTML Seite (> 10) kann die Identifikation von mehrfachen Einträgen unübersichtlich und zeitaufwändig werden. Hier bietet sich ein Export an. (Im Screaming Frog werte ich z. B. nur multilinguale und -regionale Websites mit weniger als fünf hreflang-URLs pro HTML Seite aus.)
11. Missing Self Reference
Hierbei handelt es sich um URLs, denen ein selbstreferenzierendes hreflang-Tag fehlt. URLs sollten über eine eigene, sich selbst referenzierende rel=“alternate“-Anmerkung verfügen.
12. Not Using Canonical
Hierbei handelt es sich um URLs, die nicht die kanonische URL der Seite im hreflang-Tag verwenden. Hreflang sollte nur kanonische Versionen von URLs enthalten.
13. Missing X-Default
Hierbei handelt es sich um URLs, denen ein X-default-Attribut fehlt. Das x-default-Tag ist optional und nicht unbedingt ein Fehler oder ein Problem.
Beispiel
1 |
<link rel="alternate" hreflang="x-default" href="ABSOLUTE URL DER WEBSEITE" /> |
Gibt man im hreflang-Attribut statt der Sprachkennung den Wert „x-default“ an, wird diese Webseite keiner bestimmten Sprache und keiner bestimmten Region zugewiesen. Jedem Nutzer, der nicht zu einer Alternative der Webseite passt, wird diese Webseite in den Suchergebnissen vorgeschlagen. Eine x-default-Seite dient für Suchmaschinen als Standardseite, wenn keine andere Webseite passt.
14. Missing
Hierbei handelt es sich um URLs, die kein hreflang-Attribut angeben. Dies kann korrekt sein, wenn es sich nicht um mehrere Versionen einer Seite handelt.
Zusatztipp
hreflang Sprachcodes und Ländercodes mit XPath auswerten
Wenn man schnell einen Überblick der hreflang Sprach- und Ländercodes benötigt, kann man diese mit XPath auslesen. Diese Daten werden nach dem Crawl unter „Custom“ > „Extraction“ ausgegeben. Vor dem Crawl muss unter „Configuration“ (Hauptmenü) > „Custom“ > „Extraction“ dieser Filter gesetzt werden:
//*[@hreflang]/@hreflang
Kommentar verfassen