MerchantReturnPolicy Schema Generator
Build Google-ready return policy markup for your whole store, or override it for a single product.
Your details
Your MerchantReturnPolicy markup
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "OnlineStore",
"name": "Harbour & Co",
"url": "https://example.com",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"@id": "https://example.com/policies/refund-policy#return-policy",
"applicableCountry": "US",
"returnPolicyCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn",
"refundType": "https://schema.org/FullRefund",
"returnLabelSource": "https://schema.org/ReturnLabelDownloadAndPrint",
"itemCondition": "https://schema.org/NewCondition",
"merchantReturnLink": "https://example.com/policies/refund-policy"
}
}
</script>Put this on your returns policy page (or wherever your Organization markup lives). You don't need it on every page. If you set return policies in Merchant Center or Search Console, Google uses those instead of this markup.
Store-wide or product-level?
Google reads return policies from two places. Most stores need only the first:
| Level | Where it goes | Use it for |
|---|---|---|
| Organization | hasMerchantReturnPolicy on your Organization or OnlineStore markup | Your standard policy. Put it on one page, such as your returns page. |
| Offer | hasMerchantReturnPolicy inside a product's Offer | Products with different terms, like final-sale items. Supports fewer properties. |
When both exist, Google uses the product-level policy for that product. Settings in Merchant Center or Search Console beat all markup, in this order: product feeds, Content API, Merchant Center or Search Console settings, product markup, then organization markup.
What Google requires
- applicableCountry and returnPolicyCategory are required (or a
merchantReturnLinkon its own). You can list up to 50 countries. - A finite return window also needs
merchantReturnDays, counted from delivery. - returnShippingFeesAmount only goes with
ReturnShippingFees. Free returns and customer-arranged returns must leave it out. The tool handles this for you. - Organization-level policies can add refund type, label source, restocking fees, accepted item condition, separate fees for defective items and a holiday window. Offer-level policies can't.
Adding it to your store
- 01
Shopify
Paste the organization markup into Online Store → Themes → … → Edit code, in
theme.liquidbefore</head>or on the template that renders your returns page. Keep the policy text on the page in line with the markup. - 02
WooCommerce
Add it to your returns page with a Custom HTML block, or print it in
wp_headwith a code snippets plugin. If your SEO plugin already outputs Organization markup, merge the property into that instead of adding a second Organization. - 03
Product overrides
Paste the Offer-level property inside the product's existing Offer. Leave the rest of the Product markup as it is.
Questions people ask
Does return policy markup show in search results?
It can show return details on merchant listings, such as free returns or a 30-day window. Google decides when to display them.
Do I need it on every product page?
No. Google recommends one store-wide policy on a single page. Only add product-level markup for products with different terms.
What if I already set returns in Merchant Center?
Merchant Center and Search Console settings take priority, so Google uses those and ignores this markup. Keep them consistent anyway.
How do I mark a product as final sale?
Use the “Final sale product” preset. It creates an Offer-level policy with MerchantReturnNotPermitted.
How do I show a longer holiday return window?
Turn on the holiday option. It adds a returnPolicySeasonalOverride with its own dates and number of days.
Related tools
Last reviewed 30 September 2026.
Sources: Google Search Central: Merchant return policy structured data · Google Search Central: Merchant listing structured data
