A

Policy

HIGH

MerchantReturnPolicy satisfies Option A (country+category) or B (returnLink)

Every MerchantReturnPolicy node satisfies Option A (country + category) or Option B (returnLink URL). A policy node missing both shapes is invisible to agents — they can't render it, link to it, or quote your return terms.

What this check looks for

Google's return-policy structured-data spec recognizes two valid shapes for `hasMerchantReturnPolicy`. Option A is the fully-detailed form: `applicableCountry` (ISO alpha-2) plus `returnPolicyCategory`. Option B is the lightweight form: a `merchantReturnLink` URL pointing at your returns page. Nodes with neither shape can't render and are dropped from agent-facing rich results.

Which AI surfaces it affects

  • Google AI Mode (UCP)90
  • Microsoft Copilot60
  • Meta AI50
  • ChatGPT (ACP)40
  • Perplexity30

Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.

How to fix it

Make every MerchantReturnPolicy node satisfy Option A or Option B

Shopify

Developer
  1. Settings → Markets → policies: configure a returns policy per market. Shopify Markets emits Option A automatically on themes that support MerchantReturnPolicy.
  2. If Shopify can only resolve a returns URL (no per-market category), confirm your theme injects `merchantReturnLink` as a fallback.

Platform docs ↗

BigCommerce

Developer
  1. Edit your product template to emit at least `applicableCountry` and `returnPolicyCategory` on every MerchantReturnPolicy block.
  2. Alternatively emit `merchantReturnLink` pointing at `/returns/` if you can't enumerate countries per product.

Platform docs ↗

WooCommerce

Developer
  1. Configure your SEO plugin's MerchantReturnPolicy add-on (Yoast or AIOSEO) to emit Option A — set country and category in the plugin's policy settings.
  2. Or hook `woocommerce_structured_data_product` and emit `merchantReturnLink` pointing at your returns page URL.

Platform docs ↗

Custom / headless

Developer
  1. Pick Option A or Option B per policy node and emit both required fields.
  2. Option A: `applicableCountry` MUST be a 2-letter ISO code (or array of codes); `returnPolicyCategory` MUST be a Schema.org enum URL.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Example Hat",
  "offers": {
    "@type": "Offer",
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": [
        "US",
        "CA"
      ],
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 30
    }
  }
}
</script>

The spec it's pinned to

  • Google return-policy SD — required-shape MUSTs

    Google's return-policy structured-data spec requires every MerchantReturnPolicy node to satisfy Option A (`applicableCountry` + `returnPolicyCategory`) or Option B (`merchantReturnLink`). Nodes without either shape don't render and are dropped from rich results.

  • schema.org/MerchantReturnPolicy

    schema.org/MerchantReturnPolicy expresses the same two configurations: a fully-detailed policy (Option A) or a pointer to the policy page (Option B).

Google — return policy structured data MUSTs

Does your store pass this check?

Run the full audit — 82 checks across five AI shopping surfaces. Most tools only check whether you get mentioned; we check whether an agent can buy from you.

Related policy checks

← All 82 checks