Free Local Business Schema Generator
Create valid LocalBusiness JSON-LD for your website in two minutes — built for plumbers, contractors and other service-area businesses. Fill in the form, copy the code, paste it into your homepage.
- Free, no sign-up
- Google-compliant JSON-LD
- Service-area businesses
- Nothing leaves your browser
1. BusinessType, name and contact details
The most specific schema.org type that fits. Trades without their own type use “Home and construction business”.
Exactly as on your Google Business Profile.
Formatted as +1-XXX-XXX-XXXX automatically.
Storefront, team or branded vehicle.
2. LocationStorefront address or service-area base
Paste your Google Maps link, or right-click the pin in Maps and paste the numbers.
3. Areas servedCities and counties you cover
Lines with “County” or a state name are marked as administrative areas, the rest as cities. Keep it to the areas in your Google Business Profile.
4. Opening hours
- Closed
- Closed
5. ServicesWhat you offer — becomes an OfferCatalog
List your main services, e.g. “Water heater installation”, “Drain cleaning”.
6. ProfilesGoogle Business Profile and social links (sameAs)
In Google Maps: open your listing → Share → Copy link. Links the site to your Maps listing.
Facebook, Yelp, BBB, Nextdoor, Angi, Instagram, LinkedIn.
7. Extra details
Year or YYYY-MM-DD.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "08:00",
"closes": "17:00"
}
]
}
</script>- Business name is required.
- Street address, city and state are required for a business with a storefront. No storefront? Switch on “Service-area business”.
- Add your website URL — it also becomes the markup’s @id.
- Add a phone number: it must match your Google Business Profile exactly.
- Add an image URL (storefront, team or vehicle photo).
- Link your Google Business Profile in “Profiles” — it ties the website to your Maps listing.
How to use the local business schema generator
- Pick your business type. Choose the most specific type on the list — Plumber rather than Home and construction business, Dentist rather than Medical clinic. The type tells Google what kind of business the page describes.
- Fill in name, phone and address exactly as they appear on your Google Business Profile. Name, address and phone (NAP) that match everywhere are what the markup is for. A different suite number or a tracking phone number weakens the signal.
- Add hours, services, service areas and profile links. Everything beyond name and address is optional, but each property gives Google one more fact it doesn't have to guess.
- Copy the code and paste it into your site. The snippet goes into the
<head>or anywhere in the<body>of your homepage — see the platform instructions below. - Test it. Open Google's Rich Results Test, choose the Code tab, paste the snippet, and check that Local Business is detected without errors. After publishing, run the test again on your live URL.
What is LocalBusiness schema?
LocalBusiness schema is structured data — a small block of JSON-LD code — that describes your business in a vocabulary search engines read literally: the business type, name, address, phone, opening hours, the areas you serve and the services you offer. It is defined by schema.org and documented by Google in its LocalBusiness structured data guidelines.
Visitors never see it. Crawlers do: instead of inferring your hours from a footer or your phone number from a header image, they get the facts as labelled data.
What it does:
- Confirms your NAP and connects your website to your Google Business Profile and other listings through
sameAs. - Gives Google explicit opening hours, service areas and services — the details that feed knowledge panels and AI-generated answers.
- Removes ambiguity when your business name is shared with other companies.
What it doesn't do: schema is not a ranking shortcut. It won't move you into the Map Pack on its own — proximity, relevance and prominence (reviews, links, citations) decide that. Think of it as making sure Google reads your business details correctly, not as a lever that outranks competitors.
Which business type should you choose?
Use the most specific schema.org type that honestly describes the business. If your trade has no type of its own, use the closest parent rather than inventing one — Google ignores types it doesn't recognise.
| Your business | Schema.org type |
|---|---|
| Plumber | Plumber |
| Electrician | Electrician |
| HVAC, heating and cooling | HVACBusiness |
| Roofer | RoofingContractor |
| Remodeling, general contractor | GeneralContractor |
| Painter | HousePainter |
| Locksmith | Locksmith |
| Movers | MovingCompany |
| Handyman, pest control, cleaning, landscaping, pressure washing, garage doors | HomeAndConstructionBusiness |
| Auto repair | AutoRepair |
| Dentist | Dentist |
| Law firm | LegalService |
| Anything else | LocalBusiness |
For trades that share a parent type, the business name, description and services list carry the specifics — which is why the generator has a services section.
Required vs. recommended properties
Google treats two properties as required for LocalBusiness markup: name and address. Without them the markup is not eligible at all.
Everything else is recommended, and the generator covers the ones that matter for a local service business:
| Property | Why it matters |
|---|---|
telephone | Must match the phone on your Google Business Profile. Formatted with the country code (+1-512-555-0142). |
url and @id | Your homepage URL; @id gives the business a stable identifier other markup on your site can reference. |
geo | Exact latitude and longitude of a storefront. |
openingHoursSpecification | Structured hours per day, including 24/7. |
areaServed | The cities and counties a service-area business covers. |
hasOfferCatalog | Your services, each as a Service item. |
sameAs | Links to your Google Business Profile, Facebook, Yelp, BBB and other profiles. |
priceRange | A rough price level, e.g. $$. |
image and logo | A real photo and your logo, both at crawlable URLs. |
Schema for service-area businesses
Most plumbers, roofers, handymen and pest control companies don't have a storefront — they drive to customers and hide their address on Google Business Profile. Many schema generators ignore this and ask for a street address anyway.
The Service-area business switch in this generator handles it:
- The street address is left out. Google still requires an
address, so the markup keeps city, state and ZIP — enough to place the business without publishing a home address. - Coordinates are left out. Exact
geodata would reveal the location you chose to hide on Maps. areaServedlists the places you cover, marked asCityorAdministrativeArea(counties). Keep this list consistent with the service areas on your Google Business Profile, and don't pad it with every town in the state.
How to add schema markup to your website
Add the markup once, on the page that represents the business — usually the homepage. A multi-location business puts one block on each location page, each describing that location.
WordPress. The simplest route is a header-code plugin such as WPCode: create a new snippet, paste the code, and set it to load in the site header on the homepage only. If you use Rank Math or Yoast Local SEO, check whether they already output LocalBusiness markup — two competing blocks for the same business send mixed signals, so keep one.
Wix. Open the page in the editor → Page settings → SEO → Advanced SEO → Structured data markup, and paste the code — switch the generator to JSON only first, because Wix adds the <script> tags itself.
Squarespace. Page settings → Advanced → Page header code injection for the homepage. Code injection requires a Business plan or higher.
Webflow. Page settings → Custom code → Inside <head> tag, then publish.
Google Tag Manager. A Custom HTML tag firing on the homepage works — Google renders JavaScript-injected JSON-LD — but markup in the page source is read faster and by more crawlers, so use GTM only when you can't edit the site.
Common schema mistakes
- Adding review stars to your own business.
AggregateRatingandReviewmarkup about your own business on your own site is "self-serving" under Google's rules and won't show stars. This generator leaves it out on purpose. - NAP that doesn't match your Google Business Profile. A different phone, an old address or a name with extra keywords undermines exactly what the markup is supposed to confirm.
- Marking up every page. Site-wide LocalBusiness markup in the footer duplicates the same entity hundreds of times. One block on the homepage (or per location page) is enough.
- Using a type that doesn't exist.
PestControlCompanyorHandymanaren't schema.org types; Google drops them silently. Use the closest real parent. - Hours that don't match reality. Listing 24/7 when you only answer the phone at night creates bad experiences — and bad reviews.
- Forgetting to update it. New phone number, new hours, new service area: update the markup when you update your Google Business Profile.
Local business schema FAQ
It turns your business details — name, address, phone, hours, services, service areas — into LocalBusiness structured data in JSON-LD format. You paste the generated code into your website so search engines can read those details as labelled facts instead of guessing them from the page.
Not directly. Map Pack rankings are driven by proximity, relevance and prominence — reviews, links, citations and your Google Business Profile. Schema makes sure Google reads your business details correctly and ties your website to your listings. It is basic hygiene, not a ranking lever on its own.
Google supports both, but recommends JSON-LD. It lives in a single script block, doesn't touch your page's HTML, and is much easier to maintain. This generator outputs JSON-LD only.
Put it once on the page that represents the business — usually the homepage. A multi-location business adds a separate block to each location page. Don't add the same LocalBusiness block to every page of the site.
You can add the markup, but Google won't show stars for it. Reviews a business publishes about itself on its own site are treated as self-serving and are not eligible for review rich results. That's why the generator doesn't include rating fields.
Switch on Service-area business. The markup then keeps your city, state and ZIP but leaves out the street address and coordinates, and lists the cities and counties you serve in areaServed. Keep those areas consistent with your Google Business Profile.
Paste it into the Code tab of Google's Rich Results Test before publishing, then test your live URL after publishing. You can also use the Schema Markup Validator to check it against the full schema.org vocabulary.
It's free, with no sign-up. Everything runs in your browser: the form is saved locally so you can come back to it, and the share link carries the data in the URL itself. Nothing you type is sent to our servers.

Get a free local SEO audit
Schema is the easy part. We'll review your Google Business Profile, citations, reviews and service pages and send you a prioritized list of fixes.