Schema markup for local business is structured data, usually written in JSON-LD, that tells search engines and AI systems exactly what your business is, where it’s located, when it’s open, and how customers rate it — in a format machines can parse without guessing. Implementing LocalBusiness schema correctly helps you earn rich results in Google, feeds accurate facts into AI Overviews and chatbot answers, and removes ambiguity about your name, address, and services. This guide covers what to include, how to add it, and how to test it.

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

ApproachHow it worksBest for
JSON-LDA single self-contained script block, separate from visible HTMLAlmost all modern sites — Google’s recommended format, easiest to maintain and template
MicrodataAttributes (itemscope, itemprop) embedded directly in HTML tagsLegacy sites or CMS templates where the visible HTML must exactly mirror the marked-up data
RDFaSimilar to microdata, using RDFa attribute syntax inlineRare 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

  1. Identify the correct schema.org type (LocalBusiness or the most specific subtype that matches your business).
  2. Gather accurate data for every property: legal name, full address, phone, hours, price range, and social profile URLs.
  3. Write the JSON-LD block, nesting PostalAddress and GeoCoordinates objects correctly.
  4. 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).
  5. Validate the markup with Google’s Rich Results Test before publishing.
  6. Publish the page, then re-test the live URL to confirm the markup renders correctly in production.
  7. 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?
No. Schema markup doesn’t directly boost rankings, but it can make you eligible for rich results, helps prevent misinterpretation of your business information, and gives AI systems a clear, accurate source to draw from — all of which support visibility indirectly.
What’s the difference between LocalBusiness and Organization schema?
Organization is a broader type for any company, including ones with no physical local presence. LocalBusiness is a subtype of Organization specifically meant for businesses that serve customers at a physical location or within a defined local service area, and it supports local-specific properties like address, geo, and openingHours.
Should I use JSON-LD or microdata?
JSON-LD is Google’s recommended format for nearly all sites because it’s self-contained, easier to generate programmatically, and simpler to validate without touching the page’s visible HTML. Microdata is mostly seen in legacy implementations today.
How do I test my schema markup before publishing?
Use Google’s Rich Results Test, which accepts either a live URL or a raw code snippet, parses the markup, and reports detected schema types along with any errors or warnings.
Can I add multiple schema types to the same page?
Yes. It’s common and valid to include LocalBusiness, FAQPage, and BreadcrumbList schema on the same page, either as separate script blocks or combined using an @graph array.

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.