Product pages: price, availability, shipping and returns
Answer the questions every shopper has before buying, on the page and in Product structured data.
The problem
Product markup has no offer (price, currency, availability), or shipping and returns information is hard to find.
How to spot it
- Product pages do not show price or stock clearly.
- No shipping or returns links on product pages or in the footer.
Why it matters
Price, delivery cost and time, and the returns policy are among the first things shoppers check. Unclear terms are a leading reason for abandoned purchases, and Product markup with offers makes this information machine-readable.
What happens if you leave it
Shoppers leave to look elsewhere, or abandon the checkout when costs appear late.
How to fix it
-
On each product page show the price (including or clearly excluding tax), availability, delivery options and costs, and the returns window.
-
Link to full Shipping and Returns pages from product pages and the footer.
-
Add Product structured data with an offer that matches the page exactly:
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Product", "name": "Stainless steel kettle 1.7L", "image": "https://www.example.com/images/kettle.jpg", "offers": { "@type": "Offer", "price": "2499.00", "priceCurrency": "BDT", "availability": "https://schema.org/InStock", "url": "https://www.example.com/products/kettle" } } </script> -
Keep markup in sync with the page when prices or stock change, ideally generated from the same data.
Platform-specific notes
- Shopify / WooCommerce: most themes output Product markup; check that offers include price and currency, and add shipping and returns pages under the store's policy settings.
Common mistakes
- Markup prices that differ from the visible price.
- Hiding delivery costs until the last checkout step.
How to check the fix worked
Test a product URL with Google's Rich Results Test, then buy a test product to confirm costs are clear at every step. Re-run the audit.