How can return markup distinguish remorse returns from defective items?

The Citead team, updated

In short. Use reason-specific MerchantReturnPolicy fields to express different fees and return-label sources for remorse and defect items.

Definition: A MerchantReturnPolicy can describe different return terms for customer remorse and defective items with separate fee, shipping-fee amount and label-source properties. The fields belong to an organization-level return policy and use Schema.org enumeration values.

Key facts

  • Google's merchant return policy documentation recommends customerRemorseReturnFees, customerRemorseReturnLabelSource, customerRemorseReturnShippingFeesAmount, itemDefectReturnFees, itemDefectReturnLabelSource and itemDefectReturnShippingFeesAmount for finite or unlimited return windows.
  • Schema.org's ReturnFeesEnumeration assigns one property to customer-remorse fees and another to fees for defect products. returnFees covers products returned for any reason.
  • Schema.org's ReturnLabelSourceEnumeration gives the same separation for the source of the return label, with customerRemorseReturnLabelSource and itemDefectReturnLabelSource alongside the general returnLabelSource.

Which fields separate the return reasons?

Google documents customerRemorseReturnFees as the fee type when a product is returned due to customer remorse. Its itemDefectReturnFees counterpart describes the fee type for defect products. Both use the ReturnFeesEnumeration type, so the values come from the same fee vocabulary. Schema.org describes returnFees as the fee type for a product returned for any reason, which makes it the policy-wide field.

The label fields follow the same structure. customerRemorseReturnLabelSource records how the consumer obtains a label for a remorse return, while itemDefectReturnLabelSource records how the consumer obtains one for a defect return. returnLabelSource describes the general method. Google's page marks these reason-specific properties as recommended when returnPolicyCategory is MerchantReturnFiniteReturnWindow or MerchantReturnUnlimitedWindow.

How do fee and label values work?

The fee value controls who pays or whether a charge exists. Google's supported values are https://schema.org/FreeReturn, https://schema.org/ReturnFeesCustomerResponsibility and https://schema.org/ReturnShippingFees. FreeReturn means there is no charge to the consumer. ReturnFeesCustomerResponsibility means the consumer handles and pays for return shipping. ReturnShippingFees means the merchant charges a shipping fee and requires a returnShippingFeesAmount value.

The reason-specific amount fields refine that last case. customerRemorseReturnShippingFeesAmount gives the shipping cost for a remorse return and is required when the consumer pays a non-zero amount. itemDefectReturnShippingFeesAmount does the same for a defect return. The amount is a MonetaryAmount object, so the value and currency can be expressed together.

The label-source enumeration has three documented choices: ReturnLabelCustomerResponsibility, ReturnLabelDownloadAndPrint and ReturnLabelInBox. The first assigns label creation to the consumer, the second requires downloading and printing, and the third means the label was included in the original shipment. A policy can therefore pair different fee and label values for each return reason.

Google's example uses shipping fees for remorse returns and free returns for defect items. The reduced fragment below keeps those reason-specific fields and the documented amount format:

{
  "customerRemorseReturnFees": "https://schema.org/ReturnShippingFees",
  "customerRemorseReturnShippingFeesAmount": {
    "@type": "MonetaryAmount",
    "value": 5.99,
    "currency": "EUR"
  },
  "customerRemorseReturnLabelSource": "https://schema.org/ReturnLabelDownloadAndPrint",
  "itemDefectReturnFees": "https://schema.org/FreeReturn",
  "itemDefectReturnLabelSource": "https://schema.org/ReturnLabelInBox"
}

How should the markup be checked?

Google's implementation guidance says to validate the structured data with the Rich Results Test and fix critical errors. After deployment, its URL Inspection tool checks how Google sees the page. The same guidance says the page must be accessible to Google and free of blocking robots.txt rules, a noindex tag or login requirements.

The return policy itself remains the source of the terms. Google documents MerchantReturnPolicy as structured data that can provide return conditions, methods, fees and refund options, while the reason-specific fields make two fee and label combinations explicit for parsers.

FAQ

How do you mark a free return for a defective item?

Use itemDefectReturnFees with https://schema.org/FreeReturn. The Google example pairs that value with itemDefectReturnLabelSource set to https://schema.org/ReturnLabelInBox.

How do you charge shipping only for a remorse return?

Set customerRemorseReturnFees to https://schema.org/ReturnShippingFees and provide customerRemorseReturnShippingFeesAmount with the non-zero charge. Set the defect fee field to the value that describes the defect-item policy.

Which field describes a label included in the parcel?

Use the applicable label-source field with https://schema.org/ReturnLabelInBox. Choose customerRemorseReturnLabelSource for a remorse return or itemDefectReturnLabelSource for a defect return.

Sources

  1. Google Search Central, "Merchant return policy (MerchantReturnPolicy) structured data", updated 8 September 2026
  2. Schema.org, "ReturnFeesEnumeration", August 2026
  3. Schema.org, "ReturnLabelSourceEnumeration", August 2026

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark