Key takeaways
- Schema markup is structured data added to a webpage that explicitly labels entities like business name, address, hours, and ratings.
- LocalBusiness is the schema.org type for physical or local-service businesses, with dozens of more specific subtypes available.
- JSON-LD is Google’s recommended format — a single script block, separate from your visible HTML, that’s easy to validate and maintain.
- Key properties include name, address, geo coordinates, telephone, openingHours, priceRange, sameAs, and aggregateRating.
- Google’s Rich Results Test is the standard tool for validating markup before and after publishing.
- Accurate, complete schema is one of the clearest ways to help AI systems understand and correctly represent your business as an entity.
What structured data and schema actually are
Structured data is a standardized way of labeling the content on a webpage so machines don’t have to infer meaning from plain text. Instead of a search engine guessing that “Open 9am-5pm Mon-Fri” on your page means your business hours, schema markup states it explicitly: "openingHours": "Mo-Fr 09:00-17:00". The vocabulary for these labels comes from schema.org, a collaborative standard maintained by Google, Microsoft, Yahoo, and Yandex.
Google’s own documentation on structured data for local businesses is the definitive technical reference, including the full list of supported properties and eligibility requirements for rich results.
LocalBusiness and its subtypes
LocalBusiness is the base schema.org type for any business with a physical presence or a defined local service area. Rather than using the generic type, it’s almost always better to use the most specific subtype available, since it gives search engines and AI systems a clearer signal about what you actually do. Common subtypes include Restaurant, Dentist, Attorney, HomeAndConstructionBusiness, AutoRepair, Plumber, RealEstateAgent, and HealthAndBeautyBusiness, among dozens of others defined in the schema.org hierarchy.
If no subtype fits precisely, LocalBusiness itself is a perfectly valid fallback — using it correctly with complete properties is far more valuable than forcing an ill-fitting subtype just to be more specific.
Key properties to include
- name — your exact business name, matching your Google Business Profile and signage.
- address — a nested PostalAddress object with streetAddress, addressLocality, addressRegion, postalCode, and addressCountry.
- geo — latitude and longitude, which helps map and local-pack systems place you precisely.
- telephone — in a consistent, internationally readable format.
- openingHours — using schema.org’s day-abbreviation format, including special handling for 24-hour or seasonal businesses.
- priceRange — a simple indicator like “$$” or a numeric range, useful for setting customer expectations.
- sameAs — an array of URLs to your verified social profiles and other authoritative listings, which helps establish your entity across the web.
- aggregateRating and review — your review count, average rating, and optionally individual reviews, provided they’re genuine and match what’s visibly on the page.
These same properties reinforce many of the trust signals covered in what is E-E-A-T — schema doesn’t replace real trust signals, but it does make them explicit and machine-readable.
FAQ, Service, and BreadcrumbList schema
Beyond the core LocalBusiness object, three other schema types are especially useful for local business websites:
- FAQPage — marks up question-and-answer content so it can appear as an expandable rich result and be lifted directly into AI answers.
- Service — describes an individual offering (e.g., “Emergency Plumbing Repair”) with its own name, description, and area served, useful for multi-service businesses.
- BreadcrumbList — describes your site’s navigation hierarchy, which can appear as breadcrumb trails in search results and helps both crawlers and AI systems understand site structure.
Combining these with LocalBusiness markup gives a more complete picture of the business than any single schema type could alone.
JSON-LD vs. microdata
| Approach | How it works | Best for |
|---|---|---|
| JSON-LD | A single self-contained script block, separate from visible HTML | Almost all modern sites — Google’s recommended format, easiest to maintain and template |
| Microdata | Attributes (itemscope, itemprop) embedded directly in HTML tags | Legacy sites or CMS templates where the visible HTML must exactly mirror the marked-up data |
| RDFa | Similar to microdata, using RDFa attribute syntax inline | Rare today; mostly seen in older enterprise CMS implementations |
Google explicitly recommends JSON-LD where possible because it can be generated, updated, and validated independently of the page’s visible design — a developer can change the page layout without touching the schema, or update the schema without touching the layout.
A simple LocalBusiness example
Here’s an illustrative, minimal JSON-LD block for a local service business. Replace every value with your actual business details before using it:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Example Plumbing Co.",
"image": "https://example.com/storefront.jpg",
"telephone": "+1-555-123-4567",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Deerfield Beach",
"addressRegion": "FL",
"postalCode": "33441",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 26.3184,
"longitude": -80.0998
},
"openingHours": "Mo-Fr 08:00-18:00",
"sameAs": [
"https://www.facebook.com/exampleplumbing",
"https://www.google.com/maps/place/exampleplumbing"
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "137"
}
}
</script>
How to add LocalBusiness schema to your site
- Identify the correct schema.org type (LocalBusiness or the most specific subtype that matches your business).
- Gather accurate data for every property: legal name, full address, phone, hours, price range, and social profile URLs.
- Write the JSON-LD block, nesting PostalAddress and GeoCoordinates objects correctly.
- Add the script block to the page’s HTML, typically in the head or just before the closing body tag, on every page where it’s relevant (usually the homepage and location pages).
- Validate the markup with Google’s Rich Results Test before publishing.
- Publish the page, then re-test the live URL to confirm the markup renders correctly in production.
- Monitor Search Console’s Enhancements reports for errors or warnings on an ongoing basis.
Testing with the Rich Results Test
Before and after publishing, run every page’s URL or code snippet through Google’s Rich Results Test. It parses your markup, tells you which schema types it detected, flags errors and warnings, and previews what eligible rich results might look like. This step catches the majority of implementation mistakes before they ever reach a live page.
Common mistakes to avoid
- Marking up information that isn’t visible anywhere on the page — schema should describe content that’s actually there, not aspirational or fabricated data.
- Using inconsistent NAP details between schema, your Google Business Profile, and your visible page content.
- Fabricating or inflating aggregateRating values that don’t match your real review counts.
- Forgetting to update schema when hours, address, or services change.
- Nesting objects incorrectly (a common one: putting address fields directly on the LocalBusiness object instead of inside a proper PostalAddress).
- Adding schema once and never validating it again after a site redesign or CMS migration.
Why schema helps AI systems understand your entity
AI Overviews, ChatGPT, and similar tools have to resolve ambiguity fast: is “Example Plumbing” in this article the same business as the one three miles away with a similar name? Structured data resolves that ambiguity directly, providing an unambiguous, machine-readable record of exactly who you are, where you are, and what you offer. This is foundational to both answer engine optimization (AEO) and generative engine optimization (GEO) — see SEO vs. AEO vs. GEO for how these disciplines fit together, and how to rank in Google AI Overviews and ChatGPT for related tactics.
Schema is one piece of a broader local visibility strategy that also depends on a complete Google Business Profile, consistent citations, and genuine reviews — all covered in our local SEO checklist for 2026. If your schema needs an audit or a full local SEO buildout, our SEO team implements and maintains this for clients as a standard part of every engagement.
Frequently asked questions
Does adding schema markup guarantee a ranking boost?
What’s the difference between LocalBusiness and Organization schema?
Should I use JSON-LD or microdata?
How do I test my schema markup before publishing?
Can I add multiple schema types to the same page?
Get Found, Understood, and Chosen
Unified Marketing — The Search Visibility Agency™ — has helped businesses get discovered across Google, Maps, and AI since 2006. See exactly where you stand with a free visibility audit.
Get a free audit or call (954) 758-7200.