How can Schema.org describe a region using postal code ranges?

The Citead team, updated

In short. Use DefinedRegion.postalCodeRange with a PostalCodeRangeSpecification object containing postalCodeBegin and postalCodeEnd.

Definition: Schema.org's DefinedRegion represents a geographic area defined by potentially arbitrary criteria. Its postalCodeRange property links that region to a PostalCodeRangeSpecification, whose beginning and ending postal codes describe an inclusive range.

Key facts

  • Schema.org describes DefinedRegion as a geographic area that can be defined by criteria other than political, administrative or natural geography, including sets of postal codes. Schema.org's DefinedRegion definition gives delivery destinations and regional pricing as examples.
  • postalCodeRange has PostalCodeRangeSpecification as its expected type and is used on DefinedRegion. The property definition states that it is a defined range of postal codes.
  • A PostalCodeRangeSpecification usually represents the valid codes between postalCodeBegin and postalCodeEnd, inclusively. Schema.org's type definition says both endpoint properties are included.
  • postalCodeBegin and postalCodeEnd are Text properties. The ending code needs to be after the beginning code, according to the same type definition.
  • Google Search Central's merchant listing documentation uses DefinedRegion for shippingDestination, requires a two-letter addressCountry, and documents postalCode support for Australia, Canada and the US.

What does DefinedRegion describe?

Schema.org defines DefinedRegion as a geographic area defined by potentially arbitrary criteria rather than political, administrative or natural geography. The type can describe a delivery destination or a region used for regional pricing. Its location fields include addressCountry, addressRegion, postalCode, postalCodePrefix and postalCodeRange.

The range property is different from a single postalCode value. A single code is a Text value, while postalCodeRange takes a PostalCodeRangeSpecification. For postal systems that use a common textual prefix instead of a numeric interval, Schema.org describes postalCodePrefix as the alternative and gives the United Kingdom as an example.

How do postalCodeRange and its specification work?

Put the range in a nested object. Schema.org's DefinedRegion example uses PostalCodeRangeSpecification with postalCodeBegin set to 90001 and postalCodeEnd set to 96162.

{
  "@context": "https://schema.org",
  "@type": "DefinedRegion",
  "addressCountry": "US",
  "addressRegion": "CA",
  "postalCodeRange": {
    "@type": "PostalCodeRangeSpecification",
    "postalCodeBegin": "90001",
    "postalCodeEnd": "96162"
  }
}

The range type documentation defines the interval as the set of valid codes between the two endpoints, inclusively. It lists both endpoints as Text, describes the beginning code as included, and requires the ending code to be after the beginning code. The example therefore uses quoted values inside the JSON-LD object.

What does Google document for shipping markup?

Google's merchant listing documentation, last updated 8 September 2026, places DefinedRegion under shippingDestination in OfferShippingDetails. It describes DefinedRegion as a way to create custom areas for shipping costs and transit times across multiple shipping services. The page requires addressCountry in two-letter ISO 3166-1 alpha-2 format.

For the delivery area, Google's table says to choose either addressRegion or postalCode. It lists postalCode as supported for Australia, Canada and the US, with 94043 as its example. The table is a Google Search feature specification, so it should be read separately from Schema.org's vocabulary definition of postalCodeRange; the page opened for this entry documents postalCode, rather than a Google eligibility rule for postalCodeRange.

FAQ

Can postalCodeRange be a plain string?

Schema.org defines postalCodeRange with PostalCodeRangeSpecification as its expected type. Use an object with postalCodeBegin and postalCodeEnd properties.

Are postalCodeBegin and postalCodeEnd numbers?

Schema.org lists both properties as Text. Its JSON-LD example therefore represents 90001 and 96162 as quoted values.

Does this range by itself qualify a page for a Google Search feature?

The Google documentation opened here describes postalCode in its supported DefinedRegion table and does not state that postalCodeRange alone makes shipping markup eligible. Keep the Schema.org description separate from Google's feature requirements.

Sources

  1. Schema.org, "DefinedRegion", 16 September 2026
  2. Schema.org, "PostalCodeRangeSpecification", 16 September 2026
  3. Schema.org, "postalCodeRange", 16 September 2026
  4. Google Search Central, "How To Add Merchant Listing Structured Data", 8 September 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