Generatore di schema BreadcrumbList JSON-LD
Trasformi un percorso breadcrumb visibile in dati strutturati senza numerare gli elementi o comporre a mano JSON annidato.
Esegui gratis nel browser
Inserisca i nomi delle pagine e gli URL assoluti nell’ordine mostrato, dalla pagina più generale fino alla destinazione corrente. Il generatore restituisce un oggetto BreadcrumbList di schema.org e uno script JSON-LD completo, pronto per l’intestazione o il corpo della pagina. Prima di generare il markup controlla elenchi vuoti, righe non valide, etichette mancanti e URL non supportati.
Prepari il percorso nell’ordine visualizzato
Parta dalla stessa gerarchia che vede chi visita la pagina. La prima riga dovrebbe rappresentare la home page o la sezione più ampia; seguono pagine sempre più specifiche e l’ultima riga identifica la pagina corrente. Ogni riga richiede un nome visibile e sintetico e un URL assoluto HTTP o HTTPS. Gli URL assoluti eliminano ambiguità per i crawler e rendono il markup portabile tra modelli, domini di anteprima e sistemi di gestione dei contenuti. Mantenga le etichette coerenti con le pagine collegate, senza riempirle di parole chiave. Lo strumento conserva esattamente l’ordine fornito e assegna le posizioni a partire da uno, quindi spostare le righe cambia il significato del percorso. Non analizza il sito, non deduce una gerarchia e non confronta gli elementi con la navigazione HTML visualizzata. Controlli reindirizzamenti, scelte canoniche, ortografia e maiuscole prima di generare il blocco. Un elenco vuoto viene rifiutato perché non comunica alcun percorso utile e spesso indica un modello difettoso o una richiesta incompleta.
Comprenda il JSON-LD generato
Il risultato contiene un oggetto schema per l’uso programmatico e uno script completo da inserire direttamente in una pagina. Al livello principale, il contesto rimanda a schema.org e il tipo è BreadcrumbList. Ogni coppia diventa un ListItem con una posizione che parte da uno, il nome ripulito dagli spazi esterni e il relativo URL nella proprietà item. La formattazione leggibile facilita le revisioni e produce risultati stabili per input identici. Il generatore esegue inoltre l’escape del carattere minore di nei valori serializzati, impedendo al testo inserito di chiudere anzitempo l’elemento script quando viene incorporato in HTML. Sono accettati solo nomi non vuoti e URL assoluti HTTP o HTTPS; schemi come javascript, data e mailto e i percorsi relativi vengono rifiutati. L’algoritmo è deterministico e non effettua richieste di rete, quindi non può confermare che un URL risponda o che una pagina sia indicizzabile. Usi l’oggetto schema quando un’altra applicazione gestisce la serializzazione, oppure il campo jsonld se Le serve il markup completo senza ulteriori passaggi.
Pubblichi e verifichi il markup breadcrumb
Aggiunga un solo script generato alla pagina descritta dal percorso, nell’intestazione del documento o nel corpo se il sistema di pubblicazione consente JSON-LD. Mantenga il percorso strutturato coerente con collegamenti realmente visibili e navigabili. Se il CMS produce già dati strutturati breadcrumb, sostituisca o disattivi il vecchio blocco anziché pubblicare versioni concorrenti con posizioni o URL differenti. Rigeneri il markup quando una pagina cambia indirizzo, una sezione viene rinominata o cambiano gli URL canonici. Dopo la pubblicazione, controlli l’HTML renderizzato e non solo il modello sorgente, perché temi, gestori di tag e plugin di ottimizzazione possono duplicare, eliminare o modificare gli script. Utilizzi poi uno strumento di test dei dati strutturati o di ispezione del motore di ricerca per individuare problemi esterni al generatore, come destinazioni irraggiungibili, tag canonici in conflitto o markup inserito nella pagina sbagliata. Un JSON-LD valido è un requisito di implementazione, non garantisce una determinata visualizzazione nei risultati. L’API costa $0.002 per richiesta, mentre il browser può eseguire la stessa logica senza inviare i dati in rete.
Casi d'uso
Aggiungere markup a un modello
Converta il percorso ordinato di un modello in uno script BreadcrumbList pronto da incorporare.
Uniformare l’output del CMS
Generi la stessa struttura JSON-LD per articoli, prodotti, categorie e sezioni della documentazione.
Ripristinare dati strutturati mancanti
Crei markup sostitutivo quando i breadcrumb sono visibili ma manca un percorso leggibile dalle macchine.
Domande frequenti
Che cosa accade se l’elenco è vuoto?
La richiesta fallisce con un errore di input non valido perché BreadcrumbList deve contenere almeno un elemento utile.
Quale ordine devo usare?
Inserisca le pagine dal livello più generale fino alla pagina corrente. Il generatore mantiene l’ordine e numera da uno.
Posso usare URL relativi?
No. Ogni elemento richiede un URL assoluto HTTP o HTTPS affinché i dati strutturati siano inequivocabili.
Il generatore verifica se le pagine esistono?
No. Non usa la rete; convalida sintassi e schema, ma non stato, indicizzazione, reindirizzamenti o tag canonici.
Dove devo inserire il blocco generato?
Inserisca lo script nell’intestazione o nel corpo secondo il sistema di pubblicazione ed eviti markup duplicato.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. La stessa trasformazione deterministica può essere eseguita anche nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"breadcrumbs": [
{
"name": "Home",
"url": "https://example.com/"
},
{
"name": "Guides",
"url": "https://example.com/guides"
},
{
"name": "Technical SEO",
"url": "https://example.com/guides/technical-seo"
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.breadcrumb_schema_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |