Carrousels de données structurées (bêta)

Google utilise des données structurées pour comprendre le contenu de la page et le présenter sous une forme plus riche dans les résultats de recherche, ce que l'on appelle un résultat enrichi. Ce guide se concentre sur un nouveau résultat enrichi de type carrousel, disponible en version bêta. Il s'agit d'un résultat enrichi sous forme de liste que les utilisateurs peuvent faire défiler horizontalement pour voir plus d'entités d'un site donné (également appelé "carrousel hôte"). Chaque tuile du carrousel peut contenir des informations provenant de votre site concernant le prix, la note et les images des entités sur la page.

Pour pouvoir afficher ce résultat enrichi en version bêta, ajoutez des données structurées ItemList avec au moins l'un des éléments de données structurées compatibles suivants:

Voici comment les carrousels peuvent apparaître dans la recherche Google lorsque vous ajoutez le balisage ItemList à un type de contenu compatible :

Nouveau résultat enrichi de type carrousel

Disponibilité de cette fonctionnalité

Cette fonctionnalité est en version bêta, les conditions requises et consignes peuvent donc encore être modifiées. Si votre entreprise est basée dans l'EEE ou qu'elle propose ses produits ou services à des utilisateurs dans l'EEE, et que vous souhaitez en savoir plus et indiquer votre intérêt concernant ces nouvelles expériences, vous pouvez commencer par remplir le formulaire approprié (pour les requêtes liées à des vols, utilisez le formulaire de participation dédié).

Cette fonctionnalité n'est actuellement disponible que dans les pays de l'Espace économique européen (EEE), sur les ordinateurs et les appareils mobiles. Elle est disponible pour les requêtes de recherche à proximité ou liées à un voyage ou un achat. Pour les requêtes concernant un achat, elle est d'abord testée en Allemagne, en France, en Tchéquie et au Royaume-Uni.

Ajouter des données structurées

Ces données structurées représentent un format normalisé permettant de fournir des informations sur une page et de classer son contenu. En savoir plus sur le fonctionnement des données structurées si vous découvrez les données structurées

Voici comment ajouter des données structurées à votre site.

  1. Choisissez une seule page récapitulative contenant des informations sur chaque entité de la liste. Par exemple, une page de catégorie qui liste les "Meilleurs hôtels à Paris", avec des liens vers des pages d'informations spécifiques sur votre site pour en savoir plus sur chaque hôtel. Si nécessaire, vous pouvez combiner différents types d'entités (par exemple, hôtels et restaurants). Par exemple, si vous avez un article "Activités à découvrir en Suisse" qui répertorie à la fois les événements locaux et les établissements locaux.
  2. Ajoutez les propriétés requises à cette page récapitulative. Vous n'avez pas besoin d'ajouter de balisage aux pages d'informations pour être éligible à cette fonctionnalité bêta. En fonction du format que vous utilisez, découvrez où insérer des données structurées sur la page.
  3. Ajoutez les propriétés obligatoires et recommandées pour le type de contenu spécifique sur lequel porte le carrousel :

    Selon votre scénario, vous pouvez choisir quel type est le plus approprié. Par exemple, si votre page contient une liste d'hôtels et de locations de vacances, utilisez les types Hotel et VacationRental. Bien qu'il soit idéal d'utiliser le type le plus proche de votre scénario, vous pouvez opter pour un type plus générique (par exemple, LocalBusiness).

  4. Suivez les consignes.
  5. Validez votre code à l'aide de l'outil de test des résultats enrichis.
  6. Déployez quelques pages où figurent vos données structurées et utilisez l'outil d'inspection d'URL pour découvrir comment Google voit la page. Assurez-vous que Google peut accéder à votre page et que celle-ci n'est pas bloquée par un fichier robots.txt, la balise noindex ni par des identifiants de connexion. Si tout semble être en ordre, vous pouvez demander à Google d'explorer de nouveau vos URL.
  7. Pour informer Google des modifications futures de vos pages, nous vous recommandons de nous envoyer un sitemap. Vous pouvez automatiser cette opération à l'aide de l'API Sitemap de la Search Console.

Consignes

Pour que votre page soit éligible aux résultats enrichis de type carrousel, vous devez suivre les Essentiels de la recherche et les consignes générales relatives aux données structurées. En outre, les consignes suivantes s'appliquent aux résultats enrichis de type carrousel :

  • L'utilisation de types génériques est autorisée. Toutefois, pour utiliser les propriétés recommandées, vous devez utiliser les types respectifs. Par exemple, pour utiliser amenityFeature, utilisez le type LodgingBusiness.
  • L'utilisation de champs supplémentaires est autorisée, mais il est possible qu'ils n'apparaissent pas dans le résultat enrichi.
  • Votre site doit comporter une page récapitulative et plusieurs pages d'informations. Actuellement, cette fonctionnalité n'est pas conçue pour fonctionner avec d'autres scénarios, tels qu'une page tout-en-un où les "informations" sont des points d'ancrage au sein de la même page.
  • Le balisage doit se trouver sur une page de résumé ou de catégorie. Il s'agit d'une page semblable à une liste qui contient des informations sur au moins trois entités, puis qui renvoie vers d'autres pages de votre site pour en savoir plus sur ces entités. Bien qu'il ne soit pas nécessaire d'ajouter un balisage aux pages d'informations, vous devez inclure les URL des pages d'informations dans le balisage de votre page de résumé.

Exemples

Voici une structure générale du carrousel. L'ordre spécifié dans le balisage est celui qui sera utilisé pour classer les vignettes dans le résultat enrichi de type carrousel.


  <html>
    <head>
      <title>Top 5 Restaurants in Italy</title>
      <script type="application/ld+json">
        {
        "@context": "https://schema.org",
        "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
                "position": 1,
                "item": {
                  "@type": "Restaurant",
                  "name": "Trattoria Luigi",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$",
                  "servesCuisine": "Italian",
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.5,
                    "reviewCount": 250
                  },
                "url": "https://www.example.com/trattoria-luigi"
              }
            },
            {
              "@type": "ListItem",
                "position": 2,
                "item": {
                  "@type": "Restaurant",
                  "name": "La Pergola",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$",
                  "servesCuisine": "Italian",
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.9,
                    "reviewCount": 1150
                  },
                "url": "https://www.example.com/la-pergola"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Restaurant",
                "name": "Pasta e Basta",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.2,
                  "reviewCount": 690
                },
              "url": "https://www.example.com/pasta-e-basta"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>
  

Définitions des types de données structurées

Vous devez inclure les propriétés obligatoires pour que votre contenu puisse être affiché sous forme de résultat enrichi. Vous pouvez également inclure les propriétés recommandées pour ajouter d'autres informations sur votre contenu et ainsi offrir une meilleure expérience utilisateur.

ItemList

ItemList est l'élément qui contient tous les éléments de la liste. Toutes les URL des éléments de la liste doivent renvoyer vers des pages différentes sur le même domaine.

La définition complète de l'élément ItemList est disponible sur schema.org/ItemList.

Propriétés obligatoires
itemListElement

ListItem

Liste des éléments. Pour spécifier une liste, définissez une ItemList contenant au moins trois éléments itemListElement.item.

itemListElement.item

Sous-type de LocalBusiness, Product ou Event

Élément individuel dans une liste. Renseignez cet objet avec :

Exemple : Pour un hôtel, indiquez les propriétés priceRange et amenityFeature.

itemListElement.position

Integer

Position de l'élément dans le carrousel, illustrée par un nombre en code unaire.

Propriétés communes des éléments de liste (LocalBusiness, Product, ou Event)

Tous les types d'éléments du carrousel ont les propriétés suivantes en commun.

Propriétés obligatoires
image

Élément URL ou ImageObject répété

Une ou plusieurs images de l'entité ou de l'élément (par exemple, une image de l'hôtel) N'incluez pas de logos dans cette propriété d'image.

Consignes supplémentaires relatives aux images :

  • Chaque page doit contenir au moins une image (que vous incluiez ou non un balisage). Google choisit la meilleure image à afficher dans les résultats de recherche en fonction du format et de la résolution.
  • Les URL des images doivent être explorables et indexables. Pour vérifier si Google peut accéder à vos URL, utilisez l'outil d'inspection d'URL.
  • Les images doivent représenter le contenu balisé.
  • Le format des fichiers images doit être compatible avec Google Images.
  • Pour de meilleurs résultats, nous vous recommandons de fournir plusieurs images haute résolution (minimum 50 000 pixels lorsque vous multipliez la largeur et la hauteur) dans l'un des formats suivants : 16x9, 4x3 et 1x1.

Exemple :

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
name

Text

Nom de chaîne de l'entité ou de l'élément. Par exemple, le nom d'un hôtel ou une location de vacances. item.name apparaît comme titre d'un élément individuel dans le carrousel. Le format HTML est ignoré.

url

URL

URL canonique de la page d'informations de l'élément (par exemple, la page autonome d'un hôtel ou d'une location de vacances référencée sur la page récapitulative). Toutes les URL de la liste doivent être uniques, mais doivent appartenir au même domaine (même domaine, sous-domaine ou domaine de niveau supérieur que la page récapitulative).

Propriétés recommandées
aggregateRating.bestRating

Number

Il s'agit de la valeur la plus élevée autorisée dans ce système de notation (par exemple, 5 / 10). En l'absence de bestRating, 5 est déduit.

aggregateRating.ratingCount

Number

Nombre total de notes données à l'élément sur votre site.

aggregateRating.ratingValue

Number ou Text

Valeur numérique indiquant le niveau de qualité de l'élément sous forme de nombre, de fraction ou de pourcentage (par exemple, 4, 60% ou 6 / 10). Google interprète l'échelle pour les fractions et les pourcentages, car elle est implicite dans la fraction elle-même ou le pourcentage. Pour les nombres, une échelle par défaut à cinq points est utilisée : 1 correspond à la valeur la plus faible et 5 à la valeur la plus élevée. Si une autre échelle est prévue, utilisez bestRating et worstRating.

Pour les nombres décimaux, utilisez un point au lieu d'une virgule (par exemple, 4.4 au lieu de 4,4). Dans les microdonnées et RDFa, vous pouvez utiliser les attributs content pour remplacer le contenu visible. De cette façon, vous pouvez montrer à l'utilisateur la convention de style à utiliser, tout en répondant aux exigences en termes de points pour les données structurées. Exemple :

<span itemprop="ratingValue" content="4.4">4,4</span> stars

Autres définitions des propriétés spécifiques au type

LocalBusiness (et sous-types)

En plus des propriétés ListItem, Google accepte les propriétés LocalBusiness suivantes (y compris leurs sous-types) pour les résultats enrichis de type carrousel. Imbriquez ces propriétés sous itemListElement.item.

Propriétés recommandées
amenityFeature

LocationFeatureSpecification

Pour LodgingBusiness uniquement : service (par exemple, une caractéristique ou une prestation) de l'hébergement.

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "beachAccess",
  "value": true
}
priceRange

Text

Gamme de prix relative d'un établissement, généralement spécifiée par un nombre normalisé de symboles de devise. Indiquez la gamme de prix dans l'un des formats suivants :

  • Niveau de prix : par exemple, "$", "$$", "$$$"
  • Plage : par exemple, "$-$$"

Ce champ doit comporter moins de 12 caractères. Dans le cas contraire, Google n'affiche pas de gamme de prix pour l'entreprise.

servesCuisine

Text

Pour les restaurants uniquement : type de cuisine proposé par le restaurant.

Product

Outre les propriétés ListItem, Google accepte les propriétés Product suivantes pour les résultats enrichis de type carrousel. Imbriquez ces propriétés sous itemListElement.item.

Propriétés recommandées
offers

Offer ou AggregateOffer

Élément Offer ou AggregateOffer imbriqué pour vendre le produit. Incluez les propriétés recommandées pour Offer ou AggregateOffer (selon ce qui s'applique à votre contenu).

Si vous utilisez Offer, y compris les propriétés suivantes :

  • offers.price
  • offers.priceCurrency

Si vous utilisez AggregateOffer, y compris les propriétés suivantes :

  • offers.highPrice
  • offers.lowPrice
  • offers.priceCurrency
offers.highPrice

Number

Prix le plus élevé parmi toutes les offres disponibles. Si vous spécifiez un prix unique avec price, vous n'avez pas besoin d'inclure les propriétés highPrice et lowPrice.

offers.lowPrice

Number

Prix le plus bas parmi toutes les offres disponibles. Si vous spécifiez un prix unique avec price, vous n'avez pas besoin d'inclure les propriétés highPrice et lowPrice.

offers.price

Number

Prix d'offre d'un produit ou d'un composant de prix lorsqu'il est associé à PriceSpecification et à ses sous-types. Si vous spécifiez une gamme de prix avec lowPrice et highPrice, n'incluez pas la propriété price.

offers.priceCurrency

Text

Devise utilisée pour décrire le prix du produit, au format ISO 4217 à trois lettres. Si aucune devise n'est fournie, Google utilise USD par défaut.

Event

Outre les propriétés ListItem, Google accepte les propriétés Event suivantes pour les résultats enrichis de type carrousel. Imbriquez ces propriétés sous itemListElement.item.

Propriétés recommandées
offers

Offer ou AggregateOffer

Élément Offer ou AggregateOffer imbriqué pour vendre l'événement. Incluez les propriétés recommandées pour Offer ou AggregateOffer (selon ce qui s'applique à votre contenu).

Si vous utilisez Offer, y compris les propriétés suivantes :

  • offers.price
  • offers.priceCurrency

Si vous utilisez AggregateOffer, y compris les propriétés suivantes :

  • offers.highPrice
  • offers.lowPrice
  • offers.priceCurrency
offers.highPrice

Number

Prix le plus élevé parmi toutes les offres disponibles. Si vous spécifiez un prix unique avec price, vous n'avez pas besoin d'inclure les propriétés highPrice et lowPrice.

offers.lowPrice

Number

Prix le plus bas parmi toutes les offres disponibles. Si vous spécifiez un prix unique avec price, vous n'avez pas besoin d'inclure les propriétés highPrice et lowPrice.

offers.price

Number

Le prix de vos billets, y compris les frais de service et les taxes. N'oubliez pas de mettre à jour cette valeur lorsque les prix changent ou que les billets sont tous vendus. Si vous spécifiez une gamme de prix avec lowPrice et highPrice, n'incluez pas la propriété price.

Si l'événement est disponible sans paiement, frais de service ou taxes, définissez la valeur de price sur 0.

"offers": {
  "@type": "Offer",
  "price": 0
}
offers.priceCurrency

Text

Devise utilisée pour décrire le prix de l'événement, au format ISO 4217 à trois lettres. Si aucune devise n'est fournie, Google utilise USD par défaut.

Exemples pour les scénarios courants

Exemple de Restaurant

Voici un exemple de carrousel de restaurant au format JSON-LD.


<html>
    <head>
      <title>Top 5 Restaurants in Paris</title>
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
              "position": 1,
              "item": {
                "@type": "Restaurant",
                "name": "Trattoria Luigi",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.5,
                  "reviewCount": 250
                },
                "url": "https://www.example.com/restaurant-location-1"
              }
            },
            {
              "@type": "ListItem",
              "position": 2,
              "item": {
                "@type": "Restaurant",
                "name": "La Pergola",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 1150
                },
                "url": "https://www.example.com/restaurant-location-2"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Restaurant",
                "name": "Pasta e Basta",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.2,
                  "reviewCount": 690
                },
                "url": "https://www.example.com/restaurant-location-3"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>

Exemple d'hébergement (Hotels et VacationRental)

Voici un exemple de carrousel d'hébergement au format JSON-LD.


<html>
    <head>
      <title>Top 5 Hotels in Paris</title>
      <script type="application/ld+json">
        {
        "@context": "https://schema.org",
        "@type": "ItemList",
            "itemListElement": [
              {
                "@type": "ListItem",
                "position": 1,
                "item": {
                  "@type": "Hotel",
                  "name": "Four Seasons Hotel George V, Paris",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$$",
                  "amenityFeature": {
                      "@type": "LocationFeatureSpecification",
                      "name" : "internetType",
                      "value": "Free"
                  },
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.9,
                    "reviewCount": 50
                  },
                  "url": "https://www.example.com/four-seasons"
                }
              },
              {
                "@type": "ListItem",
                "position": 2,
                "item": {
                  "@type": "VacationRental",
                  "name": "Downtown Condo",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$",
                  "amenityFeature": {
                    "@type": "LocationFeatureSpecification",
                    "name" : "instantBookable",
                    "value": true
                  },
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.7,
                    "reviewCount": 827
                  },
                  "url": "https://www.example.com/downtown-condo"
                }
              },
              {
                "@type": "ListItem",
                "position": 3,
                "item": {
                  "@type": "Hotel",
                  "name": "Ritz Paris",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$$",
                  "amenityFeature": {
                    "@type": "LocationFeatureSpecification",
                    "name" : "freeBreakfast",
                    "value": true
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 1290
                },
                "url": "https://www.example.com/ritz-paris"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>

Exemple d'activités à découvrir

Voici un exemple de carrousel d'activités à découvrir au format JSON-LD.


<html>
    <head>
      <title>Top 5 Things To Do in Paris</title>
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
              "position": 1,
              "item": {
                "@type": "Event",
                "name": "Paris Seine River Dinner Cruise",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "Offer",
                  "price": 45.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.2,
                  "reviewCount": 690
                },
                "url": "https://www.example.com/event-location1"
              }
            },
            {
              "@type": "ListItem",
              "position": 2,
              "item": {
                "@type": "LocalBusiness",
                "name": "Notre-Dame Cathedral",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.8,
                  "reviewCount": 4220
                },
                "url": "https://www.example.com/localbusiness-location"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Event",
                "name": "Eiffel Tower With Host Summit Tour",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "Offer",
                  "price": 59.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 652
                },
                "url": "https://www.example.com/event-location2"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>
  

Exemple de Product

Voici un exemple de carrousel de produit au format JSON-LD.


<html>
    <head>
      <title>Top coats of the season</title>
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
              "position": 1,
              "item": {
                "@type": "Product",
                "name": "Puffy Coat Series by Goat Coat",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "AggregateOffer",
                  "lowPrice": 45.00,
                  "highPrice": 60.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 50
                },
                "url": "https://www.example.com/puffy-coats"
              }
            },
            {
              "@type": "ListItem",
              "position": 2,
              "item": {
                "@type": "Product",
                "name": "Wool Coat Series by Best Coats Around",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "AggregateOffer",
                  "lowPrice": 189.00,
                  "highPrice": 200.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.7,
                  "reviewCount": 827
                },
                "url": "https://www.example.com/wool-coats"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Product",
                "name": "Antartic Coat by Cold Coats",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "Offer",
                  "price": 45.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 1290
                },
                "url": "https://www.example.com/antartic-coat"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>
  

Dépannage

Si vous ne parvenez pas à mettre en œuvre ou à déboguer des données structurées, voici quelques ressources susceptibles de vous aider.