Free tool · Get found
Local business schema generator
Structured data is the one part of SEO with a genuinely correct answer — and getting it slightly wrong means it is silently ignored. Fill in your details and get valid LocalBusiness JSON-LD, with every field populated from something you actually typed.
Pick the most specific type that genuinely fits. Every option here exists in the schema.org vocabulary — invented types are ignored.
Leave blank if customers never visit you.
Two letters — US, GB, CA, AU.
Conventionally "$" to "$$$$". Optional.
Comma separated. Name real towns or suburbs — an entire state helps nobody.
One per line, up to twenty.
Your structured data
- Business name is required — without it the markup does nothing.
- A website URL is required so the markup can be tied to a page.
- No phone number. Local markup without one loses most of its value.
- No city. Location is the whole point of LocalBusiness markup.
- No street address. That is correct for a service-area business with no premises customers visit — and wrong if you have a shopfront.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"address": {
"@type": "PostalAddress",
"addressCountry": "US"
},
"priceRange": "$$",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "https://schema.org/Monday",
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "https://schema.org/Tuesday",
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "https://schema.org/Wednesday",
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "https://schema.org/Thursday",
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "https://schema.org/Friday",
"opens": "08:00",
"closes": "17:00"
}
]
}
</script>Where this goes
Paste the whole block into the <head> of your homepage, or anywhere in the page body — both are valid. Put it on one page only, the page that best represents the business, and then check it with Google’s Rich Results Test before you forget about it.
What this cannot tell you
Structured data describes your business to a search engine; it does not make you rank. Google treats it as a hint, uses it to build some result features, and ignores markup that contradicts what is visible on the page — so everything here must also appear as text somewhere on your site. LocalBusiness markup in particular does not produce a star-rating snippet: self-serving review markup is explicitly disregarded, and any tool promising you stars from your own site is wrong. This generator also cannot verify your address exists or your phone number works.
The link reopens this page with your exact result already filled in.
Structured data should not be a copy-paste chore.
A Black Nile site emits correct LocalBusiness markup from the details you already gave it — hours, services, service area and all.
The short answer: LocalBusiness JSON-LD is a small block of code that states your name, address, phone, hours, services and service area in a format search engines parse directly rather than inferring from your page. It does not make you rank — Google treats it as a hint and ignores markup that contradicts your visible content — but it removes ambiguity about who and where you are, and it powers some result features. It is worth generating rather than writing because the failure mode is silent: a wrong time format or an invented business type produces markup that is simply skipped, with nothing to tell you.
This runs entirely in your browser. Nothing you type here is sent to us or to anyone else — there is no server call, no account, and no email required to see your result or take it away with you. Your address and hours are assembled in this tab and never sent to us.
How to generate and install your schema
Fill it in, paste it in, then verify it with Google's own tool.
- Pick the most specific business type that genuinely fits. Every option in the list exists in the schema.org vocabulary.
- Fill in your name, website, phone and address. Leave the street address blank if customers never visit you.
- Add the towns you actually serve, comma separated. An entire state helps nobody.
- List your services one per line — each becomes an entry in an offer catalogue.
- Set your opening hours. Days marked closed are simply omitted rather than emitted as empty.
- Copy the whole script tag and paste it into the head of your homepage, then check it with Google's Rich Results Test.
Everything in the markup must also appear as visible text somewhere on your site. Markup that contradicts the page is ignored, and markup describing things not on the page at all is at best pointless.
What structured data actually does, and what it does not
Worth being clear before you spend twenty minutes on it.
Structured data tells a search engine, in a format it does not have to guess at, that this page is about a business of this type, at this address, open at these times, offering these services. Without it, the engine infers all of that from your visible text, which it is quite good at and occasionally wrong about.
What it does is remove ambiguity and make certain result features possible. What it does not do is make you rank. Google has been consistent that structured data is not a ranking factor in itself; it helps understanding, and understanding sometimes helps ranking, but nobody has ever moved up the map pack purely by adding markup.
It is also worth knowing what LocalBusiness markup specifically will not get you. It will not produce a star rating in your search result — self-serving review markup, meaning reviews about yourself on your own site, is explicitly disregarded. Any tool promising you stars from markup on your own domain is wrong, and it has been wrong for years.
So the honest case for spending twenty minutes here is: it is cheap, it is unambiguous, it occasionally unlocks a result feature, and it means a search engine never has to guess whether "Boise" on your page is your location or a service area. That is a modest and real benefit.
Choosing the right business type
The one field where being specific genuinely matters.
The schema.org vocabulary has a hierarchy under LocalBusiness — Plumber, Electrician, HairSalon, Restaurant, Dentist and many more. Using the most specific type that genuinely fits is better than using the generic one, because it carries more information.
The critical constraint is that the type must exist. Inventing a plausible-sounding type produces markup that is parsed and then ignored, with no error and no warning. The list in this generator contains only types that are genuinely in the vocabulary, which removes the most common way this goes wrong.
If nothing fits precisely, the honest choice is the nearest real ancestor — HomeAndConstructionBusiness for a trade that has no specific type, ProfessionalService for a service business, Store for retail. A correct general type beats an invented specific one every time.
If customers never visit you
The case the standard examples all get wrong.
Most schema examples assume a shop with a front door. A large share of local businesses — trades, mobile services, consultants working from home — have no premises a customer would ever visit, and publishing a home address is both a privacy problem and, on Google Business Profile, a guidelines violation.
The right shape here is to omit the street address entirely and populate the service area instead, naming the towns or suburbs you genuinely cover. This generator omits any field you leave blank rather than emitting it empty, so leaving the street out produces valid markup rather than a broken record.
Name real places, and not too many. A list of five towns you actually travel to is more useful than a claim to cover an entire state, and it matches what a customer is trying to establish when they land on your page.
Consistency is the point
The markup, your visible page and your Google Business Profile should agree exactly.
Everything the markup states should also be visible on the page, in the same form. Structured data is meant to describe your content, not to add claims to it, and Google's guidelines are explicit that markup describing information not visible to users can be disregarded.
The same goes for your Google Business Profile. Name, address and phone should be character-for-character identical across all three — your page, your markup and your profile. "Ste 4" against "Suite 4" is enough to weaken the association a search engine is trying to make.
This is why generating the markup is a good prompt to audit the rest. Most people who do this discover at least one inconsistency they had not noticed — usually a phone number formatted three different ways, or an old suite number on one of the three.
Verify it, then forget it
Two minutes of checking, and then it should not need touching.
Paste the block into the head of your homepage, or anywhere in the body — both are valid, and the head is conventional. Put it on one page only, the page that best represents the business, rather than repeating it site-wide.
Then run the page through Google's Rich Results Test and the schema.org validator. The first tells you what Google can use; the second tells you whether the markup is technically valid. They answer different questions and it is worth doing both.
After that, the only reason to come back is a change to your hours, your services, your address or your phone number. Diarise a look whenever any of those move — stale markup stating hours you no longer keep is worse than no markup, because it is confidently wrong.
FAQ
Questions, answered
The things owners ask before they trust a number like this.
What is LocalBusiness schema markup?
A block of JSON-LD code that states your business name, type, address, phone, opening hours, service area and services in a structured format search engines parse directly. It sits in your page's HTML and is invisible to visitors. Its purpose is to remove ambiguity — instead of a search engine inferring from your text that you are a plumber in Boise open until six, you have said so unambiguously.
Does schema markup improve SEO rankings?
Not directly. Google has been consistent that structured data is not a ranking factor in itself — it aids understanding, and better understanding can indirectly help, but nobody moves up the results purely by adding markup. It is worth doing because it is cheap, unambiguous, and occasionally unlocks a result feature. Treat anyone promising ranking improvements from markup with suspicion.
Will schema markup give me star ratings in Google?
Not from markup on your own site. Review markup about yourself, on your own domain, is explicitly disregarded — this is long-standing policy and it exists precisely because self-awarded stars would be worthless. Star ratings in local results come from Google Business Profile reviews. Any generator or plugin promising you stars from your own site's markup is selling something that does not work.
Where do I put the schema code on my website?
In the head section of your homepage, or anywhere in the body — both are valid and Google reads either. The head is conventional. Put it on one page only, the page that best represents the business as a whole, rather than duplicating it across every page. If your site builder has a 'custom code' or 'header code' field, that is where it goes.
What business type should I use in my schema?
The most specific type that genuinely fits and genuinely exists in the schema.org vocabulary — Plumber rather than HomeAndConstructionBusiness rather than LocalBusiness, if you are a plumber. The critical part is that it must exist: an invented type is parsed and silently ignored. Every option in this generator is a real type. If nothing fits precisely, use the nearest real ancestor rather than making one up.
Do I need a street address in my schema?
Only if customers visit you. A service-area business that travels to customers should omit the street address and populate the service area instead — publishing a home address you do not receive customers at is a privacy problem and, on Google Business Profile, a guidelines violation. This generator omits blank fields rather than emitting them empty, so leaving it out produces valid markup.
How do I check my schema markup is working?
Run the page through Google's Rich Results Test, which shows what Google can extract and use, and through the schema.org validator, which checks technical validity. They answer different questions, so do both. Also check Search Console after a couple of weeks — it reports structured data issues it finds on your site, which catches problems that appear later.
Does the information in my schema have to match my page?
Yes, and this matters. Google's guidelines state that markup describing information not visible to users can be disregarded, and markup contradicting the page is a quality problem. Everything in the block should also appear as text somewhere on the site. It should also match your Google Business Profile exactly — name, address and phone identical across all three, punctuation included.
More free tools
Others that pair with this one
Every one runs in your browser, free, with no sign-up.
Website Readiness Score
Six dimensions, forced choices, one honest number — plus the single weakest thing about your site and a fix sized to one week.
Google Business Profile Audit
Twenty-two checks weighted by how much each one actually moves the local pack, scored against your profile as it stands today.
Website Copy Grader
Paste your homepage headline and opening paragraph. Get a reading grade, a hedge-word count, and the exact vague phrases to cut.
Website Must-Haves by Trade
What customers in your specific trade look for on a website — searchable across 66 trades, with the gaps in the data flagged.
Related
Where to go next
The reading that turns this result into a decision.
Google Business Profile audit
The markup should match the profile exactly. This checks the profile.
Website readiness score
Includes the name-address-phone consistency check this depends on.
Must-haves by trade
Which services to list, for your specific trade.
Getting your business on Google
The wider picture this is one small part of.
Structured data should not be a copy-paste chore.
A Black Nile site emits correct LocalBusiness markup from the details you already gave it — hours, services, service area and all. Free to build and publish.