Esempio di schema Product per Shopify apparel
Esempi JSON-LD Product e ProductGroup pronti da copiare per Shopify apparel — copre varianti taglia e colore, offers, breadcrumb, e le regole AggregateRating che decidono se i motori IA citano davvero la tua pagina prodotto.
Le pagine prodotto apparel su Shopify vengono citate dai motori IA
shopping in base alla precisione con cui il JSON-LD descrive il
panorama di varianti. Un acquirente che chiede «camicia di lino che
veste fedele alla taglia in medium» su ChatGPT, Perplexity o Gemini ha
bisogno che l’IA riconosca che la variante specifica esiste, è in
stock, ha un prezzo, ed è descritta distintamente dalle sorelle L e XL.
Schema Product generico senza dettaglio variante costringe l’IA a
indovinare; ProductGroup con hasVariant le dà i dati per citare con
sicurezza.
Questo esempio fornisce due blocchi JSON-LD pronti da copiare: un
ProductGroup per la matrice di varianti, e un BreadcrumbList per
contesto categoria. Entrambi calibrati per passare Google Rich Results
Test pulitamente e per riflettere il contenuto visibile della pagina (la
regola che i motori IA applicano davvero in pratica).
Quando usare Product vs ProductGroup
| Caso d’uso | Schema | Perché |
|---|---|---|
| Item mono-SKU (una taglia, un colore) | Product | Nessuna matrice di varianti — ProductGroup è eccessivo. |
| Apparel con varianti solo taglia | ProductGroup + variesBy: size | Query IA shopping sono condizionate dalla taglia. |
| Apparel con varianti solo colore | ProductGroup + variesBy: color | Query IA sono condizionate dal colore. |
| Apparel con matrice taglia × colore | ProductGroup + entrambi variesBy | Prodotto cartesiano di varianti; ogni hasVariant è SKU unico. |
| Bundle / kit (più genitori) | Product per item + isRelatedTo custom | ProductGroup descrive varianti di un prodotto, non bundle multi-prodotto. |
I template Liquid di Shopify di default emettono Product indipendente
dal conteggio varianti. L’upgrade a ProductGroup per qualunque apparel
store multi-taglia è un’edit del tema una tantum (o un’app Shopify che
lo gestisce automaticamente); il lift di citazione IA shopping vale lo
sforzo.
ProductGroup JSON-LD (apparel con varianti)
Incolla in un template di pagina prodotto, sostituendo i valori
placeholder. L’esempio mostra un sottoinsieme di 2 varianti; in
produzione avrai un entry hasVariant per SKU reale.
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Linen Relaxed Shirt",
"description": "A breathable linen shirt in three colors, sizes XS–XL. 100% European linen, pre-washed for softness.",
"brand": {
"@type": "Brand",
"name": "Example Apparel"
},
"productGroupID": "linen-shirt-001",
"variesBy": ["https://schema.org/size", "https://schema.org/color"],
"hasVariant": [
{
"@type": "Product",
"sku": "LINEN-SHIRT-WHITE-M",
"name": "Linen Relaxed Shirt — White / M",
"color": "White",
"size": "M",
"material": "Linen",
"image": "https://example.com/products/linen-shirt-white.jpg",
"offers": {
"@type": "Offer",
"url": "https://example.com/products/linen-shirt?variant=white-m",
"priceCurrency": "USD",
"price": "79.00",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
}
},
{
"@type": "Product",
"sku": "LINEN-SHIRT-BLACK-S",
"name": "Linen Relaxed Shirt — Black / S",
"color": "Black",
"size": "S",
"material": "Linen",
"image": "https://example.com/products/linen-shirt-black.jpg",
"offers": {
"@type": "Offer",
"url": "https://example.com/products/linen-shirt?variant=black-s",
"priceCurrency": "USD",
"price": "79.00",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
}
}
]
} BreadcrumbList JSON-LD
Abbina il ProductGroup con un BreadcrumbList così i motori IA
capiscono la gerarchia di categoria dove vive il tuo prodotto. Le URL
del breadcrumb devono corrispondere esattamente al breadcrumb visibile
della pagina.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Shirts",
"item": "https://example.com/collections/shirts"
},
{
"@type": "ListItem",
"position": 3,
"name": "Linen Relaxed Shirt",
"item": "https://example.com/products/linen-shirt"
}
]
} Errori comuni (per frequenza)
-
Marcare varianti che non sono visibili né selezionabili sulla pagina. Lo schema deve riflettere realtà visibile. Se la tua pagina prodotto mostra solo S / M / L ma il JSON-LD dichiara XS fino a XXL, i motori IA alla fine proveranno a citare una variante 404 e penalizzeranno lo store.
-
Usare AggregateRating senza widget recensioni. O mostra le recensioni visibilmente (app Shopify Reviews), o rimuovi il campo schema. Non fabbricare.
-
Incoerenza di currency, prezzo o disponibilità tra schema e pagina prodotto visibile. L’acquirente vede
$79ma lo schema dichiara89.00— i motori IA prendono il numero schema, lo citano, l’acquirente si sente ingannato. Peggio: Google segnala lo schema come inaffidabile. -
Riutilizzare la stessa
skutra varianti. Shopify genera SKU univoci ma i merchant li sovrascrivono spesso. SKU duplicati inhasVariantfanno sì che i motori IA fondano varianti in modo errato. -
Mischiare
ProductGroupeProductin modo che nomi specifici delle varianti si perdano. Se emetti entrambi per lo stesso item, assicurati che l’istanzaProductsia il genitore (nessun dettaglio variante) eProductGroup.hasVariantcontenga le varianti. Non emettereProductper ogni variante fuori dal gruppo. -
Aggiungere claim medici o non supportati alle descrizioni apparel. «Correttore di postura» / «migliora la circolazione» / «tessuto antibatterico previene malattie della pelle» — sono claim regolati nella maggior parte dei mercati e attivano penalizzazione IA anche quando legalmente OK. Resta su descrizioni di vestibilità e materiale.
-
Puntare URL schema a URL variante non canoniche. Se la pagina usa una URL canonica del prodotto (es.:
/products/linen-shirt) e le varianti sono selezionate via query-param (?variant=white-m),hasVariant[].offers.urldeve comunque puntare alla URL specifica della variante — è dove gli acquirenti (e agenti IA) atterrano.
Come verificare
- Incolla l’URL del prodotto deployata in
Google Rich Results Test
. Gli item Product e BreadcrumbList devono validare. - Passa la checklist di validazione sopra campo per campo.
- Apri la pagina in finestra anonima e verifica che H1 prodotto visibile, prezzo, disponibilità e breadcrumb coincidano tutti con quanto dichiarato dallo schema.
- Ri-esegui il generatore di Schema se cambi la struttura prodotto (nuovo colore, taglia rimossa) e redeploya.
Il JSON-LD è un segnale nello stack IA shopping. Abbinalo con il template llms.txt moda per il lato mappa contenuto, e verifica con l’Analizzatore Robots che GPTBot possa raggiungere la pagina prodotto.
Elenco di verifica
Nome prodotto nello schema coincide con l'H1 visibile
Il campo `name` del ProductGroup corrisponde esattamente all'H1 della pagina prodotto (maiuscole + punteggiatura). I motori IA penalizzano i mismatch come segnale di scarsa fiducia.
Ogni variante ha un SKU unico
Nessun valore `hasVariant[].sku` collide. Shopify auto-genera SKU ma i merchant li sovrascrivono spesso — SKU duplicati nello schema fanno sì che i motori IA fondano le varianti in modo errato.
I nomi varianti identificano taglia / colore / materiale
Ogni `hasVariant[].name` si legge come una vera etichetta prodotto (es. «Linen Relaxed Shirt — White / M»), non un placeholder. Le risposte IA shopping citano questo campo direttamente.
productGroupID stabile tra deployment
Il `productGroupID` deve essere un identificatore interno stabile (Shopify product GID o slug personalizzato), non un UUID casuale build-time. I motori IA lo usano per deduplicare lo stesso prodotto tra ricariche pagina.
Ogni Offer ha currency + price + availability + URL
Il blocco `offers` di ogni variante ha `priceCurrency`, `price`, `availability`, `url`. Currency mancante è il motivo n.1 per cui Google Rich Results Test declassa un risultato Product.
AggregateRating solo presente se review reali visibili
Se emetti `aggregateRating`, la stessa valutazione + numero recensioni deve essere visibile sulla pagina prodotto. I motori IA confrontano schema con contenuto visibile; rating fabbricati attivano downweighting.
BreadcrumbList coincide con il breadcrumb visibile
La catena URL `itemListElement` dello schema corrisponde esattamente al breadcrumb visibile della pagina (stesso path, stesse etichette). Discrepanze confondono i motori IA che usano contesto breadcrumb per capire la categoria.
Rich Results Test non restituisce errori critici
Dopo il deploy, incolla l'URL prodotto in https://search.google.com/test/rich-results — gli item Product e BreadcrumbList devono entrambi validare senza errori critici.
Apri nel generatore di Schema
Precompilato con placeholder apparel per nome prodotto, descrizione, brand, prezzo, disponibilità e rating. Sostituisci i placeholder con dati reali e scarica un blocco JSON-LD pronto per Shopify.
Domande frequenti
Un prodotto Shopify apparel deve usare Product o ProductGroup?
Usa `Product` per un item semplice senza varianti. Usa `ProductGroup` quando esistono varianti di taglia, colore o materiale — permette ai motori IA di citare la variante corretta per una query specifica («camicia di lino in taglia M») invece di confonderle. I template Liquid Shopify di default emettono solo `Product`; l'upgrade a `ProductGroup` è manuale ma vale la pena per qualunque apparel store con più taglie.
Posso emettere AggregateRating senza recensioni visibili sulla pagina?
No. Lo schema deve riflettere contenuto visibile. Se emetti `aggregateRating: 4.7 from 32 reviews` ma la pagina prodotto non ha widget recensioni, motori IA e Google segnalano come inaffidabile. Renderizza le recensioni visibilmente (app Shopify come Judge.me o Shopify Reviews nativo) o rimuovi il campo schema.
Ogni variante di colore deve essere un entry hasVariant separato?
Sì quando la variante ha SKU, colore, taglia, immagine, prezzo o disponibilità distinti. I motori IA shopping che rispondono «la camicia di lino nera è ancora disponibile» hanno bisogno di ogni variante come nodo Product indirizzabile separatamente con il suo `offers.availability`. Solo colore → un `hasVariant` per colore; solo taglia → uno per taglia; taglia+colore → prodotto cartesiano.
Lo schema ProductGroup sostituisce i feed prodotto Shopify?
No. Il JSON-LD sulla pagina complementa i feed (l'auto-generato `/products.json` di Shopify, Google Merchant feed, Meta Catalog). I motori IA shopping crawlano le pagine direttamente *e* leggono i feed — entrambi i segnali contano. Non abbandonare uno per l'altro.
Risorse correlate
Template llms.txt Shopify moda
Abbina questo schema Product con una mappa contenuto llms.txt — entrambi i segnali lavorano insieme per la citazione IA shopping.
Template llms.txt Shopify beauty
Verticale sorella — gli stessi principi JSON-LD valgono per schema Product beauty, ma con campi contesto ingredienti invece di taglia/colore.
Template llms.txt Shopify elettronica
Verticale sorella — per elettronica usare ProductGroup con campi numero modello + compatibilità invece di varianti taglia/colore.
Shopify AI Visibility Optimizer
Lo stack completo di visibilità IA — schema, mappa contenuto, policy crawler, monitoraggio citazioni.
llms.txt per Shopify — guida completa
Contesto sul segnale mappa-contenuto che si abbina con il segnale schema in questo esempio.