Der Anruf kam Anfang April. Eine internationale E-Learning-Plattform mit Präsenz in 12 Ländern. Das Problem: Die deutschen Seiten rankten in Österreich, die französischen in Belgien, komplettes Durcheinander. Hreflang war implementiert, aber offensichtlich kaputt.
Erster Check in der Search Console: 23.400 hreflang-Fehler. "Keine Rückverweise", "Falsche Sprachcodes", "URL nicht indexierbar". Das volle Programm. Aber diese Meldungen sind oft irreführend. Ich brauchte die tatsächliche Implementierung.
Ich crawlte die komplette Website. 340.000 URLs über alle Länderversionen. Jede URL wurde auf ihre hreflang-Tags geprüft: im HTML-Header, im HTTP-Header und in der Sitemap. Hier wurde es kompliziert. Die Tags existierten an drei verschiedenen Stellen, und sie stimmten nicht überein.
Beispiel: Die deutsche Produktseite /de/kurs/webentwicklung hatte im HTML-Head hreflang-Tags für 8 Länder. Im HTTP-Header waren es 12. Die Sitemap zeigte 11. Für dieselbe URL. Welche Version nutzt Google? Laut Dokumentation: alle, aber die letzte überschreibt. In der Praxis? Chaos.
Das zweite Problem: Die URLs selbst. Jemand hatte relative Pfade in den hreflang-Tags verwendet. /fr/cours/developpement-web statt https://example.com/fr/cours/developpement-web. Das funktioniert technisch, aber nur wenn die Basis-URL stimmt. Bei dieser Website gab es vier verschiedene Subdomain-Varianten für verschiedene Produktbereiche. Die relativen Pfade zeigten ins Nichts.
Dann die Sprachcodes. Die Schweizer Version nutzte "de-CH" für Deutsch. Korrekt. Aber die französische Schweizer Version? "fr-CH". Auch korrekt. Das Problem: Die generische französische Version hatte "fr-FR" statt "fr". Google behandelt "fr" und "fr-FR" unterschiedlich bei der Zuordnung.
Ich baute ein Validierungs-Script. Für jede URL: crawle alle verlinkten hreflang-URLs, prüfe ob sie existieren, prüfe ob sie zurückverlinken, prüfe ob die Sprachcodes valide sind, prüfe ob die Inhalte tatsächlich in der angegebenen Sprache sind. Letzteres war wichtig, weil 340 Seiten zwar korrekte hreflang-Tags hatten, aber englische Inhalte in der als "de" markierten Version.
Die Lösung dauerte vier Wochen Implementierung. Alle hreflang-Tags nur noch im HTTP-Header, generiert aus einer zentralen Datenbank. Absolute URLs überall. Sprachcodes standardisiert nach BCP 47. Ein automatisches Monitoring, das täglich 1000 zufällige URLs prüft.
Nach sechs Wochen waren 94 Prozent der Fehler behoben. Die richtigen Versionen rankten in den richtigen Ländern. Aber 6 Prozent? Die bleiben mysteriös. Manche URLs zeigt Google einfach, wie es will.