PostalAddress structured data

The Citead team, updated

In short. PostalAddress is Schema.org's mailing address type, with separate properties for street, locality, region, postal code and country.

Definition: Schema.org defines PostalAddress as a mailing address. This structured data type describes address components through named properties such as streetAddress, addressLocality and postalCode.

Key facts

Which address components does PostalAddress describe?

The Schema.org property table assigns a meaning and an expected value type to each component. The locality belongs within the region, and the region belongs within the country.

PropertyMeaning and expected value
streetAddressThe street address, supplied as text.
addressLocalityThe locality containing the street address, supplied as text.
addressRegionThe region containing the locality, supplied as text or an AdministrativeArea object describing an administrative area.
postalCodeThe postal code, supplied as text.
addressCountryThe country, supplied as text or a Country object.
extendedAddressAn address extension, such as an apartment number or C/O, supplied as text.
postOfficeBoxNumberThe PO box number, supplied as text.

For addressCountry, the same reference recommends a two-letter ISO 3166-1 alpha-2 country code, such as US. It also accepts a three-letter code or a full country name for backward compatibility. Postal codes are text values, so JSON examples place them inside quotation marks.

How does an address fit into a business record?

LocalBusiness is a Schema.org type for a local business; Restaurant is a more specific business type. Google's local business guide instructs sites to describe each business location separately and use the most specific applicable type.

The following reduced version of Google's restaurant example retains its business name and address. The values belong to the documentation example and need replacement with the business information shown on the page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "Dave's Steak House",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "148 W 51st St",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10019",
    "addressCountry": "US"
  }
}
</script>

Here, address connects the business to its PostalAddress object. The business type and name remain outside that object. Google's property table describes this address as the physical location of the business and asks for as many address properties as possible.

How is address markup checked?

Google's general structured data guidelines require current information and a true representation of the page content. For an address, this means checking that the structured components describe the address readers can see on that page.

The local business implementation steps call for validation with the Rich Results Test and correction of critical errors. After deployment, the URL Inspection tool checks how Google sees the page. The same instructions require access without a blocking robots.txt rule, a noindex tag or a login requirement.

FAQ

Should I write a postal code as a JSON number?

Use a quoted text value. Schema.org's reference assigns postalCode the expected type Text; Google's examples follow this pattern.

Can I describe a PO box?

Schema.org provides postOfficeBoxNumber for that purpose. For a local business listing, Google's guide describes the required address as the business's physical location.

Can I put the address only in the markup?

Google's content guidelines require marked-up content to be visible to readers. Show the corresponding address in the page content as well.

Sources

  1. Schema.org, "PostalAddress", undated
  2. Google Search Central, "Local business structured data", updated 8 September 2026
  3. Google Search Central, "General structured data guidelines", updated 10 July 2026
  4. Google Search Central, "Introduction to structured data markup in Google Search", updated 10 December 2025

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