Champ « shippingDetails » manquant (dans « offers ») : facultatif, et comment l'ajouter
La documentation des fiches de marchand classe shippingDetails comme recommandé, pas obligatoire. Le message apparaît souvent à côté de Champ "hasMerchantReturnPolicy" manquant, car les deux viennent du même manque : un balisage produit sans livraison ni retours.
Choisissez où Google lit votre livraison
Google lit la livraison à plusieurs endroits. Quand ils ne sont pas d'accord, il suit cet ordre, du plus fort au plus faible : les flux produits de Merchant Center, la Content API for Shopping, les paramètres de Merchant Center ou de la Search Console, le balisage produit, et en dernier, le balisage Organization.
- Dans la Search Console, sans code : ouvrez Paramètres > Achats > Livraison et retours. Dans l'onglet Livraison, cliquez sur Ajouter des conditions de livraison. Choisissez un pays, les délais de livraison minimum et maximum, et les frais. Google approuve automatiquement les informations de livraison. Il faut être propriétaire ou utilisateur avec accès complet de la propriété.
- Balisage Organization, une fois pour toute la boutique : un
ShippingServiceimbriqué sousOrganizationavechasShippingService. Google le recommande pour une politique standard. - Balisage de l'offre, sur chaque produit :
shippingDetailsdansoffers. Utilisez-le pour les produits livrés autrement, ou pour faire disparaître cet avertissement.
Google ne dit pas si une politique définie dans la Search Console ou au niveau Organization fait disparaître cet avertissement. Des marchands sur le forum de Shopify disent qu'il peut rester. Pour le faire disparaître, ajoutez shippingDetails à l'offre.
La correction en JSON-LD
Ajoutez un OfferShippingDetails à l'offre. Google y exige trois parties : shippingRate, shippingDestination et deliveryTime.
Avant :
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Sac week-end en toile",
"image": "https://example.com/photos/sac-week-end.jpg",
"offers": {
"@type": "Offer",
"price": 89,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
}
}
</script>Après : livraison à 4,95 € en France, 1 jour de préparation, 2 à 5 jours de transport.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Sac week-end en toile",
"image": "https://example.com/photos/sac-week-end.jpg",
"offers": {
"@type": "Offer",
"price": 89,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 4.95,
"currency": "EUR"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "FR"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 2,
"maxValue": 5,
"unitCode": "DAY"
}
}
}
}
}
</script>shippingRate.currencydoit être la même devise que lepriceCurrencyde l'offre.- Pour la livraison gratuite, mettez
shippingRate.valueà0. handlingTimeva de la commande à l'expédition.transitTimeva de l'expédition à la livraison. Chacun a besoin deminValue,maxValueetunitCodeDAY.- Un seul tarif par
OfferShippingDetails. Pour la livraison standard et express, ajoutez deux entréesshippingDetails. addressCountryest un code à deux lettres, commeFRouBE.
Vous décrivez déjà votre politique de livraison une fois, avec un balisage Organization sur une autre page ? L'offre peut y renvoyer par son @id au lieu de la répéter.
Une offre qui renvoie à une politique de livraison commune à la boutique :
{
"@type": "Offer",
"price": 89,
"priceCurrency": "EUR",
"shippingDetails": {
"@type": "OfferShippingDetails",
"hasShippingService": {
"@id": "https://example.com/livraison#politique"
}
}
}Où placer la correction
Shopify
Dawn écrit le balisage produit avec {{ product | structured_data }} vers la fin de sections/main-product.liquid. Horizon le fait en haut de sections/product-information.liquid. Ce filtre écrit le produit, la marque et les offres, sans livraison. Liquid ne peut pas lire vos zones de livraison : les tarifs s'ajoutent donc à la main. Remplacez cette ligne par votre propre bloc JSON-LD, ou utilisez une application de données structurées. La voie sans code, ce sont les paramètres Livraison et retours de la Search Console. Voir aussi Boutique Shopify absente de Google.
WooCommerce
Le balisage produit de WooCommerce n'a pas d'informations de livraison. Rank Math documente un filtre de code, rank_math/snippet/rich_snippet_product_entity, qui ajoute shippingDetails à chaque offre depuis le fichier rank-math.php de votre thème.
Wix
Allez dans SEO & GEO > Tools and settings > SEO Settings > Products, puis cliquez sur Edit à côté de Structured data markup. Cliquez sur Convert to custom markup sur le préréglage Product, puis ajoutez shippingDetails à son offre. Wix autorise 5 balisages par type de page, préréglage compris.
Squarespace
Squarespace écrit le balisage Product pour vous, et son aide dit qu'on ne peut ni le modifier ni le supprimer. Utilisez plutôt les paramètres Livraison et retours de la Search Console.
BigCommerce
Dans le thème Cornerstone, le balisage produit se trouve dans templates/components/products/schema.html. Son bloc offers n'a pas de livraison. Ajoutez-y shippingDetails et envoyez le thème.
Vérifiez que cela a marché
- Passez une adresse de produit dans le test des résultats enrichis. Sous Fiches de marchand, l'avertissement sur la livraison doit avoir disparu.
- Dans la Search Console, ouvrez Achats > Fiches de marchand, cliquez sur Champ "shippingDetails" manquant (dans "offers"), puis sur Valider la correction.
Avant la livraison, l'indexation
Un produit n'affiche ses frais de livraison dans Google que si sa page est indexée. CrawlCoach vous montre quelles pages produit Google a laissées de côté, et la correction pour chacune.
Questions fréquentes
Le champ shippingDetails est-il facultatif ?
Oui. Google classe shippingDetails comme recommandé, et la Search Console l'affiche comme un problème non critique. Vos produits peuvent s'afficher en fiche de marchand sans lui.
J'ai configuré la livraison dans Merchant Center. Pourquoi l'avertissement reste-t-il ?
Le rapport sur les fiches de marchand vérifie le balisage de la page. La documentation Google ne dit pas qu'une politique de Merchant Center ou de la Search Console fait disparaître l'avertissement. Google utilise quand même ces paramètres pour vos fiches, et ils passent avant le balisage de la page.
Faut-il shippingDetails sur chaque produit ?
Non. Pour une politique commune à toute la boutique, Google recommande le balisage Organization ou le paramètre de la Search Console. Ajoutez shippingDetails aux offres livrées autrement, ou là où vous voulez faire disparaître l'avertissement.
Sources
Vérifié le 8 octobre 2026. Google modifie parfois la Search Console et son aide. Si votre écran ne correspond pas, consultez la source.
- Google Search Central : Données structurées spécifiques à une fiche de marchand (Product, Offer)
- Google Search Central : Données structurées pour les conditions de livraison du marchand
- Aide Search Console : Paramètres de livraison et de retour
- Aide Search Console : Présentation des rapports sur les résultats enrichis
- Référence Liquid de Shopify : filtre structured_data (en anglais)
- Thème Dawn de Shopify : section du produit (en anglais)
- Rank Math : ajouter les conditions de retour et de livraison dans WooCommerce (en anglais)
- Aide Wix : personnaliser vos paramètres SEO (en anglais)
- Aide Squarespace : ce que Squarespace fait pour le SEO (en anglais)
Découvrez quelles pages de votre site manquent sur Google
Connectez-vous avec Google. CrawlCoach vérifie gratuitement jusqu'à 500 pages et vous montre la correction pour chaque problème.
Obtenir mon rapport gratuitGratuit jusqu'à 500 pages. Sans carte bancaire. Connectez-vous avec le compte Google que vous utilisez pour la Search Console.
L'application et les rapports CrawlCoach sont en anglais.
Autres messages de données structurées
- Champ "hasMerchantReturnPolicy" manquant (dans "offers")Google veut vos conditions de retour, et votre balisage produit ne les donne pas. C'est non critique : vos produits restent éligibles. Les ajouter permet à Google d'afficher votre délai et vos frais de retour.
- Champ "image" manquantUn name, une image ou un price manquant est critique : ces produits ne s'affichent pas en fiche de marchand. Une description, shippingDetails, hasMerchantReturnPolicy ou un GTIN manquant peut attendre.
- Aucun identifiant global (code GTIN, référence fabricant ou ISBN) n'a été fourniGoogle veut un identifiant produit identique partout où le produit est vendu, comme le numéro du code-barres. C'est non critique : ajoutez le GTIN si vos produits en ont un, sinon laissez l'avertissement.