Strukturierte Daten prüfen
Ein Werkzeug, das die strukturierten Daten einer Seite – JSON-LD, Microdata oder RDFa nach Schema.org – aus dem Quelltext extrahiert und lesbar darstellt. Sie sehen auf einen Blick, welcher Schema-Typ verwendet wird und welche Felder gesetzt sind, ohne die Seite zu verlassen.
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.
Kostenlos direkt im Browser
Sie fügen den HTML-Quelltext einer Seite ein, das Werkzeug findet automatisch jeden eingebetteten JSON-LD-Block und stellt ihn strukturiert dar – lesbar statt als einzeilige, verschachtelte Datenstruktur. Die Verarbeitung läuft vollständig im Browser, ohne Limit, ohne Anmeldung und ohne dass der Quelltext übertragen wird. Auch Microdata- und RDFa-Angaben im HTML selbst werden erkannt, nicht nur eigenständige JSON-LD-Blöcke im Kopfbereich der Seite.
Warum strukturierte Daten wichtig sind
Schema.org-Markup entscheidet mit darüber, ob eine Seite in der Google-Suche mit Sternebewertung, Preis oder Veranstaltungsdatum erscheint statt als einfaches blaues Suchergebnis. Ein fehlerhaftes oder unvollständiges Markup wird von Google häufig stillschweigend ignoriert, ohne erkennbare Fehlermeldung – ein Blick auf die tatsächlich ausgelesenen Felder zeigt, ob etwas fehlt. Gerade bei Produkt-, Rezept- oder Event-Seiten macht dieser Unterschied im Suchergebnis oft den entscheidenden Klick aus.
Häufige Fehler, die sichtbar werden
Typische Probleme sind ein fehlendes Pflichtfeld für den jeweiligen Schema-Typ, ein doppelt eingebundener JSON-LD-Block mit widersprüchlichen Angaben oder ein Datum im falschen Format. Die Übersicht zeigt jeden gefundenen Block einzeln, sodass sich ein fehlerhafter Eintrag leicht von den übrigen, korrekten Blöcken unterscheiden lässt. Auch ein syntaktisch ungültiges JSON, etwa durch ein fehlendes Komma, wird als solches gemeldet, statt stillschweigend übersprungen zu werden.
Für viele URLs: der Weg über die API
Für eine einzelne Seite reicht das Einfügen des Quelltextes im Browser, kostenlos und ohne Limit. Für eine wiederkehrende Prüfung vieler URLs, etwa vor jedem Deployment eines Onlineshops, lässt sich die Prüfung stattdessen per URL über die API auslösen, für $0.002 pro Anfrage. So lässt sich das Markup eines ganzen Produktkatalogs vor jeder Veröffentlichung automatisch kontrollieren, statt jede Seite einzeln von Hand zu prüfen.
Anwendungsfälle
Vor der Einreichung bei der Search Console
Ein Entwickler prüft das Produkt-Markup eines neuen Onlineshops, bevor die Sitemap in der Google Search Console eingereicht wird, und findet ein fehlendes Preisfeld.
Rezept-Snippet ohne Sternebewertung
Ein Foodblog untersucht, warum ein Rezeptartikel keine Sternebewertung in der Suche zeigt, und stellt fest, dass das aggregateRating-Feld im Markup fehlt.
Kontrolle nach einem Plugin-Update
Nach einem Update des Shop-Plugins prüft Katrin Baumann, ob das Schema.org-Markup der Produktseiten weiterhin korrekt erzeugt wird.
Event-Markup vor einer Veranstaltung
Ein Veranstalter prüft, ob Datum, Ort und Ticketpreis einer Veranstaltungsseite korrekt im Event-Schema hinterlegt sind, bevor die Seite beworben wird.
Häufige Fragen
Ist die Prüfung kostenlos?
Ja, solange Sie den Quelltext einfügen: Die Auswertung läuft im Browser, ohne Limit und ohne Anmeldung. Nur die Prüfung per URL über die API kostet $0.002 pro Anfrage.
Erkennt das Werkzeug, ob Google das Markup tatsächlich verwendet?
Nein, es zeigt, welche strukturierten Daten im Quelltext vorhanden und syntaktisch gültig sind. Ob Google daraus ein erweitertes Suchergebnis erzeugt, entscheidet Google unabhängig davon.
Welche Formate werden unterstützt?
JSON-LD, Microdata und RDFa, jeweils nach dem Vokabular von Schema.org. Die meisten aktuellen Webseiten setzen JSON-LD.
Werden meine Daten irgendwo gespeichert?
Nein. Der eingefügte Quelltext verlässt Ihren Browser nicht und wird nicht übertragen oder gespeichert.
Gibt es ein Limit für die Anzahl der JSON-LD-Blöcke?
Im Browser-Modus nicht, da alles lokal verarbeitet wird. Auch Seiten mit mehreren eingebetteten Blöcken werden vollständig ausgewertet.
Brauche ich ein Konto?
Nein, weder für den kostenlosen Browser-Modus noch für die API-Nutzung ist ein Konto 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/web/schema \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/schema", {
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/web/schema",
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/web/schema", 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/web/schema", 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": "web.schema",
"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.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |