Skip to content
Tanner
Preserve
All guides
Get found

LocalBusiness schema: help Google read your business

7 min readUpdated July 1, 2026
01

What schema is and what it actually does

Schema markup is a small block of code on your website that tells Google, in a format it reads directly, exactly what your business is: your name, phone number, address, hours, and the towns you serve. Visitors never see it. Google does.

Without it, Google guesses. It scrapes your pages and tries to piece together whether the address in your footer is your shop or a job site, and whether the phone number there matches the one on your Google Business Profile. Schema removes the guessing.

Be honest with yourself about what it won't do. Schema is not a ranking rocket. It's plumbing. It makes your business information unambiguous to the machine deciding whether to show you for "furnace repair near me," and it makes you eligible for richer listings (hours shown right in the search result, for example). Google decides when to show those, but you can't get them without the markup.

02

Pick your business type

Schema has specific types for most trades, and using the specific one beats the generic one. These are exact machine values, so type them with this exact capitalization:

  • Plumber
  • Electrician
  • HVACBusiness
  • RoofingContractor
  • GeneralContractor
  • HousePainter
  • Locksmith
  • MovingCompany
Field note

Landscaping, pest control, or cleaning? There's no dedicated type for those. Use HomeAndConstructionBusiness for landscaping, and plain LocalBusiness for the rest. Generic and correct beats specific and wrong.

03

Gather your details first (10 minutes)

Do this before you touch any code, and pull everything from your Google Business Profile so the two match exactly. Open business.google.com, click Edit profile, and copy these out:

  • Business name, character for character. If Google has "Badger Plumbing LLC," don't write "Badger Plumbing" in your schema.
  • Street address, city, state, and zip.
  • Phone number in one format. Pick (262) 555-0147 or 262-555-0147 and use that same format everywhere on your site.
  • Your hours, day by day.
  • Map coordinates: open Google Maps, right-click on your building, and click the coordinates at the top of the menu to copy them.
  • Links to your Facebook or Instagram pages, if you have them.
04

Fill in this template

This is the whole thing. Copy it, swap in your details, and keep the quotes and commas exactly as they are. One missing comma breaks the block, so change only the values.

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Plumber", "name": "Badger Plumbing LLC", "url": "https://www.badgerplumbing.com", "telephone": "(262) 555-0147", "image": "https://www.badgerplumbing.com/photos/truck.jpg", "priceRange": "$$", "address": { "@type": "PostalAddress", "streetAddress": "123 W Main St", "addressLocality": "Waukesha", "addressRegion": "WI", "postalCode": "53186", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 43.0117, "longitude": -88.2315 }, "openingHoursSpecification": [{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "07:00", "closes": "17:00" }], "areaServed": ["Waukesha", "Pewaukee", "Brookfield", "Delafield"], "sameAs": [ "https://www.facebook.com/badgerplumbing" ] } </script>

A few notes on the fields. The image link should point to a real photo already on your site (your truck, your storefront). priceRange is loose, "$$" means mid-priced, "$$$" means premium. Hours use 24-hour time, so 5pm is "17:00". areaServed is your list of towns, and it's fine to list eight or ten. If you're closed weekends, just leave Saturday and Sunday out.

05

Put it on your site

The block goes in the head section of your homepage. Every website platform has a spot for this:

  • WordPress: install the free WPCode plugin (Plugins > Add New Plugin, search "WPCode"). Then go to Code Snippets > Header & Footer and paste the whole block into the Header box. Save. Alternative: the free Rank Math SEO plugin has a Local SEO module that builds this markup from a settings form, no code needed.
  • Wix: open your site editor, go to Pages, click the three dots next to your homepage, choose SEO basics, open the Advanced SEO tab, and paste the block (without the script tags) under Structured data markup.
  • Squarespace: Settings > Advanced > Code Injection, paste the full block into the Header field. This needs the Business plan or higher.
  • Someone else built your site: email them the finished block and say "add this JSON-LD to the head of the homepage." It's a five minute job for them.
Field note

Put it on the homepage once. Don't paste the same block on every page, and if you later build separate pages for each town you serve, those pages can carry their own version. One block per page, max.

06

Test it, then keep it in sync

Go to search.google.com/test/rich-results, paste your homepage address, and run the test. It fetches your live page and tells you whether Google can read the markup. Warnings about optional fields are fine to leave. Errors are not, and the most common ones are a missing comma, a missing quote, or a field name you accidentally changed. For a stricter second opinion, validator.schema.org checks the same code against the full standard.

From here on, the job is consistency. When your hours change, change them in three places: your website footer, your Google Business Profile (Edit profile > Hours), and this schema block. When Google sees the same name, address, and phone everywhere, it can connect your website to your profile with confidence, and mismatches are one of the quiet reasons a business slips in local results. Put a note in your phone to recheck all three spots twice a year.

Common questions

Questions that come up

Will this make me rank higher?

Not directly, and anyone who promises that is selling something. What it does is remove ambiguity about who you are, where you are, and when you're open, which supports everything else you do for local search. Think of it as a requirement, not a boost.

I already have a Google Business Profile. Isn't that enough?

They're two different things that reinforce each other. Your profile is what shows in the map pack. Schema is how your website confirms those same facts to Google. When both say the same thing, Google trusts both more.

Can I use schema to get review stars under my search result?

Not from reviews on your own site. Google stopped showing stars from self-serving review markup back in 2019, so marking up your own testimonials won't produce stars and can look manipulative. Earn reviews on your Google Business Profile instead.

I run the business from home and don't list my address publicly. What do I put?

Don't publish a street address in schema that you hide everywhere else. Leave out the streetAddress line, keep city, state, and zip, and lean on areaServed to spell out the towns you cover. That matches how a service-area business is set up on a Google Business Profile.

Or skip the homework

Rather I just did this?

Fair. The audit shows where your site actually stands in about a minute, then you decide. No email required, no pressure, just the truth.