What Is Local Business Schema and How Do I Add It?
Local business schema explained for business owners: what it is, which details to include, a copy-ready example, how to test it, and when to hire help.

Local business schema is a block of code on your website that states your business name, address, phone number, hours and website in a format search engines read without guessing. You add it once to the right pages, test it for free, and update it whenever those details change. This guide explains what goes in it, shows a sample you can adapt, and tells you when it makes sense to hand the job to someone else.
TL;DR
- Local business schema (also called structured data) is code that labels your business details so Google can read them accurately. Visitors never see it.
- At minimum, include your business name and address, and pick the most specific business type that fits you, such as Dentist or Plumber.
- Add phone, hours, website address, map coordinates and price range if they are true and also shown on the page.
- Test it with Google’s free Rich Results Test before and after publishing.
- Nobody can promise that schema will earn a special search result. Google says features that use structured data may not show up, so treat it as good housekeeping.
What local business schema actually is
Your website is written for people. A search engine has to work out which number on the page is your phone number and which line is your street address. Schema removes the guesswork. It is a shared vocabulary of labels, and you attach those labels to the facts on your page.
Google describes structured data as a standardized format for giving information about a page. For local companies, Google’s Local Business structured data guide explains that it lets you tell Google about business hours, departments and more.
You will see a few terms around this topic:
- Schema markup: the labels themselves.
- Structured data: the same idea, the term Google uses most.
- JSON-LD: short for JavaScript Object Notation for Linked Data. It is the tidy block of text where the labels live. Think of it as a small data sheet tucked into the page.
- LocalBusiness: the label for a business with a physical place customers can visit or that serves a local area.
How it differs from general business schema
There is a broader label called Organization. LocalBusiness is a more specific kind of Organization. According to Google’s documentation, LocalBusiness requires a physical address and has extra properties for details like hours and departments. One industry guide puts the difference this way: local business schema is meant for businesses with physical locations that want to show up in local searches.
So if you are a plumber, a dentist, a salon, a restaurant or a shop, LocalBusiness (or a more specific type under it) is the right choice. If you only sell online and have no location, it is not.
Who needs it and what it can and cannot do
If customers find you by searching things like “electrician near me” or your town plus a service, schema is worth the small effort. It gives Google a clean, consistent copy of your key facts.
Here is the honest part. Google states that it does not guarantee that features using structured data will appear in search results. Schema does not guarantee a ranking, a star rating, a special box or more calls. We never promise results from it, and you should be wary of anyone who does. What it does is remove a source of confusion: your details are stated plainly and match what is on the page.
It works best alongside the basics that local customers see first. That means a complete Google Business Profile, consistent listings across the web, real reviews and a fast site. We cover those in our guide to clean business listings and in our on-page SEO checklist.

Which details to include
Google’s documentation says a business must include its name and address, and should use the most specific LocalBusiness subtype available. It recommends adding the following where they apply:
| Detail | What it means | Example |
|---|---|---|
| Type | The most specific kind of business | Dentist, Plumber, Restaurant, HairSalon |
| Name | Your business name, as customers know it | Sample Family Dental |
| Address | Street, city, state, ZIP code | 123 Main Street, Novi, MI 48375 |
| Telephone | The number you want customers to call | (248) 555-0100 |
| Opening hours | Days and times you are open | Monday to Friday, 8:00 a.m. to 5:00 p.m. |
| Website address | Your main page | https://www.example.com |
| Geo coordinates | Latitude and longitude of your location | 42.4806, -83.4755 |
| Price range | A rough cost indicator | $$ |
| Image | A photo of the business or logo | https://www.example.com/storefront.jpg |
The golden rule: every detail in the code must match what a visitor can see on that page. Google’s general guidelines say structured data must be a true representation of the page content, and marking up content that users cannot see can lead to a manual action. We come back to that below.
Picking the right business type
Do not stop at the generic LocalBusiness label if a better one exists. Schema.org, the group that maintains the vocabulary, lists many subtypes under LocalBusiness. A roofer, a lawyer, a bakery and a gym each have their own. Browse the subtype list and pick the closest match. If nothing fits exactly, use LocalBusiness itself.
A sample you can adapt
Below is a sample for a fictional dental office. It follows the same layout as the basic example in Google’s documentation, which uses a business type, name, image, website, phone, price range, address, coordinates and opening hours. Replace every value with your own real details.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Sample Family Dental",
"image": "https://www.example.com/storefront.jpg",
"url": "https://www.example.com",
"telephone": "+1-248-555-0100",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Novi",
"addressRegion": "MI",
"postalCode": "48375",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 42.4806,
"longitude": -83.4755
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "17:00"
}
}
</script>
A few reading tips for a first-timer:
- Everything sits inside curly braces, and each label is followed by its value.
- Text goes in straight quotation marks. Curly quotes copied from a word processor will break the code.
- Commas separate items, but there is no comma after the last item in a group.
- Times use the 24-hour clock, so 5:00 p.m. is 17:00.
- The phone number includes the country code.
The coordinates in the sample are placeholders. Look up your own by searching your address on a map site and reading the latitude and longitude it shows.
How to add it to your website
The code goes on your site’s pages, usually in the page head or body. Google’s documentation says to add the JSON-LD to the page and then check it with the Rich Results Test. How you do it depends on how your site is built.
If your site runs on WordPress or a similar builder
Many SEO plugins have a local business section where you fill in a form and the plugin writes the code for you. If you use one, enter your details there, and avoid pasting a second copy by hand. Two conflicting blocks on one page cause confusion.
If your builder has a spot for custom code in the page head, you can paste the block above once you have swapped in your details.
If a developer built your site
Send them the table above filled in with your real details and ask them to add LocalBusiness markup. It is a short job for someone who works with websites every day.
Where to put it
Put your main LocalBusiness markup on the page that represents the business, usually the home page or a contact or location page. You do not need to paste it on every page. If you have several service pages, each one should describe its own service in visible text, and that text should match anything you label in code.
If you have more than one location or department
Google’s guidance for businesses with departments is to use the department property, nesting each department inside the main business and listing only the details that differ, such as its own phone number or hours. For separate locations, give each location its own page with its own address and its own markup, so each set of details matches the page it sits on.
How to test it before and after you publish
Testing takes five minutes and catches most mistakes.
- Open Google’s Rich Results Test, which Google points to in its own documentation.
- Paste the web address of your page, or paste the code itself.
- Read the results. Errors need fixing. Warnings mean an optional detail is missing.
- Fix the code, publish and test the live page again.
- Recheck whenever your hours, phone number, address or website address change.
The most common problems are small ones: a missing comma, curly quotes, an old phone number, hours that no longer match the page, or two plugins writing the same markup twice.
Mistakes that can cause trouble
Google’s rules are plain. Violating the structured data guidelines can lead to a manual action, after which the structured data on the page is ignored. Avoid these:
- Marking up things visitors cannot see. If the code says you are open Saturdays, the page should say so too.
- Fake or misleading content. Google says not to mark up irrelevant or misleading content, such as fake reviews. Never write star ratings into code that real customers did not give you.
- Stale details. An old address or phone number in code is the same problem as an old number on a flyer.
- The wrong type. Do not label a home-based business with a storefront type just because it sounds bigger.
If you want a second opinion on how your content reads to AI-driven search tools, a free AI search readiness checker can show where a page is unclear. Use it as a prompt for edits, not as a score to chase.
Schema and the rest of your local presence
Schema is one piece. Search engines and map apps compare your details across many places, so consistency matters. The same business name, address and phone number (often shortened to NAP) should appear on your website, your Google Business Profile and your directory listings. If you have not claimed your Apple listing, this walkthrough on how to add your business to Apple Maps covers the steps.
Reviews, speed and clear service pages matter too. If you are working on those, start with how to get more Google reviews and how fast local landing pages are built. If you want to find the phrases your customers type, read how to find local keywords.
Our view: get the basics right, then add schema once
We build and optimize websites for small businesses in Metro Detroit and Oakland County, and we see the same pattern. Owners hear the word schema, buy a plugin, paste three conflicting blocks of code and never test any of them. Meanwhile the phone number on the contact page is out of date.

Our approach is simpler. We start with a clear site where your name, address, phone number, hours and services are stated plainly on the page. Then we add one clean block of LocalBusiness markup that matches the page word for word, test it, and write down where it lives so the next person who edits the site does not break it. That is how we build integrated search optimization into a site from the start, rather than bolting it on later.
We describe what we do, not what it will achieve. Schema is a tool for clarity, and clarity is worth having whether or not a search engine rewards it with an extra feature on a given day. We quote a fixed price up front and work without contracts, so you know what you are paying for.
— Eric Plotts
Want us to handle it?
If you would rather not touch code, we can build it into your site. Our three-page website is $899 and our eight-page website is $1,999. Larger projects get a fixed quote. Local business markup is part of how we set up search optimization on a new site, and our sites typically take about two weeks to complete. See our website pricing for what each package includes.

Already have a site and want your listings, Google Maps presence and markup reviewed? Our local SEO and Google Maps service covers that. You can also call us at (248) 800-1855. We are in Novi, owner operated by Eric Plotts since 2011.
FAQ
What is a local business schema?
It is a block of code that labels your business details, such as name, address, phone number and hours, so search engines read them correctly. It is based on the LocalBusiness type, a kind of Organization that requires a physical address. Visitors do not see it on the page.
Do I need schema if I already have a Google Business Profile?
They do different jobs. Your profile is a listing that Google hosts, while schema is code on your own site that describes the same facts. Keeping both accurate and matching gives search engines two consistent sources. Neither one guarantees a particular ranking.
Can I add local business schema myself?
Yes, if you are comfortable pasting a block of code into your site or filling in an SEO plugin’s form. Use the sample above, replace every value with your real details, and test it with the Rich Results Test. If that sounds like too much, a web designer can do it quickly.
Will schema guarantee a rich result or higher ranking?
No. Google says that features using structured data are not guaranteed to show up in search results. Schema helps search engines understand your page, and that is all it promises.
Can schema get my site penalized?
It can if it breaks Google’s guidelines, for example by marking up content visitors cannot see or by including fake reviews. Google may apply a manual action, and the markup on that page is then ignored. Accurate details that match your page keep you safe.
For more plain-English guides, browse our web design and SEO articles.
Recommended
Written by
Eric Plotts
Web designer and SEO consultant in Novi, Michigan. Building websites for small and mid sized businesses since 2011.More about Eric.
