Aller au contenu

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.

Dans la Search Console :Champ "shippingDetails" manquant (dans "offers")

Par Bruno Amorim · ·

Lire en : English · Português (Brasil) · Español · Deutsch · Italiano · Polski · 日本語 · 한국어

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 ShippingService imbriqué sous Organization avec hasShippingService. Google le recommande pour une politique standard.
  • Balisage de l'offre, sur chaque produit : shippingDetails dans offers. 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.currency doit être la même devise que le priceCurrency de l'offre.
  • Pour la livraison gratuite, mettez shippingRate.value à 0.
  • handlingTime va de la commande à l'expédition. transitTime va de l'expédition à la livraison. Chacun a besoin de minValue, maxValue et unitCode DAY.
  • Un seul tarif par OfferShippingDetails. Pour la livraison standard et express, ajoutez deux entrées shippingDetails.
  • addressCountry est un code à deux lettres, comme FR ou BE.

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é

  1. Passez une adresse de produit dans le test des résultats enrichis. Sous Fiches de marchand, l'avertissement sur la livraison doit avoir disparu.
  2. 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.

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 gratuit

Gratuit 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

Autres guides (en anglais)