Parité texte / JSON-LD, la cohérence qui décide si les agents IA vous font confiance
Cohérence stricte entre le titre, le prix, la disponibilité visibles dans le HTML et les mêmes champs en JSON-LD. La moindre divergence déclenche un déclassement agentique.
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
namedu JSON-LDProduct(pas de suffixe SEO uniquement dans le JSON-LD). - Prix affiché HTML strictement identique au
offers.price(mêmes décimales, même devise). availabilityJSON-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.ratingValueetreviewCount. - 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
availabilityJSON-LD pointe encore surInStock. - 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.