Local schema
Local schema markup is structured data added to a website's HTML that explicitly communicates business information to search engines in a machine-readable format. For local businesses, schema supports entity clarity, reinforces NAP data, and in some cases enables enhanced search result features. It does not directly cause a business to rank higher — but it helps search engines understand exactly what your business is, where it operates, and how to describe it accurately.
How structured data supports local business entity clarity
Search engines use signals from many sources — your website, GBP, citations, reviews, and social profiles — to build an understanding of your business as an entity. Schema markup on your website is one of the most explicit, machine-readable signals you can provide.
When your schema says: "This is a LocalBusiness of type Dentist, named Acme Dental, at 123 Main St, open 9–5 Monday–Friday, phone 555-1234" — it removes ambiguity and reinforces the same information you want to appear consistently across all local presence surfaces.
Learning objectives
After completing this module, you will be able to:
- Understand how structured data supports local business entity clarity.
- Select and implement the correct schema types for local businesses.
- Avoid common schema misuse patterns that create validation errors or guideline violations.
Core schema types for local businesses
LocalBusiness and subtypes
The base type is LocalBusiness, but always use the most specific subtype that accurately describes the business:
| Business type | Schema subtype |
|---|---|
| Restaurant | Restaurant |
| Dentist | Dentist |
| Medical clinic | MedicalClinic |
| Hair salon | HairSalon |
| Plumber | Plumber (under HomeAndConstructionBusiness) |
| Lawyer | LegalService |
| Hotel | Hotel |
The full hierarchy is available at schema.org/LocalBusiness. Using a generic LocalBusiness when a specific subtype exists is a missed opportunity for entity precision.
Key properties
Essential:
name— the business name, exactly as it appears in GBP.address(PostalAddress) — street, city, state/region, postal code, country.telephone— local phone number.url— the URL of the page (or the business's main website).openingHoursSpecification— structured hours using day names and open/close times.
Recommended:
geo(GeoCoordinates) — latitude and longitude.sameAs— links to the business's GBP, social profiles, Wikipedia, and other authoritative external pages.areaServed— service area (useful for SABs).hasMap— link to a Google Maps embed or business map.image— a representative photo of the business.priceRange— a price indicator (e.g., "$" to "$$$$").servesCuisine(for restaurants).
Location page schema vs organization schema
On location pages: Use LocalBusiness (or specific subtype) with the location-specific address, phone, and hours. Each location page should have its own location-specific schema.
On homepage or about page: Use Organization schema when the page represents the overall company, not a specific location. Include sameAs links and the primary business contact.
Applying LocalBusiness schema on a homepage that shows no location-specific information creates a mismatch between schema and visible content — a guideline violation.
Review schema restrictions
AggregateRating or Review schema can be added to local business pages only when the ratings or reviews are directly visible and readable on the page itself. Google explicitly prohibits:
- Adding review schema for reviews hosted on third-party platforms (Google, Yelp) unless you are republishing them visibly on your page.
- Fabricating review data.
- Using schema to claim ratings that users cannot see on the page.
Misusing review schema is one of the most common reasons local businesses lose eligibility for review rich results.
Implementation outline
Step 1: Choose the most specific business subtype
Review the schema.org hierarchy and select the subtype that best matches your business type.
Step 2: Match schema to visible page content
Every property you mark up should correspond to content the user can read on the page. Schema is meant to describe visible content — not to add invisible signals.
Step 3: Add NAP, hours, URL, phone, and map details
These must exactly match your GBP and citation data. Inconsistencies between schema, GBP, and citations weaken the entity signal.
Step 4: Use location-specific schema on location pages
For multi-location businesses, each location page gets its own schema block with the address, phone, and hours for that specific location.
Step 5: Use organization schema on about/home pages
For the company-level pages, add Organization schema with sameAs links to all authoritative business profiles.
Step 6: Validate
Test with Google's Rich Results Test and schema.org's validator. Resolve any errors before deployment.
Example: basic LocalBusiness schema (JSON-LD)
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Acme Plumbing",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"telephone": "+1-555-123-4567",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00",
"closes": "18:00"
}
],
"url": "https://www.acmeplumbing.com",
"sameAs": [
"https://www.google.com/maps/place/Acme+Plumbing",
"https://www.yelp.com/biz/acme-plumbing"
]
}
Checklist
- Business type uses the most specific available schema subtype.
- NAP matches visible content, GBP, and major citations exactly.
- Hours and phone number are current and accurate.
- Location pages each have location-specific schema.
- Schema validates without critical errors in Rich Results Test.
- Review markup follows current guidelines (only for visibly displayed reviews).
Measurement
| Metric | What it tracks |
|---|---|
| Schema validation status | Technical correctness |
| GSC enhancement reports | Rich result eligibility where applicable |
| Local page impressions and CTR | Organic visibility from local pages |
| Entity consistency across profiles | Alignment between schema, GBP, and citations |
Common mistakes
Adding schema for fake or inaccurate locations. Creating schema for a business location that does not physically exist is a guideline violation and may trigger GBP issues.
Using generic LocalBusiness when a specific subtype exists. Using the base type when a precise subtype is available misses an opportunity to communicate entity specificity.
Marking up reviews not visible on the page. Review schema for third-party reviews not displayed on your page violates Google's guidelines. Only mark up reviews you actually display.
Letting hours or phone data become outdated. Schema that contradicts current GBP data or visible page content creates inconsistency that can confuse entity matching. Keep schema synchronized with operations.
Using schema as a substitute for useful content. Schema describes content — it does not create it. A thin location page with perfect schema is still a thin page.