Do you tell AI agents what shipping costs and how long delivery takes?
Confirms your structured data declares shipping destinations, rates, and delivery times.
What this signal tests
We check whether your site declares OfferShippingDetails either at the Organization level or per Offer. The required pieces are the destination (country or region), the rate (price and currency), and the delivery time (how long shipping takes). Together these give AI shopping agents enough information to quote a fully landed cost and estimated arrival.
Why it matters for your visibility in AI
Total cost and arrival time are second-order shopping factors that often decide which of two similar products gets recommended. An AI agent comparing your product to a competitor's needs to know shipping to weigh the total cost; without structured shipping data it cannot, and it will usually default to the option that does provide the data. Free text shipping pages do not solve this. AI tools parse free text with low confidence and conservative caching, so even a generous free shipping policy hidden in prose is often missed. A structured shippingDetails block converts that policy from prose into a fact the agent can quote with confidence, which is exactly when your shipping advantages start translating into actual sales.
Pass criteria at a glance
| Criterion | Passes when |
|---|---|
| OfferShippingDetails with destination, rate, deliveryTime. |
How we test it
We look for shippingDetails on your Organization JSON-LD and on Offer blocks on product pages. We confirm the shippingDestination is a DefinedRegion with at least an addressCountry (ISO 3166-1 alpha-2 code), the shippingRate is a MonetaryAmount with value and currency, and deliveryTime is a ShippingDeliveryTime with handling and transit time ranges. All three are required for the signal to pass.
Show technical detection method
Parse shippingDetails on Organization/Offer; assert shippingDestination (DefinedRegion with addressCountry), shippingRate (MonetaryAmount), deliveryTime (ShippingDeliveryTime).
If your site fails: how to fix it
- List the countries or regions you ship to, what each costs, and how long handling plus transit takes. If you ship internationally, include each major destination as its own shippingDetails entry.
- Add the shippingDetails block to your Organization JSON-LD on the homepage. This covers most products by default and is the cleanest place to put policy that applies catalogue-wide.
- For products with different shipping (oversize items, hazmat, drop-shipped from suppliers), add Offer-level shippingDetails on those specific product pages.
- Use the ShippingDeliveryTime substructure with handlingTime and transitTime as QuantitativeValue ranges. Honest minimum and maximum estimates work better than tight single values that you can rarely meet.
- Match the structured data to your visible shipping page. Discrepancies are flagged by validators and reduce AI trust in the markup.
- Validate one URL in Google's Rich Results Test under the Product or Merchant Listing test type.
Quick facts
| Maturity | ESTABLISHED |
|---|---|
| Weight | medium |
| Category | Structured Data |
Primary sources
Related signals
Frequently asked questions
What if I offer free shipping above a certain order value?
Use shippingRate of zero with a freeShippingThreshold field containing the minimum subtotal. The Schema.org spec supports this directly. AI agents will quote shipping accurately based on the cart value at the time of the recommendation, which is often when free-shipping thresholds tip a decision.
How precise do my delivery times need to be?
Honest ranges are better than tight promises. A handlingTime of 1-2 business days and a transitTime of 3-7 business days is fine. Specifying impossibly tight delivery (next day for international, for example) damages your credibility when the AI agent later sees a complaint or return reflecting reality.
Do I need this on every product or only the homepage?
Organization-level shippingDetails on the homepage is enough for uniform catalogues. Add Offer-level overrides only for products that ship differently (oversize, frozen, hazmat). For most retailers, one Organization block plus a handful of product-level exceptions is sufficient.
Run your own scan
Run a free scan and see how your site grades across all 155 AI-readiness signals.