Définition courte
Le Schema Product est un balisage de données structurées JSON-LD qui permet à Shopify de communiquer aux moteurs de recherche des informations précises sur un produit : nom, prix, disponibilité, avis et notes. L'intégration des propriétés Offer (offre) et AggregateRating (note agrégée) améliore l'affichage enrichi dans les résultats de recherche.
Résumé opérationnel
Pour déployer un Schema Product complet sur Shopify, il faut injecter un bloc JSON-LD dans le fichier product.liquid ou via une application dédiée. Ce bloc doit inclure les propriétés obligatoires (name, description, sku, brand, offers) et les propriétés recommandées (aggregateRating, review, image). L'ajout d'Offer avec price, priceCurrency et availability permet d'afficher le prix et la disponibilité en recherche. AggregateRating nécessite un système d'avis fonctionnel (comme Product Reviews de Shopify ou une app tierce) pour alimenter ratingValue et reviewCount. La validation via l'outil de test des données structurées de Google est indispensable avant la mise en production.
Cas fréquent observé : de nombreuses boutiques Shopify ajoutent le Schema Product sans les propriétés Offer et AggregateRating, ce qui limite l'affichage enrichi à un simple extrait texte. Dans les faits, l'absence de AggregateRating empêche l'affichage des étoiles dans les résultats, pourtant source majeure de clics. En accompagnement, la difficulté réelle réside dans la synchronisation des données dynamiques (prix, stock) avec le JSON-LD, surtout pour les produits à variantes ou en rupture.
Pourquoi intégrer Schema Product avec Offer et AggregateRating sur Shopify
Le balisage Schema Product transforme une page produit classique en un résultat de recherche enrichi. Les moteurs de recherche comme Google utilisent ces données structurées pour afficher des extraits visuels : prix, disponibilité, étoiles de notation. Cela augmente le taux de clic (CTR) de manière significative par rapport à un résultat standard. Pour une boutique Shopify, l'ajout des propriétés Offer et AggregateRating est particulièrement stratégique. Offer permet de montrer le prix exact et l'état du stock (en stock, épuisé, précommande). AggregateRating affiche la note moyenne et le nombre d'avis, ce qui renforce la confiance de l'internaute avant même le clic.
Ces enrichissements sont directement corrélés à une meilleure visibilité organique et à une augmentation des conversions. Google privilégie les résultats qui fournissent une information claire et immédiate. En intégrant ces propriétés, votre produit devient plus attractif dans la SERP, ce qui peut réduire le coût des campagnes publicitaires en générant plus de trafic naturel.
Structure JSON-LD minimale pour un produit Shopify
Le JSON-LD doit être placé dans la balise <script type="application/ld+json"> dans le fichier product.liquid de votre thème Shopify. Voici les propriétés obligatoires selon Schema.org : @context, @type (Product), name, description, sku, brand, offers. Pour Shopify, il est recommandé d'ajouter image, url, mpn (si disponible) et gtin (code-barres).
Exemple de squelette : {"@context":"https://schema.org/","@type":"Product","name":"{{ product.title | escape }}","description":"{{ product.description | strip_html | escape }}","sku":"{{ product.sku }}","brand":{"@type":"Brand","name":"{{ product.vendor | escape }}"},"offers":{...}}. Les variables Liquid dynamiques permettent de remplir automatiquement les champs. Attention : si un champ est vide (ex. sku), il faut le gérer avec une condition Liquid pour éviter un affichage erroné.
Propriété Offer : prix, devise et disponibilité
La propriété offers est de type Offer. Elle doit contenir au minimum : @type (Offer), price (nombre décimal), priceCurrency (code ISO 4217, ex. EUR), availability (URL de Schema.org : InStock, OutOfStock, PreOrder). Pour Shopify, on peut utiliser {{ product.price | money_without_currency }} pour le prix et {{ product.available }} pour déterminer la disponibilité.
Exemple pour un produit en stock : "offers":{"@type":"Offer","price":"{{ product.price | money_without_currency }}","priceCurrency":"EUR","availability":"https://schema.org/InStock"}. Pour les produits avec variantes, il faut boucler sur chaque variante et créer un tableau d'offres. Attention : le prix doit être au format nombre (ex. "19.99") et non avec le symbole de la devise. Shopify exporte souvent le prix avec une virgule, il faut donc utiliser un filtre Liquid comme | replace: ',', '.'.
Propriété AggregateRating : intégration des avis
AggregateRating permet d'afficher la note moyenne et le nombre d'avis dans les résultats de recherche. Cette propriété nécessite un système d'avis fonctionnel sur votre boutique. Shopify propose l'application gratuite Product Reviews, mais d'autres solutions comme Yotpo, Judge.me ou Loox sont compatibles. Les données nécessaires sont : ratingValue (note moyenne, ex. 4.5), reviewCount (nombre d'avis), bestRating (généralement 5), worstRating (généralement 1).
Exemple : "aggregateRating":{"@type":"AggregateRating","ratingValue":"4.5","reviewCount":"127","bestRating":"5","worstRating":"1"}. Pour récupérer ces données dynamiquement, il faut utiliser les variables Liquid de l'application d'avis installée. Par exemple, avec Product Reviews : {{ product.metafields.product_reviews.rating }} et {{ product.metafields.product_reviews.count }}. Si aucun avis n'est présent, il est préférable de ne pas inclure AggregateRating pour éviter une note de 0.
Gestion des variantes de produit dans le JSON-LD
Les produits Shopify avec variantes (tailles, couleurs) nécessitent une approche spécifique. Chaque variante doit être représentée comme une offre distincte dans le tableau offers. Pour cela, on boucle sur product.variants dans Liquid et on génère un objet Offer pour chaque variante. Il faut inclure les propriétés price, priceCurrency, availability, sku (propre à la variante) et url (lien direct vers la variante).
Exemple de structure : "offers":[{% for variant in product.variants %}{"@type":"Offer","price":"{{ variant.price | money_without_currency | replace: ',', '.' }}","priceCurrency":"EUR","availability":"{% if variant.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}","sku":"{{ variant.sku }}","url":"{{ shop.url }}{{ variant.url }}"}{% unless forloop.last %},{% endunless %}{% endfor %}]. Attention : ne pas oublier de gérer les virgules entre les offres avec la condition unless forloop.last.
Validation et test des données structurées
Avant de déployer votre Schema Product, il est impératif de le valider avec l'outil de test des données structurées de Google (Rich Results Test) ou l'outil de validation Schema.org. Ces outils analysent le JSON-LD et signalent les erreurs : propriétés manquantes, valeurs invalides, types incorrects. Les erreurs courantes sur Shopify incluent : prix avec symbole monétaire, disponibilité mal formatée (ex. "InStock" au lieu de l'URL complète), ou absence de @context.
Pour tester, copiez le code JSON-LD généré et collez-le dans l'outil. Vérifiez que les propriétés Offer et AggregateRating sont bien reconnues et que les valeurs sont dynamiques (pas de texte statique). Si vous utilisez des variantes, testez avec une variante spécifique pour vous assurer que l'URL et le prix sont corrects. Une fois validé, surveillez la Search Console pour confirmer que Google indexe correctement les données structurées.
Erreurs fréquentes et solutions
Plusieurs erreurs reviennent souvent lors de l'implémentation du Schema Product sur Shopify. Premièrement, l'oubli de la propriété offers : certains thèmes n'incluent que le nom et la description, ce qui empêche l'affichage enrichi du prix. Solution : ajouter systématiquement le bloc offers avec price et availability. Deuxièmement, l'utilisation de prix formatés avec symbole (ex. "un montant selon le prestataire") au lieu d'un nombre décimal. Solution : utiliser le filtre money_without_currency et remplacer la virgule par un point.
Troisièmement, l'absence de gestion des variantes : si le produit a plusieurs variantes, un seul objet Offer ne suffit pas. Solution : boucler sur les variantes. Quatrièmement, l'inclusion d'AggregateRating sans avis réels : Google peut pénaliser les notes fictives. Solution : conditionner l'affichage avec {% if product.metafields.product_reviews.count > 0 %}. Enfin, l'oubli de la balise <script type="application/ld+json"> : le JSON-LD doit être entouré de cette balise, sinon il n'est pas interprété.
Impact SEO et bonnes pratiques supplémentaires
Le Schema Product avec Offer et AggregateRating améliore le taux de clic (CTR) de 10 à 30% selon les études sectorielles, car les extraits enrichis attirent l'œil. Google utilise également ces données pour alimenter les fiches produit dans Google Shopping (via l'option gratuite), ce qui peut générer du trafic sans budget publicitaire. Pour maximiser l'impact, il est conseillé d'ajouter les propriétés review (avis individuels) en complément d'AggregateRating, et productID (gtin, mpn) pour les produits identifiés.
Autre bonne pratique : inclure le Schema Product sur toutes les pages produits, y compris celles en rupture de stock (avec availability OutOfStock), car cela informe l'utilisateur et peut générer des visites pour des précommandes. Enfin, surveillez régulièrement la Search Console pour détecter d'éventuelles erreurs après une mise à jour de thème ou d'application.
Outils et applications pour faciliter l'implémentation
Pour les utilisateurs qui ne souhaitent pas coder manuellement, plusieurs applications Shopify permettent de gérer les données structurées. Parmi elles : JSON-LD for SEO, Smart SEO, SEO Manager ou Plug in SEO. Ces applications génèrent automatiquement le Schema Product en fonction des données du produit. Elles offrent souvent des options pour inclure Offer et AggregateRating, mais il faut vérifier que la version gratuite les prend en charge.
Si vous préférez une approche manuelle, vous pouvez utiliser des générateurs en ligne comme le Schema Markup Generator de Merkle ou le Google Structured Data Markup Helper. Ces outils produisent un JSON-LD que vous pouvez ensuite adapter avec les variables Liquid de Shopify. Dans tous les cas, testez toujours le résultat final avec l'outil de validation.
| Propriété | Type | Obligatoire | Exemple Shopify |
|---|---|---|---|
| name | Text | Oui | {{ product.title | escape }} |
| description | Text | Oui | {{ product.description | strip_html | escape }} |
| sku | Text | Oui | {{ product.sku }} |
| brand | Brand | Oui | {"@type":"Brand","name":"{{ product.vendor | escape }}"} |
| offers | Offer | Oui | Voir tableau Offer |
| image | URL | Recommandé | {{ product.featured_image | img_url: 'grande' }} |
| url | URL | Recommandé | {{ shop.url }}{{ product.url }} |
| aggregateRating | AggregateRating | Recommandé | Voir tableau AggregateRating |
| gtin | Text | Recommandé | {{ product.barcode }} |
| Propriété | Type | Description | Exemple Liquid |
|---|---|---|---|
| @type | Text | Toujours 'Offer' | "Offer" |
| price | Number | Prix sans symbole, point décimal | {{ product.price | money_without_currency | replace: ',', '.' }} |
| priceCurrency | Text | Code ISO 4217 (EUR, USD) | "EUR" |
| availability | URL | URL Schema.org (InStock, OutOfStock, PreOrder) | "https://schema.org/InStock" |
| sku | Text | SKU de la variante | {{ variant.sku }} |
| url | URL | Lien direct vers la variante | {{ shop.url }}{{ variant.url }} |
| Application | Fonctionnalités clés | Version gratuite | Gère Offer et AggregateRating |
|---|---|---|---|
| JSON-LD for SEO | Génération automatique, support variantes | Oui (limité) | Oui |
| Smart SEO | Balisage complet, meta tags, sitemap | Oui (limité) | Oui |
| SEO Manager | Données structurées, analyse SEO | Oui (essai 7 jours) | Oui |
| Plug in SEO | Audit SEO, corrections automatiques | Oui (limité) | Oui |
Plan d'action en 30 jours
- Identifier le thème Shopify et localiser le fichier product.liquid
- Vérifier si une application d'avis est installée (Product Reviews, Yotpo, etc.)
- Récupérer les métadonnées des avis (ratingValue, reviewCount)
- Créer un backup du fichier product.liquid
- Rédiger le bloc JSON-LD avec les propriétés obligatoires et Offer
- Ajouter la boucle Liquid pour les variantes si nécessaire
- Intégrer aggregateRating avec condition sur le nombre d'avis
- Tester le code sur une page produit en brouillon
- Valider le JSON-LD avec l'outil Rich Results Test
- Corriger les erreurs : prix mal formaté, disponibilité incorrecte, variantes manquantes
- Tester sur plusieurs produits (simple, variantes, rupture de stock)
- Vérifier l'affichage dans Google Search Console (rapport d'enrichissement)
- Déployer le fichier product.liquid modifié en production
- Surveiller les erreurs dans Search Console pendant 7 jours
- Analyser l'évolution du CTR via Google Search Console (comparaison avant/après)
- Planifier une revue mensuelle des données structurées
Checklist
- Vérifier que le thème Shopify utilise le fichier product.liquid pour l'injection JSON-LD
- Ajouter la balise <script type="application/ld+json"> dans product.liquid
- Inclure les propriétés obligatoires : name, description, sku, brand, offers
- Pour offers : utiliser price sans symbole, priceCurrency en code ISO, availability en URL Schema.org
- Gérer les variantes avec une boucle Liquid et un tableau d'offres
- Intégrer aggregateRating uniquement si des avis existent (condition Liquid)
- Utiliser les métadonnées de l'application d'avis pour ratingValue et reviewCount
- Valider le JSON-LD avec l'outil Rich Results Test de Google
- Tester avec un produit à variantes pour vérifier les URLs et prix
- Surveiller la Search Console pour les erreurs de données structurées
- Mettre à jour le balisage après chaque modification de thème ou d'application
- Ajouter les propriétés recommandées : image, url, gtin, mpn
Questions fréquentes
Qu'est-ce que le Schema Product sur Shopify ?
Le Schema Product est un code JSON-LD ajouté aux pages produits de Shopify pour fournir aux moteurs de recherche des informations structurées : nom, prix, disponibilité, avis. Cela permet d'afficher des extraits enrichis dans les résultats de recherche, améliorant le taux de clic.
Pourquoi inclure Offer et AggregateRating dans le Schema Product ?
Offer permet d'afficher le prix et la disponibilité directement dans la SERP, ce qui attire l'attention. AggregateRating affiche la note moyenne et le nombre d'avis, renforçant la confiance. Ces deux propriétés augmentent significativement le CTR et le trafic organique.
Comment ajouter le JSON-LD dans Shopify sans coder ?
Vous pouvez utiliser des applications Shopify comme JSON-LD for SEO, Smart SEO ou SEO Manager. Elles génèrent automatiquement le balisage à partir des données produit. Assurez-vous que l'application supporte les variantes et les avis.
Que faire si mon produit a des variantes (taille, couleur) ?
Vous devez créer un tableau d'offres (offers) avec une entrée pour chaque variante. Utilisez une boucle Liquid sur product.variants et incluez price, availability, sku et url pour chaque variante. Testez avec l'outil de validation.
Comment récupérer les données d'avis pour AggregateRating ?
Les applications d'avis stockent les notes dans des métadonnées Shopify. Par exemple, avec l'application Product Reviews, utilisez {{ product.metafields.product_reviews.rating }} et {{ product.metafields.product_reviews.count }}. Consultez la documentation de votre application pour les noms exacts.
Quels sont les points de vigilance ?
Les erreurs fréquentes incluent : prix avec symbole monétaire, disponibilité mal formatée (ex. 'InStock' au lieu de l'URL), absence de gestion des variantes, et inclusion d'AggregateRating sans avis réels. Validez toujours avec l'outil de test.
Le Schema Product affecte-t-il le référencement local ?
Indirectement, oui. Un meilleur CTR et une visibilité accrue dans les SERP peuvent améliorer le positionnement global. Pour le SEO local, combinez le Schema Product avec le balisage LocalBusiness si vous avez un magasin physique.
Visibilité SEO & IA
Votre boutique est-elle lisible par Google et les IA ?
On vérifie votre SEO technique, vos données structurées et votre présence dans les moteurs IA, puis on priorise les gains les plus rentables.
- Audit schema + SEO technique
- Visibilité ChatGPT, Perplexity, Gemini
- Plan d'action priorisé
Sources : Google — données structurées · Schema.org · Google Search Central.