How to Use Schema Markup for a Local Business
A step-by-step guide to implementing LocalBusiness schema markup — what it tells Google, which properties matter most for local rankings, and how to validate your code.

Schema markup is structured data you add to your website's HTML that tells Google's crawlers exactly what your business is, where it operates, when it's open, and what it offers — in a machine-readable format that eliminates guesswork. For local businesses, the LocalBusiness schema type is one of the most direct signals you can send to confirm the information in your Google Business Profile.
Most local businesses skip schema entirely or implement it incompletely. That is a competitive gap worth closing, because schema-enhanced pages are more likely to trigger rich results, more likely to be cited by AI Overviews, and more likely to rank with confidence in the Map Pack when the structured data corroborates your GBP. This guide covers exactly how to implement it correctly.
What is LocalBusiness schema and what does it do for local SEO?
LocalBusiness schema is a vocabulary from Schema.org that provides a standardized way to describe a brick-and-mortar or service-area business to search engines. When Google's crawler reads your LocalBusiness markup, it can confidently confirm your business name, address, phone number, hours, and service types without inferring them from body text — reducing ambiguity and reinforcing NAP consistency across your site and your GBP.
NAP corroboration: schema markup on your homepage and contact page that exactly matches your GBP reinforces the same data from a second source — a positive signal for local ranking.
Rich result eligibility: correctly implemented schema can trigger knowledge panel enhancements, FAQ rich results, and review stars in organic listings.
AEO citation potential: in 2025, AI Overviews increasingly pull structured data to populate local answers. Schema-marked-up businesses are cited at higher rates than those relying on body text alone.
Specific schema subtypes (Restaurant, MedicalBusiness, LegalService, Plumber) inherit LocalBusiness properties and add vertical-specific fields that match your GBP category — use the most specific type available.
Which schema properties matter most for a local business?
Not all schema properties carry equal weight. The properties Google uses most actively for local disambiguation are name, address (with full PostalAddress breakdown), telephone, url, openingHoursSpecification, geo (latitude/longitude), and priceRange. Image and aggregateRating are used for rich results. Treating all properties as equally important leads to bloated, unmaintained markup — focus on the high-signal properties first.
@type: use the most specific subtype for your business — Plumber, Restaurant, Dentist, LegalService, etc. These inherit all LocalBusiness fields.
name: your exact business name as it appears on your GBP — character for character.
address → PostalAddress: streetAddress, addressLocality (city), addressRegion (state), postalCode, addressCountry.
telephone: exact format matching your GBP phone — Google uses this for NAP reconciliation.
openingHoursSpecification: full weekly hours including closed days — separate objects per day or day range.
geo → GeoCoordinates: latitude and longitude for your exact pin location — critical for proximity disambiguation.
url: your canonical homepage URL, not a tracking URL.
aggregateRating: your review score and count (keep this in sync with your actual GBP rating or omit it — stale data harms trust).
How do you write LocalBusiness schema in JSON-LD?
Google recommends JSON-LD as the preferred schema format — it lives in a script tag in your page's head section, separate from the visible HTML, making it easy to update without touching your design. Here is a minimal but complete LocalBusiness JSON-LD block for a plumbing company as an example of correct structure:
Wrap the JSON in a <script type="application/ld+json"> tag in your <head>.
Set "@context": "https://schema.org" and "@type": "Plumber" (or your specific type).
Include "name", "address" (with full PostalAddress), "telephone", "url", "openingHoursSpecification", and "geo".
Place this markup on your homepage and your contact page at minimum — optionally on each service/location page.
If you have multiple locations, each location page gets its own schema block with that location's specific NAP and hours.
How do you validate and test your schema implementation?
Google provides two free tools for schema validation: the Rich Results Test (search.google.com/test/rich-results) checks whether your schema is eligible for rich results and shows detected errors; Google Search Console's Enhancements report shows whether your live pages have structured data errors or warnings at scale. Run both after implementation and after any site update that touches the head section.
Rich Results Test: paste your URL or raw HTML — shows detected schema types, properties, and any validation errors.
Schema Markup Validator (validator.schema.org): checks schema validity against the Schema.org spec independently of Google's rich result requirements.
Google Search Console > Enhancements: monitors for schema errors across your entire site, not just test pages.
Common errors to fix: missing required properties, mismatched business name vs GBP, hours in wrong format (use ISO 8601: "Mo-Fr 08:00-17:00"), and stale aggregateRating data.
Schema markup is not a ranking shortcut — it is a trust amplifier. It helps Google confirm what it already suspects about your business, reducing the uncertainty that suppresses local rankings.
Should each service page have its own schema?
Yes, if you have dedicated location or service-area pages, each one should carry a LocalBusiness schema block with its own address and hours. For service pages that are not location-specific (e.g., "residential plumbing services"), you can include Service schema nested within your LocalBusiness block, using the hasOfferCatalog or makesOffer properties to describe individual services. See how local keyword research informs which service pages to build. For the broader context of what technical signals support local rankings, start with what is local SEO and why businesses need it.
Does LocalBusiness schema directly boost Map Pack rankings?
Schema does not directly appear in the Map Pack ranking algorithm the way GBP signals and reviews do. Its value is indirect: it reinforces NAP consistency, increases confidence in your business data, and expands your eligibility for rich results that improve click-through rates from organic listings. Treat it as a trust signal, not a ranking lever.
What is the difference between LocalBusiness and Organization schema?
Organization schema describes a corporate entity — its brand, social profiles, and contact information — without location-specific properties like opening hours or geo coordinates. LocalBusiness schema is a subtype of Organization that adds location, hours, price range, and service area data. For any business with a physical presence or a defined service area, LocalBusiness (or a more specific subtype) is always the correct choice.
Sources
- Google Search Central — LocalBusiness schema documentation and structured data guidelines. developers.google.com/search
- Schema.org — full LocalBusiness type specification and property reference. schema.org/LocalBusiness
- Moz — structured data and local SEO impact analysis. moz.com
Want your local schema implemented and validated correctly? Book a free Brand & Tech Assessment and we'll audit your technical local SEO from the ground up.
Book a free Brand and Tech Assessment to see exactly how we would grow your organic visibility.

