Hreflang-Tags prüfen
Die Funktion liest die hreflang-Tags im eingefügten HTML-Quelltext einer Seite und prüft Sprach- und Regionscodes, absolute URLs und ob ein x-default-Tag gesetzt ist. Für alle, die mehrsprachige oder länderspezifische Seiten betreiben und Fehler in den Sprachverweisen finden wollen, bevor Google sie falsch zuordnet.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Warum fehlerhafte hreflang-Tags teuer werden
Ein falscher Sprachcode oder eine relative statt absolute URL im hreflang-Tag führt dazu, dass Google den Verweis stillschweigend ignoriert, ohne eine sichtbare Fehlermeldung. Die betroffene Sprachversion verliert dadurch die Chance, in der passenden Landesversion der Suche zu erscheinen, oft ohne dass jemand den Fehler bemerkt, bis der Zugriff aus diesem Land über Wochen spürbar ausbleibt und niemand die Ursache sofort erkennt.
Was geprüft wird
Die Funktion prüft, ob jeder Sprachcode einem gültigen ISO-Format entspricht, ob jede angegebene URL absolut geschrieben ist und ob ein x-default-Tag für Besucher ohne passende Sprachversion vorhanden ist. Ausgegeben wird eine Liste aller gefundenen hreflang-Einträge mit einer klaren Markierung jedes Fehlers, sortiert in der Reihenfolge, in der sie im Quelltext stehen, damit sich jeder Fund direkt der passenden Zeile zuordnen lässt.
Die Grenze der kostenlosen Prüfung
Aus einem einzelnen eingefügten Quelltext lässt sich die Syntax der hreflang-Tags vollständig prüfen, nicht aber, ob jede verlinkte Sprachversion ihrerseits korrekt auf alle übrigen Versionen zurückverweist – das setzt den Abruf mehrerer echter URLs voraus und steht über die API bereit. Gerade bei Websites mit vier oder mehr Sprachversionen ist eine fehlende Rückverweisung ein häufiger, schwer von Hand zu findender Fehler.
Kostenlos für die Syntaxprüfung
Sie fügen den Quelltext einer Seite ein; die Prüfung der Sprachcodes und URLs läuft direkt in Ihrem Browser, kostenlos und ohne Limit, ohne Anmeldung, auch bei mehreren Seiten hintereinander an einem Tag oder über mehrere Wochen verteilt, unabhängig von der Anzahl der geprüften Sprachversionen. Für den Abgleich mehrerer Sprachversionen über echte URLs hinweg steht die API-Anfrage für $0.002 pro Anfrage bereit.
Anwendungsfälle
Neuer Länder-Rollout
Schneider IT-Systeme GmbH & Co. KG prüft die hreflang-Tags der deutschen Seite, nachdem eine französische Version hinzugekommen ist, und findet einen falsch geschriebenen Sprachcode.
x-default für internationale Startseite
Ein Onlineshop mit mehreren Länderversionen prüft, ob die internationale Startseite korrekt als x-default markiert ist, für Besucher ohne passende Sprachversion.
Migration eines mehrsprachigen CMS
Nach dem Wechsel des CMS prüft Katrin Baumann stichprobenartig mehrere Seiten, um sicherzustellen, dass die hreflang-Tags bei der Migration nicht verloren gegangen sind.
Häufige Fragen
Was passiert bei einem falschen Sprachcode?
Google ignoriert den betroffenen hreflang-Verweis in der Regel stillschweigend, ohne Fehlermeldung. Die Seite bleibt dann ohne den beabsichtigten Sprachverweis in der Suche.
Prüft die Funktion auch die Rückverweise anderer Sprachversionen?
Aus einem einzelnen eingefügten Quelltext nicht vollständig, dafür wäre der Abruf jeder verlinkten URL nötig. Diesen erweiterten Abgleich übernimmt die kostenpflichtige API-Prüfung.
Was ist ein x-default-Tag?
Er markiert die Version, die Besuchern ohne passende Sprach- oder Regionszuordnung gezeigt werden soll, meist die internationale oder englische Startseite.
Was kostet der erweiterte Abgleich über die API?
$0.002 pro Anfrage. Die reine Syntaxprüfung mit eingefügtem Quelltext bleibt kostenlos.
Bleibt der eingefügte Quelltext auf meinem Gerät?
Ja, bei der kostenlosen Nutzung verlässt er Ihren Browser nicht.
Ist dafür eine Anmeldung nötig?
Nein, weder für die kostenlose Prüfung im Browser noch für die API-Anfrage ist eine Anmeldung erforderlich.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/seo/hreflang-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/seo/hreflang-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/hreflang-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/hreflang-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/hreflang-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"url": "https://ejemplo.com"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.hreflang_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |