We use cookies to improve your experience, analyze site traffic, and personalize content. You can accept all cookies or choose which categories to allow. Learn more
Product Schema 2026: hasMerchantReturnPolicy and shippingDetails Are Now Required | Ordiko
Guide
Product Schema 2026: hasMerchantReturnPolicy and shippingDetails Are Now Required
Google's 2026 Product rich result requirements added hasMerchantReturnPolicy and shippingDetails as mandatory fields. Here's how to implement them correctly without losing rich snippet eligibility.
PT45M
TL;DR. Google's 2026 Product rich result requirements added hasMerchantReturnPolicy and shippingDetails as fields needed for rich snippet eligibility. Products without them lose price, availability, and review stars in search results. Ordiko emits both by default once you configure store-level policies; competitors require theme/plugin work.
What changed in 2026
Through 2024 and 2025, Google rolled out new requirements for Product structured data. The 2026 baseline:
Field
Required for rich result?
Effect if missing
name, image, description
Yes (long-standing)
Result not eligible
offers.price, priceCurrency
Yes (long-standing)
Price snippet hidden
FAQ
When did hasMerchantReturnPolicy become required?
Google announced the requirement in 2024 with enforcement rolling out through 2025 and early 2026. As of 2026, missing hasMerchantReturnPolicy on Product schema results in lost rich-result eligibility β your product no longer shows price, availability, or review stars in SERPs.
Can I emit a single policy for the whole store?
Yes. Define hasMerchantReturnPolicy once on the Organization schema with a stable @id, then reference it from each Product offer's hasMerchantReturnPolicy via @id. This is the cleanest pattern and what Ordiko emits by default.
What if my products have different shipping rules?
Override per product. Most stores have 90%+ of products on the same policy and 5β10% needing overrides (oversized, hazmat, custom-made). Ordiko supports nullable per-product policy that falls back to store policy.
Does this affect AI search citations?
Yes, indirectly. AI engines (Perplexity, ChatGPT, Claude) parse the same JSON-LD Google does. Complete return and shipping policies improve citability β AI engines prefer pages with comprehensive structured data because they can answer user questions directly.
Emit one shippingDetails per destination region you serve. A US-Canada store ships to two destinations, so two entries.
Reference pattern (recommended)
Defining return policy and shipping per product produces verbose HTML. The cleaner pattern is to define them once on Organization schema with stable @ids and reference them from each Product:
In production: Google Search Console β Enhancements β Products β coverage report.
How Ordiko implements this
Ordiko emits hasMerchantReturnPolicy and shippingDetails on every PDP automatically once you configure:
Settings β SEO β Return Policy (one form, ~5 fields).
Settings β SEO β Shipping Policies (one row per destination).
The resolver in src/lib/seo/return-policy.ts cascades: product override β store policy β none. The renderer emits the reference pattern with stable @ids on Organization.
No theme work. No plugins. No JSON-LD writing.
Common mistakes
Inline duplication of return policy on every product. Validates but produces 10β50KB of redundant JSON per PDP. Use the reference pattern.
Missing `applicableCountry`. This is required. Specify the countries the policy applies to.
Wrong category enum. Use the full URL (https://schema.org/MerchantReturnFiniteReturnWindow), not the short name.
Shipping policies that don't match visible shipping rates. Schema and page content must agree or Google suppresses the rich result.
No shipping policy at all. Even free-shipping stores must emit shippingDetails with a shippingRate.value of 0.
FAQ
When did hasMerchantReturnPolicy become required? Google announced the requirement in 2024 with enforcement rolling out through 2025 and early 2026. As of 2026, missing hasMerchantReturnPolicy on Product schema results in lost rich-result eligibility β your product no longer shows price, availability, or review stars in SERPs.
Can I emit a single policy for the whole store? Yes. Define hasMerchantReturnPolicy once on the Organization schema with a stable @id, then reference it from each Product offer's hasMerchantReturnPolicy via @id. This is the cleanest pattern and what Ordiko emits by default.
What if my products have different shipping rules? Override per product. Most stores have 90%+ of products on the same policy and 5β10% needing overrides (oversized, hazmat, custom-made). Ordiko supports nullable per-product policy that falls back to store policy.
Does this affect AI search citations? Yes, indirectly. AI engines (Perplexity, ChatGPT, Claude) parse the same JSON-LD Google does. Complete return and shipping policies improve citability β AI engines prefer pages with comprehensive structured data because they can answer user questions directly.