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. It tells Google's crawlers exactly what your business is. It shows where you operate, when you are open, and what you offer. The format is machine-readable, so there is no guesswork. For local businesses, local business schema markup uses the LocalBusiness type. It is one of the most direct signals you can send. It confirms the information in your Google Business Profile.
Most local businesses skip schema entirely. Others set it up but leave it incomplete. That is a gap worth closing. Schema-enhanced pages are more likely to trigger rich results, and they get cited by AI Overviews more often. They also tend to rank well in the Map Pack when the structured data matches your GBP. This guide shows you how to implement it properly.
What is LocalBusiness schema and what does it do for local SEO?
LocalBusiness schema is a vocabulary from Schema.org. It gives you a standard way to describe your business to search engines. This works for a storefront or a service-area business. When Google's crawler reads your LocalBusiness markup, it confirms key facts. It reads your business name, address, phone number, hours, and service types. It does not have to guess them from body text. This cuts confusion. It also reinforces NAP consistency across your site and your GBP.
NAP corroboration: your homepage and contact page both carry schema markup. It should match your GBP exactly. That backs up your NAP from a second source. Google reads it as a positive signal for local ranking.
Rich result eligibility: set your schema up right and it can do more. It can trigger knowledge panel enhancements. It can add FAQ rich results too. It can even add review stars to your organic listings.
AEO citation potential: in 2025, AI Overviews pull more structured data. They use it to fill local answers. Sites with schema markup get cited more often. Those that lean on body text alone get cited less.
Some of these subtypes inherit all of the LocalBusiness properties. Then they go on to add even more. A few of them are Restaurant and MedicalBusiness. Others include LegalService and Plumber. Each one adds fields for its own industry. That way it matches your GBP category. So pick the most specific type that you can.
Which schema properties matter most for a local business?
Not all schema properties carry equal weight. Some matter far more for telling local businesses apart. The key ones are name, telephone, and url. You will also want to add priceRange. Then there is address, which takes a full PostalAddress. There is also geo, which takes a latitude and a longitude. There is one more to add, and that is openingHoursSpecification. Image and aggregateRating are the ones that help with rich results. Treat every property the same and your markup gets bloated and hard to maintain. So you should focus on the high-signal ones first.
@type: use the most specific subtype you can. That could be a Plumber, a Restaurant, a Dentist, or a LegalService. They will all inherit the LocalBusiness fields for you.
name: use your exact business name here. Match your GBP, character for character.
address → PostalAddress: this one breaks down into a few parts. The first is the streetAddress. Then you have the addressLocality, which is your city. Next is the addressRegion, which is your state. Last of all are the postalCode and the addressCountry.
telephone: use the exact format that matches your GBP phone. Google uses this to reconcile your NAP.
openingHoursSpecification: list your full weekly hours here. Include the days you are closed. Use a separate object for each day or day range.
geo → GeoCoordinates: this one holds two values for you. One of them is the latitude. The other is the longitude. Together they mark your exact pin on the map. This helps Google tell nearby businesses apart.
url: use your canonical homepage URL here, not a tracking URL.
aggregateRating: your review score and count. Keep this in sync with your actual GBP rating, or leave it out, since 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. It sits apart from the visible HTML, so you can update it without touching your design. Here is a minimal but complete LocalBusiness JSON-LD block for a plumbing company. It shows you the correct structure:
Wrap the JSON in a script tag inside your <head>. Use <script type="application/ld+json"> as the tag.
Set "@context": "https://schema.org" and "@type": "Plumber", or your own specific business type.
Include a few core fields here to start. First add "name" and "address", with a full PostalAddress. Next add "telephone" and "url". Then add "openingHoursSpecification" and "geo".
Place this markup on your homepage and contact page at a minimum. You can also add it to each service or location page.
Have multiple locations? Give each location page its own schema block. Each block carries that page's own NAP and hours.
How do you validate and test your schema implementation?
Google gives you two free tools to validate schema. The first is the Rich Results Test at search.google.com/test/rich-results. It checks whether your schema can earn rich results and shows any errors it finds. The second is the Enhancements report in Google Search Console. It surfaces structured data errors and warnings across your live pages at scale. Run both after you set up schema, and run them again after any update that touches the head section.
Rich Results Test: paste in your URL or raw HTML. It shows the schema types it detects, along with their properties and any validation errors.
Schema Markup Validator (validator.schema.org): this checks your schema against the Schema.org spec. It runs on its own, apart from Google's rich result requirements.
Google Search Console > Enhancements: this watches for schema errors across your whole site. It covers every page, not just the ones you test.
Common errors to fix: the first is missing required properties. Another is a business name that does not match your GBP. A third is hours in the wrong format, so use ISO 8601, like "Mo-Fr 08:00-17:00". The last is 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. That cuts the uncertainty that holds local rankings down.
Should each service page have its own schema?
Yes. Do you have your own location or service-area pages? Then each one needs its own LocalBusiness schema block. Give each block its own address and its own hours. Some service pages are not tied to one spot. A good example is "residential plumbing services." For those, you can nest a Service schema in your LocalBusiness block. Then use the hasOfferCatalog or makesOffer properties to list each service. See how local keyword research informs which service pages to build. To see the wider picture of the technical signals behind local rankings, start with what is local SEO and why businesses need it.
Does LocalBusiness schema directly boost Map Pack rankings?
Schema does not feed the Map Pack ranking algorithm directly. GBP signals and reviews do that. The value of schema is indirect. It backs up your NAP consistency. It builds trust in your business data. It also widens your shot at rich results. Those results lift click-through rates from organic listings. So treat schema as a trust signal, not a ranking lever.
What is the difference between LocalBusiness and Organization schema?
Think of Organization schema as a way to describe a company as a whole. It covers the brand, its social profiles, and its contact details. It leaves out local data, like your hours or your geo coordinates. The LocalBusiness schema is a subtype of it. It adds your location, your hours, and your price range. It also adds your service area data. Say your business has a real address or a set service area. Then the LocalBusiness type is always the right pick for you. A more specific subtype can work too.
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 for a full audit of your technical local SEO from the ground up.
Book a free Brand and Tech Assessment to see exactly how Through The Glass Creatives would grow your organic visibility.
Why Through The Glass Creatives
Understanding the strategy is the easy part. Doing it at a level that truly moves your business is the hard part. That is where most teams stall. That is the work of Through The Glass Creatives. TTGC is a premium brand, growth, and AI/development studio. It is led by Mherie Vic Palomo-Prevendido, who heads growth and SEO strategy. Ravve Jay Prevendido leads creative direction and AI/dev engineering. Elite brand thinking paired with hands-on technical work is rare. That is why TTGC is the team to deliver work like this the right way. Book a free Brand and Growth Assessment to see how.









