Overview
Organization and LocalBusiness describe entities rather than documents: the company behind the site and the physical places where it serves customers. Google uses them for logo and organization details, and for business details alongside local results. This card lists their fields. For document types such as Article, Product, and VideoObject, see schema-org-types; for the broader rules, see structured-data.
LocalBusiness: one block per physical location
Use LocalBusiness for brick-and-mortar businesses. Use a more specific subtype when one fits: Restaurant, Dentist, AutoRepair, etc.
| Field | Required | Notes |
|---|---|---|
@type | yes | LocalBusiness or a subtype. |
name | yes | Business name. |
address | yes | PostalAddress with all fields. |
telephone | recommended | E.164 format preferred. |
geo | recommended | GeoCoordinates with latitude, longitude. |
openingHoursSpecification | recommended | Array of OpeningHoursSpecification. |
priceRange | recommended | $, $$, etc. |
image | required for some panels | Storefront or logo. |
url | yes | Canonical URL. |
Ship one LocalBusiness block per location page, and keep its name, address, and phone identical to the Google Business Profile listing for that location. See local-seo.
Organization: declare once, reference by @id
Place the site-wide Organization entity once on the home page and reference it elsewhere by @id.
| Field | Required | Notes |
|---|---|---|
@type | yes | Organization or Corporation. |
name | yes | Legal or operating name. |
url | yes | Canonical home URL. |
logo | recommended | Square or near-square; minimum 112x112. |
sameAs | recommended | Array of social profile URLs (LinkedIn, X, Wikipedia). |
contactPoint | recommended | ContactPoint with telephone and contactType. |
sameAs tells Google which official profiles belong to the entity; list every profile the organization controls and nothing it does not.
Reference the entity by @id instead of repeating it
Give the Organization block a stable @id (the home URL plus a fragment) and point publisher and author.worksFor at it from every other page. One definition avoids conflicting copies of the name, logo, and profiles.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Co",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"sameAs": ["https://www.linkedin.com/company/example"]
},
{
"@type": "Article",
"headline": "Release notes for May",
"publisher": { "@id": "https://example.com/#org" }
}
]
}Common gotchas
- Use the most specific
LocalBusinesssubtype that fits.Dentistsays more thanLocalBusiness. - Keep the markup consistent with the visible page. An address or opening hours that the page does not show, or that contradict it, count as misleading markup.
- Use
Organizationfor the publisher andLocalBusinessfor each location; do not mark the home page of a multi-location brand as a singleLocalBusiness. - Validate with Google’s Rich Results Test, not only the schema.org validator.