Skip to content

EVAL-002Compare

Return policy machine-readable

Checks whether an AI agent can read your return window and conditions from structured data or an HTML return policy.

What we check

We look for a MerchantReturnPolicy in the JSON-LD on your product pages (standalone, or as hasMerchantReturnPolicy on the Product or an Offer), and for a return window stated in days, weeks or months on your return policy page, which must be HTML text rather than a PDF, an image or an embedded document.

Why it matters

Shoppers ask agents whether they can send something back before buying, and an agent handling a return after purchase needs the window. A PDF or "contact us to arrange a return" gives it no terms to report or act on. schema.org/MerchantReturnPolicy defines how to describe a return policy. Asking for a readable return window is our own rule; schema.org does not require one.

How we check

We read up to 3 product pages and the return policy page (from the crawl, or fetched once if only its link was found). Weeks count as 7 days, months as 30. PASS: a MerchantReturnPolicy is in the JSON-LD, including one declaring returns are not accepted (MerchantReturnNotPermitted); or the HTML policy states a window. WARN: the JSON-LD merchantReturnDays is not among the windows the page states (we compare against all of them, so "14 days statutory, 30 days ours" matches either); or the HTML policy states no window or defers ("contact us to arrange a return"). FAIL: the policy is a PDF, an image or an embedded document, or returns 404/410; or no policy is found anywhere. SKIPPED when nothing relevant was captured, or when the policy page was blocked or refused to our crawler and there is no JSON-LD policy. We list every window found but do not decide which applies to a given product.

How to fix it

  1. Add hasMerchantReturnPolicy to your Product or Offer JSON-LD, with merchantReturnDays, returnPolicyCategory and returnFees.
  2. Publish the return policy as an HTML page stating the window in days and the conditions, not a PDF or "contact us".
  3. Keep merchantReturnDays equal to a window the page itself states.
  4. If a product cannot be returned, declare returnPolicyCategory MerchantReturnNotPermitted.
  5. Link the policy from your footer with a word such as "Returns", "Refunds" or "Rückgabe".

What good looks like

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Linen shirt",
  "offers": {
    "@type": "Offer",
    "price": "49.00",
    "priceCurrency": "EUR",
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": "DE",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 30,
      "returnFees": "https://schema.org/FreeReturn"
    }
  }
}
</script>

Return policy page (HTML text):
You can return unworn items within 30 days of delivery. Returns are free.

Sources

Could an agent buy from your store?

The free scan runs all 51 checks on your store in about five minutes.

Scan my store
The storewalk.ai app on a phone, scanning a clothing store: it checks a product, views its details and compares options.