**TL;DR.** Les données structurées des avis produits génèrent des évaluations par étoiles dans les SERPs de Google et des citations de recherche AI. Émettez `aggregateRating` pour les produits ayant 3 avis ou plus et des `review[]` individuelles pour les 3 à 10 meilleurs. Collectez les avis via un canal vérifié — les avis faux ou intéressés sont pénalisés.

## Pourquoi le schéma d'avis est important

Les évaluations par étoiles dans les listes SERP augmentent le CTR de 10 à 30 % dans les niches concurrentielles. Les moteurs AI (Perplexity, ChatGPT) affichent également les évaluations agrégées lors de la réponse aux requêtes "quel est le meilleur...".

Impact dans le monde réel :

- Un produit avec 4,7 étoiles et 200 avis surpasse un produit sans étoiles même à une position inférieure.
- Google AI Overviews affiche "X a une note moyenne de 4,7 sur 200 avis" lorsque les avis sont structurés.
- Augmentations de conversion : 5 à 15 % rien qu'avec l'affichage des étoiles.

## aggregateRating

Les données structurées principales :

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Sac messager en cuir marron",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": 218,
    "bestRating": "5",
    "worstRating": "1"
  }
}
```

Champs :

- `ratingValue` : la note moyenne, généralement avec une décimale.
- `reviewCount` : nombre total d'avis agrégés.
- `bestRating` : généralement 5. Par défaut si omis.
- `worstRating` : généralement 1. Par défaut si omis.
- `ratingCount` : alternative à `reviewCount` pour les évaluations sans contenu écrit.

## Avis individuels[]

Pour renforcer la citabilité — tant pour les Rich Results de Google que pour les moteurs AI — émettez les 3 à 10 meilleurs avis individuels :

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Sac messager en cuir marron",
  "aggregateRating": { ... },
  "review": [
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "author": {
        "@type": "Person",
        "name": "M.J."
      },
      "datePublished": "2026-04-12",
      "reviewBody": "Sac magnifiquement conçu. Le cuir est pleine fleur et les coutures sont propres. Le matériel semble solide. Je l'utilise quotidiennement depuis 3 mois et il vieillit parfaitement."
    },
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5"
      },
      "author": {
        "@type": "Person",
        "name": "K.L."
      },
      "datePublished": "2026-03-28",
      "reviewBody": "Beau sac. Légèrement plus grand que ce à quoi je m'attendais — assurez-vous de vérifier les dimensions. La qualité est excellente."
    }
  ]
}
```

Requis par `Review` :

- `reviewRating.ratingValue`
- `author.name` (Personne ou Organisation)
- `datePublished`
- `reviewBody` (le texte réel)

Optionnel mais utile :

- `name` (titre de l'avis)
- `reviewAspect` (aspect spécifique évalué)

## Avis vérifiés uniquement

Les [directives de Google sur les extraits d'avis](https://developers.google.com/search/docs/appearance/structured-data/review-snippet) exigent que les avis soient :

- Provenant de clients réels (pas faux ou auto-écrits).
- Concernant un produit spécifique (pas le magasin dans son ensemble, sauf sur la page du magasin).
- Originaux (pas de duplicata d'avis sur d'autres sites).

Comment collecter des avis vérifiés :

1. **Email post-achat** : demandez aux clients 5 à 14 jours après la livraison de laisser un avis. Incluez un jeton de vérification dans le lien.
2. **Plateformes tierces** : Trustpilot, Yotpo, Reviews.io, Google Customer Reviews. Ces plateformes vérifient l'identité du client (généralement via la correspondance de commande) et fournissent des données structurées.
3. **Intégration native** : collectez des avis directement dans votre vitrine avec vérification de l'historique des commandes.

À éviter :

- Avis anonymes de visiteurs non vérifiés.
- Contenu d'avis généré par AI.
- Avis de "amis et famille" non signalés comme tels.
- Achat d'avis auprès de tiers.

Pénalité pour les avis intéressés / manipulatoires : dégradation SERP, parfois à l'échelle du site.

## La pénalité des avis intéressés

En 2019, Google a introduit la règle des "avis intéressés". La règle : **ne pas émettre de schéma d'avis pour l'entité qui possède la page.**

| Emplacement du schéma         | Autorisé ?                       |
| ----------------------------- | -------------------------------- |
| Schéma produit sur une PDP    | Oui (concernant le produit)      |
| Schéma d'organisation sur la page d'accueil | **Non** (concernant la marque elle-même) |
| Schéma LocalBusiness sur À propos | **Non**                          |
| Schéma de service sur une page de service | **Non**                       |
| Avis de recette / livre / film | Oui si provenant de consommateurs réels |

Résultat : les évaluations par étoiles sur le schéma de produit apparaissent dans les SERPs. Les avis intéressés d'organisation sont silencieusement supprimés.

## Combiner avec le schéma de produit 2026

Un JSON-LD complet de produit 2026 :

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://example.com/products/leather-bag#product",
  "name": "Sac messager en cuir marron",
  "description": "Sac messager en cuir pleine fleur fait à la main avec matériel en laiton.",
  "image": ["https://example.com/.../leather-bag.avif"],
  "brand": { "@type": "Brand", "name": "Acme" },
  "sku": "ACM-MSGR-001",
  "gtin": "1234567890123",
  "material": "cuir",
  "color": "marron",
  "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": [ /* 3 à 10 meilleurs avis */ ]
}
```

## Validation

1. [Google Rich Results Test](https://search.google.com/test/rich-results) — confirme l'éligibilité et prévisualise l'affichage des étoiles.
2. [Schema Markup Validator](https://validator.schema.org) — validation uniquement syntaxique.
3. Google Search Console → Améliorations → Extraits d'avis — couverture de production.

## Invalidation du cache

Lorsqu'un nouvel avis arrive, mettez à jour aggregateRating et re-renderisez la PDP. Dans Next.js avec des tags de 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}`);
}
```

Le tag `product-rating-{id}` rafraîchit le JSON-LD aggregateRating ; le tag `product-{id}` rafraîchit la PDP complète.

## Comment Ordiko émet le schéma d'avis

- `aggregateRating` provenant de la vue matérialisée `products.reviewSummary`.
- Top 5 `review[]` de la table `reviews` (triés par utilité ou récence).
- Tag de cache `seoTags.productRating` invalidé à chaque écriture d'avis.
- Drapeau intégré de client vérifié — seuls les avis vérifiés comptent pour l'agrégat.
- Sensible à la locale : le schéma d'avis est servi dans la locale de la page.

## FAQ

**Combien d'avis ai-je besoin avant d'ajouter aggregateRating ?**
Schema.org ne spécifie pas de minimum, mais Google recommande au moins 3 pour éviter les avertissements de données rares. En dessous de 3, omettez aggregateRating — émettre une note de 5 étoiles à partir d'un seul avis peut sembler manipulateur.

**Puis-je émettre des avis collectés en dehors de mon site (par exemple, Trustpilot) ?**
Oui, si l'avis concerne réellement le produit (pas le magasin) et que vous avez le droit de l'afficher. Les avis inter-domaines sont un schéma valide. De nombreux commerçants utilisent Trustpilot, Yotpo ou Google Customer Reviews et réémettent le schéma d'avis sur la page produit.

**Pourquoi Google a-t-il cessé d'afficher des étoiles pour certaines pages produits ?**
En 2019, Google a restreint les extraits d'avis — ils ne s'affichent plus pour les "avis intéressés" (avis de votre propre entreprise sur votre propre site). Ils s'affichent toujours pour les avis de produits collectés auprès de clients réels. Si vous avez perdu des étoiles, vérifiez si vos avis sont réellement motivés par les clients.

**Comment Ordiko émet-il le schéma d'avis ?**
La vitrine PDP d'Ordiko émet aggregateRating à partir de la vue products.reviewSummary et les 5 meilleures entrées review[] de la table reviews. Le tag de cache seoTags.productRating s'invalide à chaque nouvel avis, maintenant le schéma à jour.