ShippingRateSettings
ShippingRateSettings publishes a named, reusable shipping-rate specification. Instead of embedding a MonetaryAmount or DeliveryChargeSpecification under every Offer, a merchant publishes one ShippingRateSettings block per carrier / service / region combination and references it by label from each Offer's OfferShippingDetails.
Full example of schema.org/ShippingRateSettings json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ShippingRateSettings",
"@id": "https://xootee.example/shipping/us-standard",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 4.99,
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
},
"freeShippingThreshold": {
"@type": "DeliveryChargeSpecification",
"price": 0,
"priceCurrency": "USD",
"eligibleTransactionVolume": {
"@type": "PriceSpecification",
"minPrice": 50.00,
"priceCurrency": "USD"
}
},
"isUnlabelledFallback": true
}
</script>Direct properties (7)
shippingRate: flat MonetaryAmount fee, or a nested ShippingRateSettings (for tiered rates).freeShippingThreshold: a DeliveryChargeSpecification or MonetaryAmount; the order subtotal at or above which shipping is free.shippingDestination: one or more DefinedRegion targets.doesNotShip: Boolean flag (destination excluded).orderPercentage: shipping charged as a fraction of order value (0.10 = 10%).weightPercentage: shipping charged proportional to weight.isUnlabelledFallback: Boolean; this block is the fallback when no other ShippingRateSettings matches.
Free-shipping threshold
freeShippingThreshold is how Google reads "free shipping over $50". Supply a DeliveryChargeSpecification with eligibleTransactionVolume.minPrice (the subtotal gate) and a zero shippingRate. Order-percentage and weight-percentage rates combine additively inside a single ShippingRateSettings block.
Minimal valid version
The smallest markup that still produces a valid ShippingRateSettings entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ShippingRateSettings",
"shippingRate": { "@type": "MonetaryAmount", "value": 4.99, "currency": "USD" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" }
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsMerchant listing shippingDetails (indirect)
Common ShippingRateSettings mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
freeShippingThreshold as a number
Wrong"freeShippingThreshold": 50RightDeliveryChargeSpecification (or MonetaryAmount) objectGoogle expects the structured shape; a scalar is discarded.
- 02
Multiple fallback blocks
WrongTwo ShippingRateSettings both with isUnlabelledFallback: trueRightExactly one fallback per region + service combinationAmbiguity causes Google to pick one arbitrarily or suppress all of them.
- 03
orderPercentage as a percentage number
Wrong"orderPercentage": 10Right"orderPercentage": 0.10Fraction, not percent. 10 means 1000%.
Schema properties in this example
About the example data
XooTee merchandise shop: a single reusable US standard shipping rate — $4.99 flat, free over $50, 10% of order value above $500.
Comments
Loading comments...