# BreadcrumbList senza errori: posizioni, URL e test

BreadcrumbList è un elenco ordinato di passaggi dalla home alla pagina. Tre proprietà contano: itemListElement, position e item; il resto è cosmetica.

> Pagina: https://ui.eneawork.it/blog/breadcrumb-schema-guida
> Markdown: https://ui.eneawork.it/blog/breadcrumb-schema-guida.md

*2026-11-01*

BreadcrumbList è il markup che dice a Google dove sta la pagina nella gerarchia del sito: un elenco ordinato che parte dalla home e finisce sulla pagina corrente. Si aggiunge come JSON-LD e deve corrispondere al percorso visibile.

Il catalogo EneUI conta 111.985 componenti, 1.556 blocchi e 12.808 icone da 1.472 librerie, letti da /api/stats il 1 novembre 2026. Lo stesso giorno l'articolo /blog/come-aggiungere-schema-markup dichiara un BreadcrumbList con 3 elementi, il primo dei quali è Home verso /it. La documentazione Google sui breadcrumb è stata verificata il 1 novembre 2026. «breadcrumb» non compare fra le liste Autocomplete registrate il 31 ottobre 2026.

## Le tre proprietà che contano

La documentazione sui breadcrumb, letta il 1 novembre 2026, chiede itemListElement come array ordinato. Ogni ListItem ha position e item, cioè l'URL della pagina che rappresenta; name è l'etichetta che si vede. La stessa pagina dice che Google usa il markup dei breadcrumb nel body della pagina per categorizzare il contenuto nel risultato, e che la funzione è disponibile su desktop in tutte le lingue e regioni in cui esiste Search.

## Un blocco corretto

{ "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://ui.eneawork.it/it" }, { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://ui.eneawork.it/it/blog" }, { "@type": "ListItem", "position": 3, "name": "BreadcrumbList senza errori", "item": "https://ui.eneawork.it/it/blog/breadcrumb-schema-guida" } ] }

Tre elementi sono la forma minima utile: home, sezione, pagina. Le posizioni sono consecutive e partono da 1, il nome è quello che l'utente legge, l'URL risponde 200. L'ultimo elemento ha un item come gli altri: è la pagina corrente, e la pagina corrente ha un URL.

## Verificare posizioni e URL

cat > check-breadcrumb.mjs ]*application\/ld\+json[^>]*>([\s\S]*?)/g)]; const nodes = blocks.flatMap(([, raw]) => { const data = JSON.parse(raw); return data["@graph"] || [data]; }); const crumbs = nodes.find((n) => n["@type"] === "BreadcrumbList"); if (!crumbs) { console.log("no BreadcrumbList"); process.exit(1); } let expected = 1; for (const item of crumbs.itemListElement) { if (item.position !== expected) console.log(`position ${item.position}, expected ${expected}`); if (!item.name || !item.item) console.log(`item at ${item.position} misses name or item`); expected += 1; } console.log(`${crumbs.itemListElement.length} crumbs, positions ${expected - 1} checked`); EOF node check-breadcrumb.mjs https://ui.eneawork.it/blog/come-aggiungere-schema-markup

Lo script estrae il BreadcrumbList, controlla che le posizioni siano consecutive a partire da 1 e che ogni elemento abbia nome e URL. Un errore di posizione non rompe la pagina: rende l'elenco ambiguo, e Google può scartare il markup senza dirlo.

## Gli errori che si vedono nei template

## Il record dal vivo

Nel catalogo il percorso esiste già come navigazione: menu, navbar e /blocks mostrano lo stesso schema a due livelli. Se il menu visibile e il markup raccontano la stessa gerarchia, il breadcrumb non è un dato in più: è la stessa informazione scritta due volte. Dati verificati il 1 novembre 2026.

## La limitazione

Il breadcrumb non è garantito: Google può mostrare il percorso o l'URL nudo, e sullo schermo di un telefono lo spazio spesso non c'è. Il markup resta utile perché descrive la gerarchia, non perché disegna una riga nel risultato. Su un sito con due percorsi possibili per la stessa pagina, la documentazione chiede di dichiarare quello che l'utente vede.

## Dove continuare

La struttura dei link è in link interni hub-and-spoke; l'indirizzo canonico della pagina è in canonicalizzazione; l'elenco che Google legge è in sitemap index o file unico. Se la gerarchia nasce dalle route, il framework la cambia: il confronto è in Remix o Next.js.

## FAQ

### Il breadcrumb visibile deve corrispondere al markup?

Sì. Google chiede che il markup descriva ciò che l'utente vede: un percorso nel markup diverso da quello in pagina è la definizione di markup fuorviante.

### Quanti livelli può avere un breadcrumb?

Il vocabolario schema.org non pone un limite, ma un percorso leggibile ha due o tre livelli oltre la home. Oltre, l'utente smette di leggere e il risultato non lo mostra.

### Serve il breadcrumb su ogni pagina?

Serve dove la pagina ha un genitore. La home non ha un percorso, e un elenco di un solo elemento non aggiunge informazione.

### Posso generare il breadcrumb dal router?

Sì, ed è il modo più affidabile: le route annidate contengono già la gerarchia. Attenzione ai filtri e ai parametri, che non sono livelli.

### Il breadcrumb migliora il ranking?

No, non è un fattore di posizione. Cambia il modo in cui il risultato mostra il percorso e aiuta Google a capire la gerarchia del sito.
