Skip to content

Missing field "hasMerchantReturnPolicy" (in "offers"): how to fix it

Google wants your return policy, and your product markup doesn't include it. It's a non-critical issue, so your products still qualify for merchant listings. Adding the policy lets Google show your return window and cost next to them.

In Search Console
  • Missing field "hasMerchantReturnPolicy" (in "offers")

    Shopping > Merchant listings

    Non-critical

Non-critical: the item can still show as a rich result.

By Bruno Amorim · ·

The fast route: Search Console

  1. Open Settings > Shopping > Shipping and returns, then the Returns tab.
  2. Click Add return policy and pick a country.
  3. Enter the address of your return policy page, the return window in days (or no returns), and the return cost: free, a flat fee, or a share of the price.
  4. Repeat for each country you ship to.

Google checks return policies by hand. That takes about 10 to 13 days, and the policy shows as pending until then. Google ranks these settings above the markup on your pages. Its docs don't say whether they clear this warning in the Merchant listings report.

The markup route

For one policy across the store, Google recommends hasMerchantReturnPolicy under Organization, on a single page such as your returns page. Use it on the offer only for products with their own rules, or when you have no store-wide policy. A product-level policy beats the store-wide one.

Before
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Canvas Weekender Bag",
  "image": "https://example.com/photos/weekender-bag.jpg",
  "offers": {
    "@type": "Offer",
    "price": 89,
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>
After: 30-day returns by mail, free, in the US
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Canvas Weekender Bag",
  "image": "https://example.com/photos/weekender-bag.jpg",
  "offers": {
    "@type": "Offer",
    "price": 89,
    "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"
    }
  }
}
</script>

Fields that trip people up

  • merchantReturnDays is required when returnPolicyCategory is MerchantReturnFiniteReturnWindow.
  • No returns? Use https://schema.org/MerchantReturnNotPermitted. That's still a valid policy.
  • returnShippingFeesAmount goes with ReturnShippingFees only. Leave it out with FreeReturn or ReturnFeesCustomerResponsibility.
  • applicableCountry takes two-letter codes, up to 50 of them.
  • Product-level policies accept fewer properties than Organization-level ones.

To reuse a store-wide policy from another page, give the offer only its @id, such as "hasMerchantReturnPolicy": { "@id": "https://example.com/returns#policy" }.

On your platform

Shopify

The structured_data filter in Dawn and Horizon writes no return policy, so either replace it with your own block or set the policy in Search Console.

WooCommerce with Rank Math

Rank Math PRO can add a store-wide policy: Rank Math SEO > Schema Templates > Add New Schema, build a MerchantReturnPolicy with the Custom Schema Builder, and insert it into the Organization schema under Display Conditions. Without PRO, Rank Math's docs give a code filter that adds the policy to each offer.

Wix, Squarespace, and BigCommerce

Wix: edit the Product markup under SEO Settings > Products. Squarespace: its markup can't be edited, so use Search Console. BigCommerce Cornerstone: add the policy to offers in templates/components/products/schema.html.

Confirm it worked

Test a product in the Rich Results Test and check that Merchant listings lists the return policy. Then click Validate fix on the issue in Shopping > Merchant listings.

Questions

Is hasMerchantReturnPolicy required for merchant listings?

No. Google lists it as recommended, and Search Console shows the missing field as a non-critical issue. Your products can show without it.

What if my store doesn't accept returns?

Say so in the markup: set returnPolicyCategory to https://schema.org/MerchantReturnNotPermitted with your applicableCountry. In Search Console, pick no returns as the return window.

Should the return policy go on every product page?

Not for a store-wide policy. Google recommends one policy under Organization markup, on a single page. Products can point to it by @id if you want the warning gone.

Sources

Checked on October 8, 2026. Vendors change their tools and docs, so check the source if something looks different.

See which of your pages Google left out

Prices, stars, and breadcrumbs only show for pages in Google's index. CrawlCoach shows which of your pages Google left out, and the fix for each.

Get my free report

Free for up to 500 pages. No card needed. Sign in with the Google account you use for Search Console.

More structured data fixes

Related guides