OfferShippingDetails structured data

The Citead team, updated

In short. OfferShippingDetails connects shipping costs, destinations, and delivery times to an Offer through shippingDetails.

Definition: OfferShippingDetails is a Schema.org structured data type that describes shipping destinations, costs, and delivery times for a product offer. It connects to an Offer through the shippingDetails property.

Key facts

  • As of 17 October 2026, Google's merchant listing documentation requires deliveryTime, shippingDestination, and shippingRate for the shipping details enhancement.
  • Google's merchant shipping policy documentation recommends defining standard business shipping terms under Organization; product-specific overrides use OfferShippingDetails under Offer.
  • The Schema.org type definition allows multiple shipping detail objects to describe different destinations or different combinations of cost and delivery time.

How are shipping costs and destinations described?

An Offer describes the terms under which a product is sold. Its shipping details associate a destination with a charge. In Google's shipping property requirements, shippingRate contains a MonetaryAmount: a monetary value with a currency. Google requires value or maxValue, together with currency. The currency matches the offer's currency. Free shipping uses a value of 0.

The destination uses DefinedRegion, a type identifying a geographic area. Its required addressCountry contains a two-letter country code. Without a region or postal code, the destination covers the whole country. Google documents country-specific restrictions for narrower regions and postal codes.

The Schema.org definition gives separate destination examples for Alaska and Hawaii, the continental United States, and France. It also describes offering cheaper, slower delivery alongside a more expensive, faster service. Separate shipping detail objects keep each destination, rate, and delivery option associated.

How are handling and transit times represented?

Google's delivery time requirements define ShippingDeliveryTime as the interval between receiving an order and the customer receiving the goods. handlingTime describes the interval before goods leave the warehouse; transitTime describes the subsequent delivery interval.

Each interval uses QuantitativeValue, an object expressing a quantity. Google requires minimum and maximum non-negative whole numbers of days, with unitCode set to DAY or d.

This JSON fragment reproduces the shipping values in Google's example: USD 3.49 for the United States, handling of 0 to 1 days, and transit of 1 to 5 days. It belongs inside the product's existing Offer object and forms part of the full product markup.

{
  "shippingDetails": {
    "@type": "OfferShippingDetails",
    "shippingRate": {
      "@type": "MonetaryAmount",
      "value": 3.49,
      "currency": "USD"
    },
    "shippingDestination": {
      "@type": "DefinedRegion",
      "addressCountry": "US"
    },
    "deliveryTime": {
      "@type": "ShippingDeliveryTime",
      "handlingTime": {
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 1,
        "unitCode": "DAY"
      },
      "transitTime": {
        "@type": "QuantitativeValue",
        "minValue": 1,
        "maxValue": 5,
        "unitCode": "DAY"
      }
    }
  }
}

Where does this fit in a store's shipping configuration?

Google's merchant shipping policy guide places a standard policy in ShippingService, nested under Organization through hasShippingService. That format supports conditions based on product weight, dimensions, and delivery location. Offer-level shipping policies support a smaller set of properties.

The merchant listing guide places product-level Merchant Center feeds above account settings and page markup when configurations overlap. Merchant Center or Search Console settings take precedence over product-level markup, which takes precedence over organization-level markup. The same guide recommends the Rich Results Test for validation and URL Inspection to check how Google sees the deployed page.

FAQ

How do you mark free shipping?

Set shippingRate.value to 0 and provide the currency, as specified in Google's shipping requirements. Include the destination and delivery time required for the enhancement.

Can you describe several delivery options?

Yes. The Schema.org definition supports multiple objects with different rates and times, including slower and faster services for the same destination.

Where should you put a policy that applies across the store?

Google's merchant shipping policy guide places standard business policies under Organization using hasShippingService. Use offer-level details for product-specific overrides.

Sources

  1. Google Search Central, "Merchant listing (Product, Offer) structured data", updated 8 September 2026
  2. Google Search Central, "Merchant shipping policy (ShippingService) structured data", updated 8 September 2026
  3. Schema.org, "OfferShippingDetails", accessed 17 October 2026

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark