We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.
Sale or promo collection pages with ItemList, delivery/returns policies, FAQs, and breadcrumb context.
Declares the page as a sale or category landing.
Structures the sale items list with order and IDs.
Clarifies delivery regions, handling/transit times, and shipping rates to reduce warnings.
Defines returns window, method, and fees for sale items.
Addresses sale terms, shipping, returns, and exclusions.
Provides navigation context for the sale page.
Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).
Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.
[
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"@id": "https://www.example.com/sale/winter-gear#collection",
"name": "Winter Gear Sale",
"description": "Up to 40% off winter jackets, base layers, and boots.",
"url": "https://www.example.com/sale/winter-gear",
"mainEntity": {
"@type": "ItemList",
"@id": "https://www.example.com/sale/winter-gear#list"
}
},
{
"@context": "https://schema.org",
"@type": "ItemList",
"@id": "https://www.example.com/sale/winter-gear#list",
"itemListOrder": "https://schema.org/ItemListOrderDescending",
"numberOfItems": 2,
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Alpine Down Parka",
"item": { "@id": "https://www.example.com/products/alpine-parka#product" },
"url": "https://www.example.com/products/alpine-parka"
},
{
"@type": "ListItem",
"position": 2,
"name": "Summit Hybrid Jacket",
"item": { "@id": "https://www.example.com/products/summit-hybrid#product" },
"url": "https://www.example.com/products/summit-hybrid"
}
]
},
{
"@context": "https://schema.org",
"@type": "OfferShippingDetails",
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "d"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 2,
"maxValue": 5,
"unitCode": "d"
}
},
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0.00",
"currency": "USD"
}
},
{
"@context": "https://schema.org",
"@type": "MerchantReturnPolicy",
"@id": "https://www.example.com/policies/returns#winter-sale",
"name": "Winter sale returns",
"url": "https://www.example.com/policies/returns",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn",
"applicableCountry": "US"
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Are sale items eligible for free shipping?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Ground shipping is free in the US on sale items. Expedited options are available at checkout."
}
},
{
"@type": "Question",
"name": "Do sale items follow the same return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. You have 30 days from delivery to return sale items in new condition."
}
},
{
"@type": "Question",
"name": "Are there exclusions?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Final sale items will be labeled on the product page. Most other items are eligible for returns."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Sale", "item": "https://www.example.com/sale" },
{ "@type": "ListItem", "position": 3, "name": "Winter Gear", "item": "https://www.example.com/sale/winter-gear" }
]
}
]Optional. Include Product objects for featured items if present on the page. Keep IDs and prices in sync with the visible listings.
Add multiple OfferShippingDetails entries per region and set MerchantReturnPolicy applicableCountry accordingly. Align with what’s shown on the page.