Prix soldé en données structurées : balisez vos promos

Dernière mise à jour :

Pour afficher une promotion correctement dans les données structurées Product, mettez le prix payé aujourd'hui dans offers.price, ajoutez le prix d'origine comme prix barré, et donnez à l'offre une date de début et de fin. Les moteurs de recherche lisent alors la remise comme un fait, au lieu de la deviner d'après le design de la page. C'est d'autant plus important pendant les gros temps forts comme le Black Friday.

Comment fonctionne le balisage d'un prix soldé

La documentation de Google sur les fiches marchand décrit le principe :

  • Le prix actif reste dans offers.price et offers.priceCurrency. Ne lui donnez pas de priceType.
  • Le prix d'origine va dans offers.priceSpecification, sous la forme d'un UnitPriceSpecification dont le priceType vaut https://schema.org/StrikethroughPrice (seule valeur acceptée à cet endroit).
  • Quand ce second prix est présent, le prix actif est traité comme un prix soldé.
  • Dates : validFrom et validThrough donnent la date et l'heure de début et de fin du prix. Vous pouvez utiliser priceValidUntil à la place de validThrough pour la fin, mais choisissez l'un ou l'autre. Toutes les dates sont au format ISO 8601, avec fuseau horaire.

Exemple

Une chemise passée de 79 € à 59 € pendant une semaine :

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Chemise en lin, bleu ciel",
  "image": "https://votre-boutique.fr/img/chemise-lin-face.jpg",
  "offers": {
    "@type": "Offer",
    "url": "https://votre-boutique.fr/produits/chemise-lin-bleu-ciel",
    "price": "59.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-11-23T00:00:00+01:00",
    "priceValidUntil": "2026-11-30T23:59:59+01:00",
    "priceSpecification": {
      "@type": "UnitPriceSpecification",
      "priceType": "https://schema.org/StrikethroughPrice",
      "price": "79.00",
      "priceCurrency": "EUR"
    }
  }
}
</script>

Les erreurs fréquentes

  1. Prix inversés. Le prix d'origine se retrouve dans offers.price et le prix promo nulle part : le balisage contredit la page.
  2. Balisage décalé par rapport à la page. La page affiche la remise mais le JSON-LD est resté en cache d'avant la promo, ou l'inverse une fois l'opération terminée. Générez les deux à partir des mêmes données produit.
  3. Pas de date de fin. Sans validThrough ni priceValidUntil, rien dans le balisage n'indique que l'offre est temporaire.
  4. Les deux propriétés de fin en même temps, avec des dates différentes.
  5. Un prix barré que personne n'a jamais payé. Dans l'Union européenne, toute annonce de réduction de prix doit indiquer le prix antérieur, c'est-à-dire le prix le plus bas pratiqué dans les 30 jours précédant la réduction. Votre prix barré doit suivre la même règle.

Gardez votre flux cohérent

Si vous envoyez aussi vos produits à Google Merchant Center, le flux a ses propres attributs promo (sale_price et sale_price_effective_date). Vérifiez que le flux, la page et le balisage affichent les mêmes prix aux mêmes dates, pour qu'un acheteur ne tombe jamais sur une offre qui ne correspond plus à l'annonce.

Le balisage promo s'appuie sur un bloc de données structurées Product complet. Pour le reste de votre préparation, consultez la checklist Black Friday.

Comment Averifly vous aide

Les règles catalogue d'Averifly vérifient que vos fiches produit contiennent des données structurées Product avec prix, devise et disponibilité, et qu'un prix est visible sur la page. Lancez un scan gratuit avant le début de vos promotions, et consultez nos règles pour la liste complète des contrôles.

Questions fréquentes

Comment indiquer un prix promotionnel dans les données structurées Product ?

Laissez le prix réduit dans offers.price et ajoutez le prix d'origine comme second prix dans priceSpecification, avec priceType égal à https://schema.org/StrikethroughPrice. Google considère alors le prix actif comme un prix soldé.

Faut-il utiliser priceValidUntil ou validThrough pour la fin d'une promotion ?

L'un ou l'autre, pas les deux. validFrom et validThrough indiquent la date et l'heure de début et de fin du prix ; priceValidUntil indique la date après laquelle le prix n'est plus proposé. Toutes ces dates sont au format ISO 8601.

Faut-il retirer le balisage promo à la fin de l'opération ?

Oui. À la fin de la promotion, la page et le balisage doivent revenir au prix normal. Une date de fin aide, mais votre plateforme doit aussi cesser d'afficher l'ancien prix réduit.

Autres guides Catalogue