**TL;DR.** I dati strutturati delle recensioni dei prodotti generano valutazioni a stelle nei risultati di ricerca di Google e citazioni nelle ricerche AI. Emmettere `aggregateRating` per i prodotti con 3+ recensioni e `review[]` individuali per i primi 3–10. Raccogliere recensioni attraverso un canale verificato: recensioni false o auto-promozionali vengono penalizzate.

## Perché lo schema delle recensioni è importante

Le valutazioni a stelle nelle inserzioni SERP aumentano il CTR del 10–30% in nicchie competitive. I motori AI (Perplexity, ChatGPT) mostrano anche valutazioni aggregate quando rispondono a query del tipo "qual è il migliore...".

Impatto nel mondo reale:

- Un prodotto con 4.7 stelle e 200 recensioni supera un prodotto senza stelle anche in una posizione inferiore.
- Google AI Overviews mostra "X ha una valutazione media di 4.7 su 200 recensioni" quando le recensioni sono strutturate.
- Aumenti di conversione: 5–15% solo dalla visualizzazione delle stelle.

## aggregateRating

I dati strutturati principali:

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Borsa a tracolla in pelle marrone",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": 218,
    "bestRating": "5",
    "worstRating": "1"
  }
}
```

Campi:

- `ratingValue`: la valutazione media, tipicamente con una cifra decimale.
- `reviewCount`: numero totale di recensioni aggregate.
- `bestRating`: solitamente 5. Predefinito se omesso.
- `worstRating`: solitamente 1. Predefinito se omesso.
- `ratingCount`: alternativa a `reviewCount` per valutazioni senza contenuto scritto.

## Recensione individuale[]

Per rafforzare la citabilità — sia per i Rich Results di Google che per i motori AI — emettere le prime 3–10 recensioni individuali:

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Borsa a tracolla in pelle marrone",
  "aggregateRating": { ... },
  "review": [
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "author": {
        "@type": "Person",
        "name": "M.J."
      },
      "datePublished": "2026-04-12",
      "reviewBody": "Borsa splendidamente realizzata. La pelle è di pieno fiore e le cuciture sono pulite. L'hardware sembra solido. La porto ogni giorno da 3 mesi e sta invecchiando perfettamente."
    },
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5"
      },
      "author": {
        "@type": "Person",
        "name": "K.L."
      },
      "datePublished": "2026-03-28",
      "reviewBody": "Borsa bella. Leggermente più grande di quanto mi aspettassi — assicurati di controllare le dimensioni. La qualità è eccellente."
    }
  ]
}
```

Richiesto per `Review`:

- `reviewRating.ratingValue`
- `author.name` (Persona o Organizzazione)
- `datePublished`
- `reviewBody` (il testo effettivo)

Facoltativo ma utile:

- `name` (titolo della recensione)
- `reviewAspect` (aspetto specifico valutato)

## Solo recensioni verificate

Le [linee guida sui frammenti di recensione di Google](https://developers.google.com/search/docs/appearance/structured-data/review-snippet) richiedono che le recensioni siano:

- Da clienti reali (non false o auto-scritte).
- Riguardo a un prodotto specifico (non al negozio nel complesso, a meno che non sia sulla pagina del negozio).
- Originali (non duplicati di recensioni su altri siti).

Come raccogliere recensioni verificate:

1. **Email post-acquisto**: chiedere ai clienti 5–14 giorni dopo la consegna di lasciare una recensione. Includere un token di verifica nel link.
2. **Piattaforme di terze parti**: Trustpilot, Yotpo, Reviews.io, Google Customer Reviews. Queste piattaforme verificano l'identità del cliente (tipicamente tramite corrispondenza dell'ordine) e forniscono dati strutturati.
3. **Integrazione nativa**: raccogliere recensioni direttamente nel tuo negozio con verifica della cronologia degli ordini.

Evitare:

- Recensioni anonime da visitatori non verificati.
- Contenuti di recensioni generati da AI.
- Recensioni di "amici e familiari" non contrassegnate come tali.
- Acquisto di recensioni da terzi.

Penalità per recensioni auto-promozionali / manipolative: declassamento SERP, a volte a livello di sito.

## La penalità per recensioni auto-promozionali

Nel 2019 Google ha introdotto la regola delle "recensioni auto-promozionali". La regola: **non emettere schema di recensione per l'entità che possiede la pagina.**

| Posizione dello schema        | Consentito?                       |
| ----------------------------- | --------------------------------- |
| Schema prodotto su una PDP    | Sì (riguardo al prodotto)        |
| Schema organizzazione sulla home | **No** (riguardo al marchio stesso) |
| Schema LocalBusiness su Chi Siamo | **No**                             |
| Schema servizio su una pagina di servizio | **No**                          |
| Recensioni di ricette / libri / film | Sì se da consumatori reali       |

Risultato: le valutazioni a stelle sullo schema prodotto appaiono nei SERP. Le recensioni auto-promozionali dell'organizzazione vengono silenziosamente rimosse.

## Combinare con lo schema prodotto 2026

Un JSON-LD completo del prodotto 2026:

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://example.com/products/leather-bag#product",
  "name": "Borsa a tracolla in pelle marrone",
  "description": "Borsa a tracolla in pelle di pieno fiore realizzata a mano con hardware in ottone.",
  "image": ["https://example.com/.../leather-bag.avif"],
  "brand": { "@type": "Brand", "name": "Acme" },
  "sku": "ACM-MSGR-001",
  "gtin": "1234567890123",
  "material": "pelle",
  "color": "marrone",
  "offers": {
    "@type": "Offer",
    "price": "149.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/products/leather-bag",
    "hasMerchantReturnPolicy": { "@id": "https://example.com/#return-policy" },
    "shippingDetails": { "@id": "https://example.com/#shipping-us" }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": 218,
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [ /* prime 3–10 recensioni */ ]
}
```

## Validazione

1. [Google Rich Results Test](https://search.google.com/test/rich-results) — conferma l'idoneità e visualizza in anteprima la visualizzazione delle stelle.
2. [Schema Markup Validator](https://validator.schema.org) — validazione solo della sintassi.
3. Google Search Console → Miglioramenti → Frammenti di recensione — copertura di produzione.

## Invalidazione della cache

Quando arriva una nuova recensione, aggiornare aggregateRating e ri-renderizzare la PDP. In Next.js con tag di cache:

```ts
async function submitReview(productId: string, review: ReviewInput) {
  await db.reviews.insert({ productId, ...review });
  await recomputeProductRating(productId);
  revalidateTag(`product-rating-${productId}`);
  revalidateTag(`product-${productId}`);
}
```

Il tag `product-rating-{id}` aggiorna JSON-LD aggregateRating; il tag `product-{id}` aggiorna l'intera PDP.

## Come Ordiko emette lo schema delle recensioni

- `aggregateRating` dalla vista materializzata `products.reviewSummary`.
- Prime 5 `review[]` dalla tabella `reviews` (ordinate per utilità o recentità).
- Tag di cache `seoTags.productRating` invalidato ad ogni scrittura di recensione.
- Flag integrato per clienti verificati: solo le recensioni verificate contano per l'aggregato.
- Consapevole della lingua: lo schema delle recensioni è servito nella lingua della pagina.

## FAQ

**Quante recensioni devo avere prima di aggiungere aggregateRating?**
Schema.org non specifica un minimo, ma Google raccomanda almeno 3 per evitare avvisi di dati scarsi. Sotto 3, omettere aggregateRating: emettere una valutazione a 5 stelle da una sola recensione può sembrare manipolativo.

**Posso emettere recensioni raccolte al di fuori del mio sito (ad es., Trustpilot)?**
Sì, se la recensione riguarda genuinamente il prodotto (non il negozio) e hai i diritti per visualizzarla. Le recensioni cross-domain sono uno schema valido. Molti commercianti utilizzano Trustpilot, Yotpo o Google Customer Reviews e riemettono lo schema delle recensioni sulla pagina del prodotto.

**Perché Google ha smesso di mostrare stelle per alcune pagine di prodotto?**
Nel 2019 Google ha limitato i frammenti di recensione: non vengono più mostrati per "recensioni auto-promozionali" (recensioni della propria attività sul proprio sito). Vengono ancora mostrati per recensioni di prodotto raccolte da clienti reali. Se hai perso le stelle, controlla se le tue recensioni sono effettivamente guidate dai clienti.

**Come emette Ordiko lo schema delle recensioni?**
La PDP del negozio di Ordiko emette aggregateRating dalla vista products.reviewSummary e le prime 5 voci di review[] dalla tabella delle recensioni. Il tag di cache seoTags.productRating viene invalidato ad ogni nuova recensione, mantenendo lo schema aggiornato.