MerchantReturnPolicy Schema

MerchantReturnPolicy is the schema.org type that marks up your return policy for Google — nested under Organization or Offer, never on its own. Here are the required properties, the applicableCountry vs. returnPolicyCountry confusion, and the four-way precedence hierarchy that decides which policy actually shows.

First published: Jul 2, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #36 in Structured Data#66 in On-Page#285 in Technical SEO#381 on the site

MerchantReturnPolicy is the schema.org type that describes your return policy — window, fees, methods, refund type — in machine-readable form. The single most important thing to get right: it's a nested, property-level type, never a standalone markup. You attach it via hasMerchantReturnPolicy under Organization (one site-wide policy) or Offer (a per-product override). Once you use it, Google requires one of two options — applicableCountry + returnPolicyCategory, or just merchantReturnLink — and if the category is MerchantReturnFiniteReturnWindow, merchantReturnDays is required too. It is NOT required for baseline Product rich results; it's a recommended enhancement that gates only the returns display. Watch two traps: applicableCountry (where the policy applies) is not returnPolicyCountry (where the item ships back to), and a return policy can be set in four places — Content API, Merchant Center/Search Console settings, product-level markup, organization-level markup — that follow a strict precedence order, with Search Console settings overriding your on-page markup entirely.

TL;DR — MerchantReturnPolicy is a nested, property-level type, not a standalone markup: it’s the value of hasMerchantReturnPolicy on Organization (site-wide default) or Offer (per-product override). Required is a two-option choice — applicableCountry + returnPolicyCategory, or merchantReturnLink; and MerchantReturnFiniteReturnWindow makes merchantReturnDays required. applicableCountry (where the policy applies) is not returnPolicyCountry (where the item physically ships back to) — that conflation is spreading and it’s wrong. It is not a base-eligibility requirement for Product rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. — it’s a recommended enhancement gating only the returns display. And a return policy can be defined in four places with a strict precedence order (Content API → Merchant CenterGoogle Merchant Center (GMC) is a free platform where retailers upload and manage product data so their products can appear across Google — Shopping, organic Search product grids, Images, Lens, and AI surfaces. Since 2020 it powers free (organic) product listings, not just paid Shopping ads./Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. settings → product-level markup → organization-level markup), where Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. settings override your on-page structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. entirely.

Evidence for this claim Schema.org MerchantReturnPolicy defines return-policy properties and can be associated with an Organization or Offer. Scope: Schema.org vocabulary. Confidence: high · Verified: Schema.org: MerchantReturnPolicy Evidence for this claim Google supports organization-level and offer-level merchant return policy markup, with offer-level policy taking precedence for that product. Scope: Current Google merchant return policy structured-data behavior and required fields. Confidence: high · Verified: Google Search Central: Merchant return policy structured data

What it actually is — a nested type, not a listing type

This is the mental model everything else hangs on. MerchantReturnPolicy is not a schema you mark up on its own as the primary type of a page, the way you would Product or JobPosting. It’s a property-level type: an instance of it is the value of the hasMerchantReturnPolicy property, attached to one of two parent types.

Google’s own docs lay out the two levels explicitly: “A standard return policy for your business that applies to most or all products you sell can be specified using the MerchantReturnPolicy structured data type nested under the Organization structured data type using the hasMerchantReturnPolicy property. If you need to override your standard return policy for a specific product, specify one or more instances of MerchantReturnPolicy under the Offer type.”

So it’s a companion to the Product/Offer types, not a competitor to them. If you’ve read my commerce schema hub\"Commerce schema\" is a practitioner label — not an official Google or schema.org category — for the schema.org listing types that power transactional rich results: Product, ProductGroup, and JobPosting. — my practitioner label for the schema.orgSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor. listing types (Product, ProductGroup, JobPosting) that earn their own rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. — MerchantReturnPolicy is deliberately not in that group. Those are the pages you mark up; this is a property you attach to them.

Required properties: a two-option choice

Once you use it, Google requires one of two options — “choose the option that best suits your use case”:

Option A — structured details:

  • applicableCountry (Text) — “The country code that the return policy applies to (where the product is sold and will be returned from). Use the two-letter ISO 3166-1 alpha-2 country code formatting. You can specify up to 50 countries.”
  • returnPolicyCategory (MerchantReturnEnumeration) — the type of return policy, one of three enum values (below).

Option B — just a link:

  • merchantReturnLink (URL) — “Specify the URL of a web page that describes the return policy to your customers. This can be your own return policy, or a third-party policy from a service that handles your returns.”

Option B is the escape hatch for merchants who can’t keep detailed markup current — point at the policy page and be done.

The three returnPolicyCategory values

Straight from Google’s docs, these are the only three valid values, and they must be the full schema.org URL, not plain text like “30 days” (using plain text is one of the most common validation errors):

  • https://schema.org/MerchantReturnFiniteReturnWindow“There’s a set number of days to return a product.”
  • https://schema.org/MerchantReturnUnlimitedWindow“There’s an unlimited amount of time to return a product.”
  • https://schema.org/MerchantReturnNotPermitted“Returns aren’t permitted.”

When merchantReturnDays becomes required

There’s one conditional requirement to remember: “If you use MerchantReturnFiniteReturnWindow, then the merchantReturnDays property is required.” So a finite window without a day count is invalid — if you say customers have a set number of days, you have to say how many.

applicableCountry vs. returnPolicyCountry — the property everyone confuses

This is worth its own section, because a factual error is actively spreading through secondary SEO content — including some higher-authority coverage that framed returnPolicyCountry as “now required.” It isn’t. Here’s the distinction, straight from the live doc:

  • applicableCountry is required (as part of Option A) and describes where the policy applies — where the product is sold and returnable from.
  • returnPolicyCountry is recommended, not required, and describes something different: “The country where the product has to be sent to for returns. This country can be different from the country where the product was originally shipped or sent to.”

Google’s own example makes the difference concrete: "applicableCountry": ["DE", "AT", "CH"], "returnPolicyCountry": "IE" — i.e., the policy applies to (and products are returnable from) Germany, Austria, and Switzerland, but the physical return address is in Ireland. Two different concepts, two different properties. If a source tells you returnPolicyCountry is required, check it against Google’s return-policy doc — the required field is applicableCountry.

Beyond the required minimum, these recommended properties make the returns display richer. All are enum-based:

  • returnFees (ReturnFeesEnumeration): FreeReturn, ReturnFeesCustomerResponsibility, or ReturnShippingFees (a merchant-charged shipping fee — specify the non-zero amount with returnShippingFeesAmount).
  • returnMethod (ReturnMethodEnumeration): ReturnAtKiosk, ReturnByMail, ReturnInStore.
  • refundType (RefundTypeEnumeration): ExchangeRefund, FullRefund, StoreCreditRefund.
  • restockingFee (MonetaryAmount or Number) — a percentage or fixed amount.
  • returnLabelSource (ReturnLabelSourceEnumeration): ReturnLabelCustomerResponsibility, ReturnLabelDownloadAndPrint, ReturnLabelInBox.
  • itemCondition, returnPolicyCountry, and itemDefectReturnShippingFeesAmount round out the common set.

Worth knowing: schema.org’s vocabulary for MerchantReturnPolicy is larger than this list — it also defines properties like customerRemorseReturnFees, inStoreReturnsOffered, and validForMemberTier that don’t appear in Google’s own return-policy doc. Schema.org validity and Google support are two different things. Stick to the properties Google’s docs actually list if your goal is the returns rich-result feature — the broader vocabulary exists, but Google hasn’t documented that it reads it.

Seasonal overrides for holiday windows

Return policies often loosen over the holidays, and there’s a property for exactly that: returnPolicySeasonalOverride (MerchantReturnPolicySeasonal). It lets you specify a different policy for a date range — its own returnPolicyCategory, merchantReturnDays, and startDate/endDate — without touching your standard policy. A retailer running an extended-holiday-returns window can layer that on top of the year-round default.

Organization-level vs. Offer-level: which to use

  • Organization-level (hasMerchantReturnPolicy under Organization) is for your standard, business-wide policy. Set it once and it applies broadly. This is the right default for most sites, and it exists specifically so you don’t have to repeat the policy on every product page. Google recommends using one of the OnlineStore or LocalBusiness subtypes of Organization for this.
  • Offer-level (hasMerchantReturnPolicy under Offer) is only for genuine exceptions — a specific product whose return terms differ from your standard.

And a caution from the precedence rules below: product-level (Offer) markup always wins over organization-level, so a stale or incorrect Offer-level override will silently beat a correct organization-level default. Don’t sprinkle Offer-level policies “to be safe.”

Is MerchantReturnPolicy required for Product rich results?

No — and this is the myth most worth busting. Google’s Product intro doc lists it as a recommended enhancement, not a base-eligibility requirement: “In addition to structured data for the individual products that you sell, we also recommend you add structured data defining the policies of your ecommerce business, nested under Organization markupOrganization schema (schema.org/Organization) is structured data that describes the business or entity itself — name, logo, official URL, social profiles, contact info, and identifiers — rather than a page's content. Google says it can help disambiguate your brand and some properties can influence visual elements like Knowledge Panel/attribution; it has no required properties and doesn't guarantee a Knowledge Panel.: Merchant return policy: Specify the return policy (or policies) for your business.” On the merchant-listing doc, hasMerchantReturnPolicy is a recommended property of Offer, not one of the required properties (like price and priceCurrency) that gate baseline eligibility.

Translation: omitting return-policy markup doesn’t disqualify a page from product snippets or merchant listings. It only means the returns enhancement won’t show. It’s an add-on, not an entry ticket. And per the broader structured data hubStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding., none of it is a ranking factor — it earns eligibility for an appearance, not position.

It’s also worth being precise about what “correct markup” actually proves. Valid schema.org syntax, Google-documented support for a property, syntactically valid JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., rich-result eligibility, and the policy actually displaying in Search are five separate states — passing one doesn’t guarantee the next. And none of them are a ranking signal, a legal compliance guarantee, or a promise that an AI shoppingAI shopping optimization is the practice of making a merchant's products discoverable, recommendable, and buyable across AI shopping surfaces — ChatGPT, Google AI Mode, Gemini, Copilot, and Perplexity — by treating the structured product feed as a first-class optimization surface alongside the human-facing webpage, not a replacement for it. surface will read or honor the policy the way Search does — Google’s docs don’t claim any of that.

The precedence hierarchy — the real differentiator

Here’s the part almost no competing guide explains clearly. A return policy can be defined in four different places, and when more than one exists, only one wins. Google states the order of precedence, “from strongest to weakest”:

  1. Content API for Shopping (return settings)
  2. Settings in Merchant Center or Search Console
  3. Product-level merchant listing markup (Offer)
  4. Organization-level markup

I re-verified this exact order against Google’s live doc in July 2026, and it hasn’t changed since the November 2025 update below — but this is a doc family that moves, so re-check it against the live page rather than trusting any snapshot, including this one, indefinitely.

Google says it plainly: “if you provide both return policy markup on your site and return policy settings in Search Console, Google will only use the information provided in Search Console.” So your on-page structured data sits at the bottom of the stack — a Merchant Center or Search Console setting silently overrides it. This is the single most common source of “my markup is perfect but the wrong policy shows” confusion, and it’s why the first thing to check when a displayed policy disagrees with your code is whether something’s set in Search Console or Merchant Center.

Do you even need markup? Merchant Center and Search Console alternatives

Google is upfront that markup isn’t the only path, and often not the best one: “Retailer return policies can get complicated and may change frequently. If you’re having trouble indicating and keeping your return details up-to-date with markup and have a Google Merchant CenterGoogle Merchant Center (GMC) is a free platform where retailers upload and manage product data so their products can appear across Google — Shopping, organic Search product grids, Images, Lens, and AI surfaces. Since 2020 it powers free (organic) product listings, not just paid Shopping ads. account, consider configuring your return policies in Google Merchant Center. You can alternatively configure account-level return policies in Search Console, which get automatically added to Merchant Center.”

So the decision is genuinely three-way: markup (Organization or Offer), Merchant Center settings, or Search Console settings. If you already have a Merchant Center account, Google recommends configuring returns there instead of in markup — it’s easier to keep current, and it outranks markup anyway.

Recent changes: the 2024–2025 timeline

This doc family moves fast, so the history matters:

  • 2023 — Google enabled return-policy structured data for individual products (Offer-level) — the starting point, per Google’s own later framing.
  • June 11, 2024 — Google added organization-level hasMerchantReturnPolicy support, so you could set one business-wide policy instead of repeating it per product. The Google Shopping engineers who announced it (Irina Tuduce, Pascal Fleury, and Johan Linder) framed it around merchants without a Merchant Center account: “Adding a return policy to your organization structured data is especially important if you don’t have a Merchant Center account and want the ability to provide a return policy for your business.”
  • November 12, 2025 — Google expanded the Search Console “Shipping and returns” feature to all websites identified as online merchants (previously it required a Merchant Center account), and added organization-level shipping policy markup. Their note on precedence is worth pinning to the fridge: “It’s important to note that settings configured in Search Console will take precedence over structured data on your site.”

One clarification on that November 2025 update: the new shipping policy markup is a separate type from MerchantReturnPolicy — don’t conflate returns and shipping. Shipping policy is its own structured-data path (a ShippingService-style type). This article is about returns; shipping is a sibling topic.

How Bing handles this — spoiler, it doesn’t (specifically)

Be honest about the asymmetry. Bing’s Webmaster ToolsThe free, first-party consoles search engines give site owners — Google Search Console and Bing Webmaster Tools — to see how their pages are crawled, indexed, and ranked, and to fix problems. The legacy name is 'webmaster tools.' validate schema.org markup generically and Bing reads structured data, but Bing publishes no MerchantReturnPolicy-specific required/recommended property table, no dedicated returns rich-result feature, and no equivalent to Google’s shopping knowledge-panel returns display. Bing’s ecommerce guidance lives in its Shopping-ads feed specs, not in schema.org returns markup. This mirrors the same pattern I noted for Product, ProductGroup, and JobPosting in the commerce hub: Bing validates generically; Google builds dedicated features on top. So implement returns markup for Google — and don’t expect a parallel Bing feature.

Common mistakes and Search Console warnings

The recurring ones:

  • Plain-text enum values. returnPolicyCategory must be the full https://schema.org/... URL, not “30 days” or “finite.” Same for returnFees, returnMethod, and refundType.
  • Finite window with no day count. MerchantReturnFiniteReturnWindow without merchantReturnDays is invalid.
  • Confusing applicableCountry with returnPolicyCountry (see above).
  • “Missing field hasMerchantReturnPolicy (in offers).” This Search Console warning means the returns enhancement is unavailable because the property is absent — but map it to the precedence hierarchy before you panic-add markup: if you’ve set returns in Search Console or Merchant Center, that’s what shows anyway, and the markup warning may be moot.
  • Markup/visible-content mismatch. As with all structured data, the policy in your markup should match what’s actually on the page.
  • Repeating return markup on every product page when an Organization-level policy would cover them all — the entire point of the 2024 launch.

Where this fits

MerchantReturnPolicy is a companion deep-dive to the commerce schema hub\"Commerce schema\" is a practitioner label — not an official Google or schema.org category — for the schema.org listing types that power transactional rich results: Product, ProductGroup, and JobPosting. (Product, ProductGroup, JobPosting) — it’s the property-level type you attach to Offer and Organization, not a fourth listing type. It sits inside the broader structured data for SEOStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. subcluster alongside schema markupSchema markup is code that uses the schema.org vocabulary to label what your content means so search engines can understand it and show rich results. It's most often written in JSON-LD, and it's not a direct ranking factor., JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal., and rich results, which in turn lives in the on-page SEO cluster. Shipping-policy markup — the sibling that shipped alongside the November 2025 update — is a separate type worth its own treatment.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.