Titre et prix visibles identiques au markup structuré. Le moindre écart déclenche un déclassement agentique.

Pourquoi ce signal compte

Les agents IA et Google ont la même règle : si le JSON-LD ne reflète pas le contenu visible de la page, le signal est jugé manipulatoire et la fiche est déclassée. Cette règle existe depuis 2018 côté Google. Elle s’est durcie depuis 2024 côté agents IA, qui croisent systématiquement le markup avec le DOM rendu pour détecter les fraudes (prix gonflé dans le JSON-LD, note moyenne maquillée, FAQ cachée). Pour les marchands honnêtes, le problème n’est pas la fraude mais la dérive technique : une app change le prix affiché côté front, le JSON-LD reste figé, l’agent voit deux valeurs différentes et préfère traiter la fiche comme suspecte.

Ce que nous auditons

  • Titre H1 visible identique au name du JSON-LD Product (pas de suffixe SEO uniquement dans le JSON-LD).
  • Prix affiché HTML strictement identique au offers.price (mêmes décimales, même devise).
  • availability JSON-LD synchronisée avec le bouton “Ajouter au panier” ou “Rupture de stock” du front.
  • Note moyenne et nombre d’avis du widget visible identiques à aggregateRating.ratingValue et reviewCount.
  • Contenu de la FAQ visible identique au texte JSON-LD FAQPage (mot pour mot ou très proche).

Erreurs courantes que nous voyons sur Shopify

  • App promotions qui applique une remise côté front mais ne met pas à jour le JSON-LD (le prix barré reste le prix de référence).
  • Bundle ou produit personnalisé dont le prix change selon les options sélectionnées par l’utilisateur, mais le JSON-LD reste calé sur la première variante.
  • Stock affiché “En rupture” en HTML alors que availability JSON-LD pointe encore sur InStock.
  • AggregateRating posée par le thème (faux 5,0) en plus de l’AggregateRating posée par l’app reviews (vraie 4,6) : l’agent voit deux valeurs et déclasse.
  • FAQ traduite en français côté front mais restée en anglais dans le JSON-LD après une migration locale.

Comment corriger

Vous éliminez tous les blocs JSON-LD redondants. Un seul snippet par type (product-jsonld.liquid, faqpage-jsonld.liquid, breadcrumb-jsonld.liquid) sourcé sur les mêmes variables Liquid que le rendu visible. Pour les apps qui modifient le DOM côté client (promotions dynamiques, bundles, variantes), vous mettez à jour le JSON-LD via JavaScript dans le même hook que la mise à jour visuelle. Vous testez chaque variante : produit simple, produit avec variante, produit en promotion, produit en rupture. Vous validez avec Rich Results Google ET avec une lecture humaine. La parité est le signal le plus difficile à tenir dans le temps : sans contrôle automatisé (test E2E ou cron de cohérence), elle dérive en quelques semaines à mesure que les apps évoluent.

Auditer ma boutique

L'audit est gratuit. Réponse sous 48 h ouvrées. Pas d'engagement.