Guide
Fixing Google's "Missing field hasMerchantReturnPolicy" warning
Published October 4, 2026
The Merchant listings report in Search Console flags a product page as "Missing field hasMerchantReturnPolicy (in offers)", often in the same email as priceValidUntil and aggregateRating. None of the three is an error. Each is a recommended field Google would show beside your listing if it could read it, and each has a fix that takes minutes once you know which one you want.
What the warning means
Google's merchant listing markup requires only price and priceCurrency on an Offer. hasMerchantReturnPolicy is recommended, so its absence is a warning, and the page still qualifies for merchant listing results. What you lose is the return window and return cost Google can show next to the product when it has them.
As with shipping, Google's return-policy page lists four sources and uses the strongest when several are set: the Content API for Shopping, then settings in Merchant Center or Search Console, then markup on each product's Offer, then site-wide markup on your Organization. A store that submits a product feed to Merchant Center can carry its return terms there too, ahead of anything on the site. Google recommends the site-wide forms when one policy covers most of what you sell.
Fix 1: set returns in Search Console or Merchant Center
If Google recognises your site as an online merchant, Search Console offers returns settings alongside shipping; Merchant Center has the same. Fill in the return window, the fee and the method once, and Google uses them for every product. Settings are read ahead of markup, so the warning in the Merchant listings report may remain afterwards: it reports what the page's markup lacks, and the markup is no longer where Google reads the terms.
Fix 2: a site-wide return policy on your Organization
A return policy that applies to most or all of your products goes on your Organization markup as hasMerchantReturnPolicy. It lives once, on the page that carries your Organization markup, and it is the form Google recommends over per-product markup.
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Store",
"url": "https://www.example.com/",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}applicableCountry: the two-letter country codes the policy applies in; an array for several.returnPolicyCategory:MerchantReturnFiniteReturnWindowwithmerchantReturnDays,MerchantReturnUnlimitedWindow, orMerchantReturnNotPermitted.returnMethod:ReturnByMail,ReturnInStoreorReturnAtKiosk.returnFees:FreeReturn,ReturnShippingFeesorReturnFeesCustomerResponsibility.
Fix 3: hasMerchantReturnPolicy on each product's Offer
For products whose terms differ from the store's policy (final-sale items, say), or if you prefer each product page to carry its terms, put the same node on the product's Offer.
"offers": {
"@type": "Offer",
"price": 49.00,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}Say what your returns page says. A node that promises free returns in thirty days above a page that charges a restocking fee is a contradiction a shopper, and any system reading on their behalf, can see.
Where this goes on a Shopify store
The product markup most Shopify themes write includes no return terms. The theme file that writes it can be found by searching the theme code for "@type": "Product" (Online Store, Themes, Edit code); the node goes inside the offers object there. The Organization form goes in the theme's layout file, once, so it is on every page. A structured-data app can do either, and Fix 1 needs no code. Pick one method and keep it in step with your returns page.
The two warnings that usually come with it
Missing field priceValidUntil
priceValidUntil is the date after which the offer's price no longer holds. It is recommended, not required, and it exists for prices that genuinely end, such as a sale. If you add it, add a true date and make sure something updates it, because a date in the past tells Google the price has expired. For a standing price, leaving it out is honest and costs you nothing but the warning.
Missing field aggregateRating
aggregateRating is the star rating and count Google can show with a listing. It is recommended, and only add it when it is true: a real rating from real reviews that visitors can read on the page. Rating markup with no visible reviews behind it, or a number that differs from what the page shows, is the kind of mismatch that gets markup ignored, and it is one of the things a Findwise scan reports. A review app that writes the markup from the reviews it displays is the usual way to get this right; without reviews, leave the field out.
Checking the fix
- Run one product URL through Google's Rich Results Test and confirm the Offer shows the return policy node with no missing-field notice.
- In Search Console's Merchant listings report, select the warning and choose Validate fix; Google re-reads a sample of pages over the following days or weeks.
- If you chose Fix 1, the warning can stay in the report. Settings are read ahead of markup, so there is nothing left to add.
Why this matters beyond the warning
"Can I send it back, and what does that cost" is the question that decides a purchase a shopper is unsure about. A system answering that shopper reads the product's Offer; a returns page it has to find and summarise is a weaker answer than a field it can repeat exactly, and a policy node with no window and no fee is a label, not an answer.
A Findwise scan reads a sample of a store's public pages and checks this from the shopper's side: whether return and shipping terms are stated only in prose, whether a return policy node names its window and its fees, whether the policy nodes a store publishes are attached to each product's Offer, and whether rating markup is backed by visible reviews. Each finding cites the page it was seen on. Findwise estimates from public pages; it does not test AI assistants and cannot say what any assistant shows for your store.
Check your own store
A Findwise scan reads a sample of your store's public pages and reports where the product facts, structure and policies are thin for AI-assisted shopping, each finding with the page it was seen on.
Sources
- Google Search Central: Merchant listing (Product, Offer) structured data
- Google Search Central: Merchant return policy (MerchantReturnPolicy) structured data
- Google Search Central: Organization structured data
- Google Search Central blog: More ways to share your shipping and returns policies with Google (November 2025)
