Vai al contenuto principale
🇮🇹

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.

5 min read

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’usoSchemaPerché
Item mono-SKU (una taglia, un colore)ProductNessuna matrice di varianti — ProductGroup è eccessivo.
Apparel con varianti solo tagliaProductGroup + variesBy: sizeQuery IA shopping sono condizionate dalla taglia.
Apparel con varianti solo coloreProductGroup + variesBy: colorQuery IA sono condizionate dal colore.
Apparel con matrice taglia × coloreProductGroup + entrambi variesByProdotto cartesiano di varianti; ogni hasVariant è SKU unico.
Bundle / kit (più genitori)Product per item + isRelatedTo customProductGroup 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.

ProductGroup JSON-LD (varianti apparel) json
{
  "@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"
      }
    }
  ]
}

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.

BreadcrumbList JSON-LD json
{
  "@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)

  1. 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.

  2. Usare AggregateRating senza widget recensioni. O mostra le recensioni visibilmente (app Shopify Reviews), o rimuovi il campo schema. Non fabbricare.

  3. Incoerenza di currency, prezzo o disponibilità tra schema e pagina prodotto visibile. L’acquirente vede $79 ma lo schema dichiara 89.00 — i motori IA prendono il numero schema, lo citano, l’acquirente si sente ingannato. Peggio: Google segnala lo schema come inaffidabile.

  4. Riutilizzare la stessa sku tra varianti. Shopify genera SKU univoci ma i merchant li sovrascrivono spesso. SKU duplicati in hasVariant fanno sì che i motori IA fondano varianti in modo errato.

  5. Mischiare ProductGroup e Product in modo che nomi specifici delle varianti si perdano. Se emetti entrambi per lo stesso item, assicurati che l’istanza Product sia il genitore (nessun dettaglio variante) e ProductGroup.hasVariant contenga le varianti. Non emettere Product per ogni variante fuori dal gruppo.

  6. 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.

  7. 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.url deve comunque puntare alla URL specifica della variante — è dove gli acquirenti (e agenti IA) atterrano.

Come verificare

  1. Incolla l’URL del prodotto deployata in

    Google Rich Results Test

    . Gli item Product e BreadcrumbList devono validare.
  2. Passa la checklist di validazione sopra campo per campo.
  3. Apri la pagina in finestra anonima e verifica che H1 prodotto visibile, prezzo, disponibilità e breadcrumb coincidano tutti con quanto dichiarato dallo schema.
  4. 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