What LocalBusiness schema describes
LocalBusiness is a type in the schema.org vocabulary for businesses with a physical presence or a defined local service area. It inherits properties from Organization and Place, so it can describe both who the business is and where it operates.
The core properties for most local businesses:
| Property | What it holds | Example |
|---|---|---|
| @type | The most specific business type | Plumber, Dentist, Attorney, AutoRepair |
| name | Real business name | Desert Breeze Plumbing |
| address | Street address as a PostalAddress | Street, city, state, ZIP, country |
| telephone | Main phone number | +1-602-555-0142 |
| url | The business website or location page | Location page URL |
| openingHoursSpecification | Days and hours open | Monday–Friday 07:00–17:00 |
| geo | Latitude and longitude | 33.5092, -112.0278 |
| areaServed | Cities or areas served | Phoenix, Glendale, Peoria |
| sameAs | Official profiles | Google Maps, Facebook, Yelp, LinkedIn |
| logo and image | Brand logo and a photo of the business | Image URLs |
Google lists name and address as required for LocalBusiness and recommends several others, including telephone, url, geo, openingHoursSpecification and priceRange.
Choosing the right subtype
Schema.org offers many LocalBusiness subtypes, such as HomeAndConstructionBusiness with children like Plumber, Electrician, HVACBusiness and RoofingContractor; MedicalBusiness with Dentist and Physician; LegalService with Attorney; FoodEstablishment with Restaurant; and AutomotiveBusiness with AutoRepair. Using the most specific accurate subtype gives search engines a clearer signal than the generic LocalBusiness type.
The subtype should match what the business actually is, just as the primary category on your Google Business Profile should.
Storefronts versus service-area businesses
Storefront businesses
A storefront includes its full address, geo coordinates and opening hours. The address must match the Google profile and the visible page exactly.
Service-area businesses
Many Phoenix businesses hide their address on Google because they travel to customers. Their markup should reflect that: include the city, state and ZIP if appropriate, list the areas served with areaServed, and avoid publishing a home address in markup that the business keeps private everywhere else. Consistency with the public profile is the goal.
Multi-location markup
For businesses with several locations, each location page carries its own LocalBusiness markup describing that location only: its address, phone, hours and coordinates. Each location can reference the parent organization, for example through the parentOrganization property, so the relationship is clear. The homepage describes the organization as a whole rather than repeating every location. Our multi-location SEO service handles the location pages themselves.
Matching the markup to everything else
LocalBusiness markup is one source among many that describe your business. It should agree with:
- The visible content on the same page.
- Your Google Business Profile.
- Your citations and directory listings.
When details change, the markup changes too. A schema block left over from before a move, still showing the old address, sends exactly the conflicting signal that NAP consistency work aims to remove.
The sameAs property
sameAs lists URLs of official profiles that represent the same business, such as its Google Maps listing, Facebook page, LinkedIn page, Yelp listing and industry profiles. It helps connect the website to those profiles as the same entity. Only include profiles the business owns or that clearly represent it.
Hours that reflect reality
Opening hours in markup should match the Google profile, including special cases:
- Different hours on different days.
- Seasonal hours, such as earlier start times in summer for outdoor trades.
- 24-hour availability, only if a person genuinely answers around the clock.
If hours change for holidays, the Google profile's special hours feature handles that; the markup should still describe the regular schedule accurately.
Example: markup for a Phoenix service-area business
For a pool service company that works across the Valley and hides its address, a typical LocalBusiness block would include:
- @type: a fitting subtype, or HomeAndConstructionBusiness if no closer subtype exists.
- name: the exact business name from signage and the Google profile.
- telephone: the main business number.
- url: the homepage.
- address: a PostalAddress with the city, state and ZIP only, matching what the business shows publicly.
- areaServed: the main cities served, such as Phoenix, Scottsdale, Tempe and Chandler.
- openingHoursSpecification: office hours when the phone is answered.
- sameAs: the Google Maps listing, Facebook page and Yelp page.
- logo and image: the brand logo and a photo of the team or a service vehicle.
Every one of those facts also appears on the visible site, and matches the Google profile.
Geo coordinates and the address pin
The geo property holds the latitude and longitude of the business. For storefronts, use the coordinates of the actual entrance or building, not the center of a ZIP code. They should match where the Google Business Profile pin sits. For large shopping centers or business parks, getting the coordinates right helps make sure every source points customers to the same spot.
Price range and payment details
Some businesses add priceRange, a short text such as "$$" or a range, and details such as accepted payment methods or currencies. These properties are optional but can add useful context when accurate. We include them only when they reflect real, current information.
Where the markup lives on the site
For a single-location business, LocalBusiness markup usually belongs on the homepage and contact page, with other pages referencing the same entity by its identifier rather than repeating the full block. For multi-location businesses, each location page carries its own block. Placing markup in page templates, rather than pasting it by hand into individual pages, keeps it consistent when the site changes.
What LocalBusiness schema cannot do
LocalBusiness markup does not by itself move a business into the map pack. Map pack rankings depend on the Google Business Profile, relevance, distance and prominence. The markup's role is supportive: it confirms the business details on the website in a precise, consistent format. It also does not produce review stars for the business's own reviews in search results, which Google does not show for LocalBusiness and Organization markup about the business itself.
Validating the markup
We validate every implementation with:
- Google's Rich Results Test, which checks markup against Google's requirements.
- The Schema Markup Validator, which checks general schema.org validity.
- Search Console, which reports structured data issues across the site after Google crawls it.
We also compare the markup line by line with the Google profile, because validation tools check format, not whether the details are correct.
Common LocalBusiness schema mistakes
- Using the generic LocalBusiness type when a specific subtype fits.
- A different phone number in markup than on the page or Google profile.
- Old addresses left in theme settings or plugins after a move.
- Several plugins each adding their own LocalBusiness markup with different details.
- Listing every city in Arizona under areaServed.
- Adding self-written review ratings expecting stars in search results.
Our process
- Collect canonical details for each location: name, address or service area, phone, hours, coordinates and official profiles.
- Audit existing markup from themes, plugins and past developers.
- Remove conflicting markup.
- Implement LocalBusiness markup with the most specific subtype, connected to the organization and page graph described in our structured data service.
- Validate and compare with the Google profile.
- Document where the markup lives, so future changes are easy.
When to update your markup
Update LocalBusiness markup whenever any of these change: business name, address, phone number, hours, website URL, a new or closed location, or the switch between storefront and service-area operation. Making the change on the same day as the Google profile and website keeps every source aligned.