How can structured data state that shipping is unavailable for a region?

The Citead team, updated

In short. Use doesNotShip with a DefinedRegion in shippingDestination to describe an unavailable shipping destination.

Definition: In a ShippingConditions object, set doesNotShip to true and identify the affected place with shippingDestination. A DefinedRegion can name a country or another supported region shape.

Key facts

  • Google's ShippingService documentation shows doesNotShip: true for a Mexico destination in its shipping policy example.
  • Schema.org defines doesNotShip as indicating that shipping to a particular shippingDestination is unavailable.
  • Schema.org says that shippingDestination can describe possibly multiple destinations and can use forms such as postal code ranges.
  • Google places standard business shipping policies in ShippingService under Organization with hasShippingService.
  • Google recommends putting the shipping policy information on one page rather than repeating it on every page.

How does the unavailable-region rule work?

ShippingConditions represents constraints on a shipping service. Schema.org states that all specified conditions must be met for a ShippingConditions object to apply. A condition with a DefinedRegion for a country and doesNotShip set to true therefore describes the unavailable combination for that destination. If the object also includes orderValue, weight, or another constraint, the condition applies only when that additional constraint is met.

Google's example uses Mexico as the destination and places the unavailable rule below an order-value range. Its description says that there is no shipping to Mexico for orders under $50, while orders of $50 or more use a separate shipping rule. The example therefore shows a regional exception that is also limited by order value.

What should shippingDestination contain?

The value of shippingDestination is a DefinedRegion in the Schema.org definition. The property describes one or more shipping destinations and can use postal code ranges. For a country-level rule, use a DefinedRegion with the country's code in addressCountry, as in Google's example for Mexico.

For a region-wide block, keep the condition limited to the destination. For a block that applies only to a price band or another product condition, add that constraint to the same object. The Schema.org definition lists destination, price, weight, and other product aspects among the conditions that can determine whether a shipping rule applies.

Where does the JSON-LD go?

Google documents a standard business shipping policy as ShippingService nested under Organization through hasShippingService. A ShippingService can contain multiple shippingConditions objects. This is the smallest country-level shape for an unavailable destination:

{
  "shippingConditions": [
    {
      "@type": "ShippingConditions",
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "MX"
      },
      "doesNotShip": true
    }
  ]
}

Google's published example adds orderValue to the Mexico condition because its rule covers orders under $50. If your policy has a different threshold, the markup must reflect that policy's actual condition.

How can you check the published markup?

Google instructs site owners to validate the code with the Rich Results Test and to use URL Inspection to test how Google sees the page. The page must be accessible to Google and must not be blocked by robots.txt, a noindex tag, or login requirements. Google also recommends placing shipping policy information on a single page that describes the business policy.

FAQ

Does doesNotShip name the destination by itself?

No. The rule pairs doesNotShip with shippingDestination, whose expected value is DefinedRegion in the Schema.org definition.

Can one shipping service contain several destination rules?

Yes. Google documents multiple shippingConditions objects within a ShippingService, and Schema.org allows shippingDestination to indicate possibly multiple destinations.

Does the example block every order sent to the country?

The published example blocks orders under $50 because that condition includes an orderValue range. A destination-only condition expresses the destination constraint without that extra range.

Sources

  1. Google Search Central, "Merchant Shipping Policy Structured Data (ShippingService)", 8 September 2026
  2. Schema.org, "ShippingConditions", undated
  3. Schema.org, "shippingDestination", undated

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