BreadcrumbList-Schema als JSON-LD erstellen
Wandeln Sie eine sichtbare Brotkrümelnavigation in strukturierte Daten um, ohne Einträge von Hand zu nummerieren oder verschachteltes JSON zusammenzusetzen.
Im Browser ausführen – kostenlos
Geben Sie Seitennamen und absolute URLs in der angezeigten Reihenfolge ein, von der allgemeinsten Seite bis zum aktuellen Ziel. Der Generator liefert ein schema.org-BreadcrumbList-Objekt und einen vollständigen JSON-LD-Skriptblock für Kopf- oder Inhaltsbereich. Leere Listen, fehlerhafte Zeilen, fehlende Bezeichnungen und unzulässige URLs werden vor der Ausgabe erkannt.
Bereiten Sie den Navigationspfad in Seitenreihenfolge vor
Beginnen Sie mit derselben Hierarchie, die Besucher auf der Seite sehen. Die erste Zeile steht üblicherweise für die Startseite oder den allgemeinsten sinnvollen Bereich. Danach folgen zunehmend spezifische Seiten, bis die letzte Zeile die aktuelle Seite bezeichnet. Jede Zeile benötigt einen kurzen sichtbaren Namen und eine absolute HTTP- oder HTTPS-URL. Absolute URLs beseitigen Mehrdeutigkeiten für Crawler und machen das erzeugte Markup in Vorlagen, Vorschau-Domains und Content-Management-Systemen einsetzbar. Stimmen Sie die Bezeichnungen auf die verlinkten Seiten ab, statt sie mit Suchbegriffen zu überladen. Das Werkzeug bewahrt die eingegebene Reihenfolge unverändert und vergibt Positionen ab eins; eine Umordnung verändert daher die Aussage des Pfads. Es durchsucht Ihre Website nicht, leitet keine Hierarchie ab und vergleicht die Einträge nicht mit der in HTML dargestellten Navigation. Prüfen Sie Weiterleitungen, kanonische URLs, Schreibweise und Großschreibung vor der Erzeugung. Eine leere Liste wird abgelehnt, weil sie keinen brauchbaren Pfad beschreibt und meist auf eine fehlerhafte Vorlage oder eine unvollständige Anfrage hinweist.
So ist das erzeugte JSON-LD aufgebaut
Die Ausgabe enthält ein Schemaobjekt zur programmatischen Verarbeitung und einen vollständigen Skriptblock zum direkten Einfügen in eine Webseite. Auf oberster Ebene verweist der Kontext auf schema.org; der Typ lautet BreadcrumbList. Jedes eingegebene Paar wird zu einem ListItem mit einer bei eins beginnenden Position, dem von äußeren Leerzeichen bereinigten Namen und seiner URL in der Eigenschaft item. Die lesbare Einrückung erleichtert Prüfungen und ergibt bei identischen Eingaben stets dieselbe Ausgabe. Außerdem maskiert der Generator Kleiner-als-Zeichen in serialisierten Werten. Dadurch kann eingegebener Text das script-Element beim Einbetten in HTML nicht vorzeitig schließen. Zulässig sind ausschließlich nicht leere Namen und absolute HTTP- oder HTTPS-URLs; Schemata wie javascript, data oder mailto sowie relative Pfade werden abgelehnt. Der Algorithmus ist deterministisch und stellt keine Netzwerkanfragen. Er kann daher weder die Erreichbarkeit einer URL noch die Indexierbarkeit einer Seite bestätigen. Verwenden Sie das schema-Objekt, wenn eine andere Anwendung serialisiert, oder das Feld jsonld, wenn Sie direkt das vollständige Markup benötigen.
Veröffentlichen und prüfen Sie das Markup
Fügen Sie genau einen erzeugten Skriptblock auf der Seite ein, die der Navigationspfad beschreibt. Je nach Veröffentlichungssystem kann er im Dokumentkopf oder im Inhaltsbereich stehen. Die strukturierten Angaben sollten mit Links übereinstimmen, die Nutzer tatsächlich sehen und öffnen können. Gibt Ihr CMS bereits strukturierte Breadcrumb-Daten aus, ersetzen oder deaktivieren Sie den bisherigen Block, anstatt widersprüchliche Varianten mit anderen Positionen oder URLs zu veröffentlichen. Erzeugen Sie das Markup erneut, wenn eine Seite verschoben, ein Bereich umbenannt oder eine kanonische URL geändert wird. Prüfen Sie nach der Veröffentlichung das gerenderte HTML und nicht nur die Quellvorlage, da Themes, Tag-Manager und Optimierungsplugins Skripte verdoppeln, entfernen oder verändern können. Nutzen Sie anschließend einen Test für strukturierte Daten oder die Prüfwerkzeuge einer Suchmaschine, um Probleme außerhalb dieses Generators zu finden, etwa unerreichbare Ziele, widersprüchliche Canonical-Tags oder Markup auf der falschen Seite. Gültiges JSON-LD ist eine technische Voraussetzung, aber keine Garantie für eine besondere Darstellung in Suchergebnissen. Die API kostet $0.002 pro Anfrage; im Browser läuft dieselbe Logik ohne Datenübertragung.
Anwendungsfälle
Markup für eine Seitenvorlage
Wandeln Sie den geordneten Navigationspfad einer Vorlage in ein sofort einbettbares BreadcrumbList-Skript um.
Einheitliche CMS-Ausgabe
Erzeugen Sie dieselbe JSON-LD-Struktur für Beiträge, Produkte, Kategorien und Dokumentationsbereiche.
Fehlende strukturierte Daten ergänzen
Erstellen Sie Ersatz-Markup, wenn sichtbare Breadcrumbs vorhanden sind, aber kein maschinenlesbarer Pfad.
Häufige Fragen
Was geschieht bei einer leeren Liste?
Die Anfrage endet mit einem Eingabefehler, weil eine BreadcrumbList mindestens einen sinnvollen Eintrag enthalten muss.
Welche Reihenfolge ist richtig?
Geben Sie die Seiten von der allgemeinsten Ebene bis zur aktuellen Seite ein. Der Generator behält diese Folge bei und nummeriert ab eins.
Sind relative URLs erlaubt?
Nein. Jeder Eintrag benötigt eine absolute HTTP- oder HTTPS-URL, damit die strukturierten Daten eindeutig sind.
Prüft der Generator, ob Seiten existieren?
Nein. Ohne Netzwerkzugriff prüft er Syntax und Schema, jedoch nicht Status, Indexierung, Weiterleitungen oder kanonische URLs.
Wo wird der erzeugte Block eingefügt?
Platzieren Sie das Skript je nach Veröffentlichungssystem im Kopf- oder Inhaltsbereich und vermeiden Sie doppeltes Breadcrumb-Markup.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Dieselbe deterministische Umwandlung kann auch im Browser ausgeführt werden.
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/breadcrumb-schema-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"breadcrumbs":[{"name":"Home","url":"https://example.com/"},{"name":"Guides","url":"https://example.com/guides"},{"name":"Technical SEO","url":"https://example.com/guides/technical-seo"}]}'const res = await fetch("https://api.kit.forhosting.com/web/breadcrumb-schema-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"breadcrumbs": [
{
"name": "Home",
"url": "https://example.com/"
},
{
"name": "Guides",
"url": "https://example.com/guides"
},
{
"name": "Technical SEO",
"url": "https://example.com/guides/technical-seo"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/breadcrumb-schema-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"breadcrumbs": [
{
"name": "Home",
"url": "https://example.com/"
},
{
"name": "Guides",
"url": "https://example.com/guides"
},
{
"name": "Technical SEO",
"url": "https://example.com/guides/technical-seo"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/breadcrumb-schema-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"breadcrumbs":[{"name":"Home","url":"https://example.com/"},{"name":"Guides","url":"https://example.com/guides"},{"name":"Technical SEO","url":"https://example.com/guides/technical-seo"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"breadcrumbs":[{"name":"Home","url":"https://example.com/"},{"name":"Guides","url":"https://example.com/guides"},{"name":"Technical SEO","url":"https://example.com/guides/technical-seo"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/breadcrumb-schema-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"breadcrumbs": [
{
"name": "Home",
"url": "https://example.com/"
},
{
"name": "Guides",
"url": "https://example.com/guides"
},
{
"name": "Technical SEO",
"url": "https://example.com/guides/technical-seo"
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.breadcrumb_schema_generate",
"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. |