hasMerchantReturnPolicy
hasMerchantReturnPolicy · Recommended
Appears in
What is it?
hasMerchantReturnPolicy links an organization, offer, or product to a structured return policy declaration. Instead of describing your return policy in prose that search engines and AI systems must parse, this field expresses it as a machine-readable MerchantReturnPolicy object with typed values for the return window length, accepted return method, and any applicable fees.
Google recommends this field specifically for organizations that represent online stores. When present, it gives Google's shopping surfaces authoritative return policy data directly from the merchant rather than requiring extraction from a returns page.
Why this matters for AEO
Return policy information is one of the first things purchase-intent users want to know. When an AI answer engine receives a query like "What is [retailer]'s return policy?" or "Can I return [product] to [store]?", a MerchantReturnPolicy object provides a direct, structured answer. The data is unambiguous: 30 days, free returns, online method. There is no room for misinterpretation. For shopping-focused AI features that compare merchants by return policy, organizations with structured return policy data have a significant advantage over those relying on prose descriptions. This is one of the fields where structured data investment has a direct and measurable impact on AI-driven purchase decisions.
What the specs say
Schema.org:hasMerchantReturnPolicy expects a MerchantReturnPolicy object. It specifies a MerchantReturnPolicy that may be applicable. [Source: https://schema.org/hasMerchantReturnPolicy]
Google: Recommended. "The return policy of your Organization, if applicable." Google recommends this for OnlineStore organization subtypes. [https://developers.google.com/search/docs/appearance/structured-data/organization]
How to find your value
Your return policy page is the source of record. Map each aspect of your current policy to the corresponding schema.org enumeration:
Return policy category (required in MerchantReturnPolicy):
- No returns accepted:
https://schema.org/MerchantReturnNotPermitted - Returns accepted within a defined window:
https://schema.org/MerchantReturnFiniteReturnWindow - Returns accepted at any time:
https://schema.org/MerchantReturnUnlimitedWindow
Merchant return days: The number of days from purchase or delivery within which returns are accepted. Use merchantReturnDays for this value.
Return method:
- In-store:
https://schema.org/ReturnInStore - By mail:
https://schema.org/ReturnByMail - At a kiosk:
https://schema.org/ReturnAtKiosk
Return fees:
- No fee:
https://schema.org/FreeReturn - Customer pays return shipping:
https://schema.org/ReturnShippingFees - Customer pays a restocking fee:
https://schema.org/RestockingFees
Refund type:
- Full refund:
https://schema.org/FullRefund - Exchange only:
https://schema.org/ExchangeRefund - Store credit only:
https://schema.org/StoreCreditRefund
Format and code
Standard 30-day free return policy:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Zappos",
"url": "https://www.zappos.com",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 365,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn",
"refundType": "https://schema.org/FullRefund"
}
}
No-return policy (final sale):
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Final Sale Store",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnNotPermitted"
}
}
Multiple return methods (in-store or by mail):
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Target",
"url": "https://www.target.com",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 90,
"returnMethod": [
"https://schema.org/ReturnInStore",
"https://schema.org/ReturnByMail"
],
"returnFees": "https://schema.org/FreeReturn",
"refundType": "https://schema.org/FullRefund",
"returnPolicySeasonalOverride": {
"@type": "MerchantReturnPolicySeasonalOverride",
"startDate": "2024-11-01",
"endDate": "2025-01-31",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 90
}
}
}
From Google's own example (OnlineStore):
{
"@context": "https://schema.org",
"@type": "Organization",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow"
}
}
Source: https://developers.google.com/search/docs/appearance/structured-data/organization
Webflow implementation
Static pages
Add the JSON-LD to your organization homepage or a dedicated About page in Page Settings > Custom Code > Head Code. Since return policies are org-wide declarations, a single implementation on the site's primary organization page is sufficient.
CMS template pages
Return policies are typically organization-level data rather than page-level data. Implement on static pages rather than CMS templates unless you manage a marketplace with multiple vendor return policies.
In Schema HQ
The organization schema editor in Schema HQ exposes hasMerchantReturnPolicy as a structured sub-object. Select the return policy category from a dropdown, enter the return window in days, and choose the applicable return method and fee type. Schema HQ validates that the enumeration values are correct before publishing to your Webflow site's custom code.
Real examples
Google's structured data documentation for Organization provides this json
{
"@type": "Organization",
"@context": "https://schema.org",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow"
}
}
Source: https://developers.google.com/search/docs/appearance/structured-data/organization
Related fields
FAQ
Does hasMerchantReturnPolicy affect my eligibility for Google rich results?
Google lists hasMerchantReturnPolicy as Recommended for Organization structured data, specifically for online stores. While it does not directly trigger a dedicated return policy rich result, it feeds data to Google's Shopping surfaces and Merchant Center. Accurate return policy markup can improve how your products appear in Shopping results.
Can I declare different return policies for different products?
Yes. hasMerchantReturnPolicy is also valid on Offer and Product objects, allowing product-level policy overrides. The organization-level policy acts as a default; product-level policies take precedence when present.
What if my return policy varies by product category or season?
Use returnPolicySeasonalOverride for time-limited exceptions (like extended holiday return windows). For permanent category-based differences, apply hasMerchantReturnPolicy at the Offer or Product level on the relevant pages rather than trying to encode all variations in the organization declaration.
Do I need to include all MerchantReturnPolicy properties?
Only returnPolicyCategory is required by the schema.org specification. Google's documentation shows minimal examples with just this field. In practice, the more properties you include (return window, method, fees, refund type), the more useful the data is for AI systems answering specific return policy questions.