Local business schema is a small block of code (usually JSON-LD) that tells Google and other search engines the facts about your business in a format they can read without guessing: your name, address, phone, opening hours, map coordinates and what kind of business you are. Google uses it to show a more complete knowledge panel for your business, and to get your hours right. It is not a ranking switch, and you do not need it to appear in AI Overviews. This page shows you exactly what it does, how to write it line by line, where to paste it and how to test it, with a free template pack at the end.
Think of it as a form. Your website already tells humans where you are and when you open. Schema fills in the same form for a machine.
What local business schema does (and what it doesn’t)
Here is the honest version, from Google’s own documentation, because most guides skip it.
What it does. Google says LocalBusiness markup can help your business show a knowledge panel with its details, and lets you tell Google about “business hours, different departments within a business” and more. If your site collects reviews about other businesses, it can carry those too. (Google Search Central, updated Sept 2026)
What it does not do. Three things people are told, and what Google actually says:
- It does not rank you in the map pack. Google’s local ranking help page says local results are “mainly based on relevance, distance, and popularity” and never mentions schema or structured data at all. Your Google Business Profile, reviews and local links do that work. (Google Business Profile Help)
- It is not needed for AI Overviews or AI Mode. Google: “There’s also no special schema.org structured data that you need to add.” Its advice is to keep structured data matching the visible text and keep your Business Profile up to date. (Google, AI features and your website, Dec 2025)
- It does not guarantee a rich result. “Google does not guarantee that your structured data will show up in search results, even if your page is marked up correctly.” (Structured data policies, Jul 2026)
And one thing that changed recently: the FAQ rich result, the drop-down questions you used to see under some listings, stopped appearing in Google Search on 7 May 2026. If a guide still promises FAQ stars and drop-downs from schema, it is out of date. (Search Central changelog)
So why bother? Because Google reads it, Bing reads it, and AI tools that look up a business cross-check sources. A clean, consistent set of facts on your own site, matching your Business Profile and your citations, removes doubt. Removing doubt is most of local SEO.
Local business schema example, line by line
This is a complete, valid LocalBusiness block for a made-up plumber. Hover or tap any numbered line to see what it does and the rule Google attaches to it. Every rule below links to the Google page it comes from.
{ "@context": "https://schema.org",1 "@type": "Plumber",Most specific type Google: "Use the most specific LocalBusiness sub-type possible". Plumber sits under HomeAndConstructionBusiness. Two trades? Use an array, not additionalType. source2 "@id": "https://northsideplumbing.example/#business",A stable ID (optional) A fixed URL-style identifier for this business, so other blocks on your site (Organization, WebPage) can point at the same thing. Not required by Google; harmless and tidy. source3 "name": "Northside Plumbing",name — required One of only two required properties. Use the real-world name exactly as on your Google Business Profile. source4 "url": "https://northsideplumbing.example/",url "The fully-qualified URL of the specific business location. The URL must be a working link." One location: your homepage. Branches: that branch's page. source5 "telephone": "+44 113 496 0221",telephone with country code "Be sure to include the country code and area code in the phone number." source6 "priceRange": "££",priceRange under 100 characters Symbols ("££") or a range ("$10–25"). "If it's 100 characters or longer, Google won't show a price range for the business." source7 "image": "https://northsideplumbing.example/images/shopfront.jpg",image must be crawlable Google's general rule: "All image URLs specified in structured data must be crawlable and indexable." A blocked image is the same as no image. source8 "address": {address — required The second required property. "Include as many properties as possible." Country as a 2-letter ISO code (GB, US). source "@type": "PostalAddress", "streetAddress": "142 Mill Road", "addressLocality": "Leeds", "addressRegion": "West Yorkshire", "postalCode": "LS6 2AB", "addressCountry": "GB" },9 "geo": {geo to 5 decimal places "The precision must be at least 5 decimal places." Right-click your pin in Google Maps and copy the coordinates. source "@type": "GeoCoordinates", "latitude": 53.81621, "longitude": -1.56402 },10 "openingHoursSpecification": [{openingHoursSpecification English day names or schema.org URLs; times in hh:mm:ss. See the hours section for 24-hour, closed and past-midnight cases. source "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "08:00", "closes": "18:00" }],11 "areaServed": ["Leeds", "Headingley", "Horsforth"],areaServed "The geographic area where a service or offered item is provided." Useful for service-area businesses; cities, regions or a Place. source12 "sameAs": [sameAs "URL of a reference Web page that unambiguously indicates the item's identity." Your Business Profile, Facebook, Instagram, Yelp. Google says it "can make general use of the sameAs property". source "https://www.google.com/maps?cid=0000000000000000000", "https://www.facebook.com/northsideplumbing" ]}
All 12 rules in one list
1. Most specific type Google: "Use the most specific LocalBusiness sub-type possible". Plumber sits under HomeAndConstructionBusiness. Two trades? Use an array, not additionalType. source
2. A stable ID (optional) A fixed URL-style identifier for this business, so other blocks on your site (Organization, WebPage) can point at the same thing. Not required by Google; harmless and tidy. source
3. name — required One of only two required properties. Use the real-world name exactly as on your Google Business Profile. source
4. url "The fully-qualified URL of the specific business location. The URL must be a working link." One location: your homepage. Branches: that branch's page. source
5. telephone with country code "Be sure to include the country code and area code in the phone number." source
6. priceRange under 100 characters Symbols ("££") or a range ("$10–25"). "If it's 100 characters or longer, Google won't show a price range for the business." source
7. image must be crawlable Google's general rule: "All image URLs specified in structured data must be crawlable and indexable." A blocked image is the same as no image. source
8. address — required The second required property. "Include as many properties as possible." Country as a 2-letter ISO code (GB, US). source
9. geo to 5 decimal places "The precision must be at least 5 decimal places." Right-click your pin in Google Maps and copy the coordinates. source
10. openingHoursSpecification English day names or schema.org URLs; times in hh:mm:ss. See the hours section for 24-hour, closed and past-midnight cases. source
11. areaServed "The geographic area where a service or offered item is provided." Useful for service-area businesses; cities, regions or a Place. source
12. sameAs "URL of a reference Web page that unambiguously indicates the item's identity." Your Business Profile, Facebook, Instagram, Yelp. Google says it "can make general use of the sameAs property". source
Two things to notice. The whole block has only two fields Google calls required: name and address. Everything else is recommended, and Google says it “is more important to supply fewer but complete and accurate recommended properties rather than trying to provide every possible recommended property”. (Google, intro to structured data) Fill in what is true. Leave out what is not.
Pick the right business type (there are more than you think)
Most people write "@type": "LocalBusiness" and stop. Google asks for more: “Use the most specific LocalBusiness sub-type possible; for example, Restaurant, DaySpa, HealthClub, and so on.” A plumber should be a Plumber, a dentist a Dentist, a hair salon a HairSalon. (Google)
Schema.org organises these as a family tree. LocalBusiness sits under both Organization and Place, and below it are 30 groups with their own children. A plumber’s path looks like this:
We pulled the full tree from schema.org on 11 October 2026: 133 business types two levels down. Type what you do and find yours:
If you really are two things, Google says to list them as an array, for example "@type": ["Electrician", "Plumber"], and not to use additionalType. If nothing fits, use the closest parent (HomeAndConstructionBusiness, MedicalBusiness, Store) or plain LocalBusiness. A wrong specific type is worse than a right general one.
Required and recommended properties, with Google’s rules
Here is Google’s current list for LocalBusiness, with the small rules that trip people up. Rank Math, Yoast and generators will ask for most of these.
| Property | Status | What Google says |
|---|---|---|
name |
Required | Your business name, as it appears in the real world and on your Business Profile. |
address |
Required | A PostalAddress. “Include as many properties as possible”: street, city, region, postal code, country as a 2-letter code. |
telephone |
Recommended | “Be sure to include the country code and area code in the phone number.” |
url |
Recommended | “The fully-qualified URL of the specific business location. The URL must be a working link.” |
geo |
Recommended | Latitude and longitude. “The precision must be at least 5 decimal places.” |
openingHoursSpecification |
Recommended | Days and times in hh:mm:ss, English day names, see the next section. |
priceRange |
Recommended | “$$” or “$10–25”. Must be under 100 characters or Google will not show it. |
department |
Recommended | Name departments as “{store name} {department name}”, for example “gMart Pharmacy”. |
aggregateRating, review |
Recommended, with a catch | “Only recommended for sites that capture reviews about other local businesses.” Your own reviews about yourself are not eligible for stars. |
menu, servesCuisine |
Recommended | Restaurants only. |
Source for every row: Google’s LocalBusiness documentation, last updated 8 September 2026. Not on the list but useful: image (Google’s general rule is that image URLs must be crawlable; our guide to checking what Google can index shows how to test that), sameAs for your Business Profile, Facebook and other profiles, and areaServed for the areas you cover.
The review catch matters. Google’s review snippet policy says that if “the entity that’s being reviewed controls the reviews about itself”, pages using LocalBusiness markup are “ineligible for star review feature”, and that includes embedded Google or Facebook review widgets. So putting your own 4.9 rating into your schema will not get you stars, and it is the kind of thing that earns a manual action. (Review snippet guidelines, Sept 2026) Collect reviews the right way instead; our Google reviews guide shows how.
Opening hours Google will actually read
Hours are where most hand-written schema breaks. Google accepts the day as a short English name (“Monday”) or a schema.org URL, times in hh:mm:ss, and only standard schema.org day values in English. A few cases people get wrong:
- Open 24 hours: opens
00:00, closes23:59. - Closed all day: opens
00:00and closes00:00. - Open past midnight: keep it in a single OpeningHoursSpecification, for example Friday opens
18:00closes03:00. - Seasonal hours: add
validFromandvalidThroughinYYYY-MM-DD.
Source: Google’s LocalBusiness documentation. Then make sure the same hours are on your Business Profile. Whitespark’s 2026 ranking-factor survey lists being open at the time of the search among the top map-pack factors, and that signal comes from the profile, not the code. (Whitespark, Nov 2025)
How to add local business schema to your website
Google recommends JSON-LD because it is “the easiest solution for website owners to implement and maintain at scale”. You can put it on any page, but Google says it makes more sense on a page about your business: the homepage for one location, the location page for each branch. There are four common ways to get it there. All four end up in the same place, and Google reads all four, including code injected by JavaScript. (Google)
Step 1. Check what is already there
Before you add anything, see what your site already outputs. SEO plugins add schema on their own: Yoast Local SEO “converts your business info into Schema automatically”, and Rank Math’s Local SEO module adds LocalBusiness data from its settings. If you paste a second block, you now have two businesses with slightly different names or phones, and Google has to guess. Run the free Schema Markup Analyzer on your homepage; it lists every block, its type, and which required properties are missing. (Yoast) (Rank Math)
Step 2. Write the block
Copy the example above, or build yours in the free AI-Ready Schema Generator, or download the template pack (six business types, ready to edit). Use your exact Business Profile name, the phone with country code, the address as it appears on Google Maps, and coordinates from the map pin (right-click the pin in Google Maps and copy the numbers).
Step 3. Put it on the page
Pick one route and only one:
- WordPress with Rank Math or Yoast: fill in the plugin’s Local SEO settings and let it output the block. Do not also paste code.
- WordPress without a schema plugin: paste the block inside
<script type="application/ld+json">in a header/footer snippet or a Code Snippets “site head” snippet, limited to the homepage or the location page. - Any site via Google Tag Manager: Google documents this: add a Custom HTML tag, paste the block, fire it on the right page. Google can read JSON-LD “when it is dynamically injected into the page’s contents, such as by JavaScript code”. (Google)
- Wix, Squarespace, Shopify: each has a business-info or custom-code area for the head; paste the block there once.
Step 4. Test it
Google’s two tools: the Rich Results Test shows what Google’s features can use; the Schema Markup Validator checks the markup against schema.org without Google’s rules. Paste your live URL, not the code, so you test what Google actually sees after plugins and caching. Zero errors is the goal; warnings about optional fields are fine.
Step 5. Match it to your Business Profile and re-check quarterly
Name, address, phone and hours in the code should be character-for-character the same as your Business Profile and your main directory listings. Our NAP Consistency Checker compares them, and the Google Business Profile Audit scores the profile side. Re-test after any theme change, plugin update or move; that is when blocks silently break or duplicate. It is one of the checks in our local SEO audit.
Several locations, or no storefront at all
Multiple locations: one LocalBusiness block per location, on that location’s page, each with its own address, phone, hours and url pointing to that page. Do not stack five addresses into one block on the homepage. Our multi-location local SEO guide covers the page structure.
Service-area businesses (you travel to the customer): still use your real base address if you have one, and add areaServed with the cities or regions you cover. Schema.org defines areaServed as “the geographic area where a service or offered item is provided”. If you hide your address on your Business Profile, keep the schema consistent with what the public page shows; Google asks that structured data be “a true representation of the page content”. (schema.org) (Google) See also city pages SEO.
Departments inside one business (a pharmacy inside a supermarket): nest them with department and name them “{store name} {department name}”, unless the department is its own brand.
The five mistakes we find most often
- Two blocks, two versions of the truth. A plugin block and a pasted block, with different phone formats or an old suite number. Keep one.
- Generic type.
LocalBusinesswhenDentistexists. Use the finder above. - Self-rated stars. An
aggregateRatingof your own reviews. Ineligible, and risky. - Marking up what is not on the page. Hours or an address the visitor cannot see. Google’s policy: “Don’t mark up content that is not visible to readers of the page.”
- Set and forget. Hours changed on the profile in January; the code still says the old ones in October.
None of these costs money to fix. All of them show up in the Schema Markup Analyzer or a two-minute Rich Results Test.
Does local business schema help with ChatGPT and AI Overviews?
Not on its own, and Google says so: “Structured data isn’t required for generative AI search, and there’s no special schema.org markup you need to add. However, it’s a good idea to continue using it as part of your overall SEO strategy”. (Google AI optimization guide, Jul 2026)
What we see in practice is simpler. AI tools answering “best plumber near me” pull from your Business Profile, review sites, directories and your own pages, and they prefer businesses whose facts agree everywhere. Schema is one more place where your facts are stated plainly. Whitespark’s 2026 survey puts it this way for AI search: “mentions (citations) are the new link”. (Whitespark) Check how AI tools describe you today with the free AI Visibility Checker, and read whether llms.txt does anything before you add that too.
Free local business schema templates
Download the template pack: six ready JSON-LD files for a plumber, dentist, restaurant, hair salon, law firm and shop, each with hours, geo, sameAs and comments on what to change. No email, no signup. Edit, paste, test. For anything else, the AI-Ready Schema Generator builds Organization, LocalBusiness, Article and How-To blocks in a minute.
If you would rather have it handled, schema is part of every Local SEO plan and every website audit we run, and our Business Profile service keeps the profile and the code in step. Related reading: local SEO checklist, directory listings, local SEO guide, is local SEO dead?, when to hire a technical SEO consultant.
FAQs
What is local business schema?
Local business schema is structured data, usually a JSON-LD script, that states a business’s name, address, phone, hours, coordinates and type in a format search engines read directly. Google uses it to show a fuller knowledge panel and correct hours. It describes your business; it does not by itself rank it.
How do I add local business schema to my website?
Write a JSON-LD block with your name, address, phone, URL, hours and geo, choose the most specific schema.org type, then place it once: through your SEO plugin’s Local SEO settings, a header snippet, or a Google Tag Manager Custom HTML tag. Test the live URL in Google’s Rich Results Test and fix any errors.
How do I add local business schema in WordPress?
If you use Rank Math or Yoast, fill in their Local SEO settings and the plugin outputs the block for you; do not paste a second one. Without a schema plugin, add the JSON-LD inside a script tag using a header/footer or Code Snippets plugin, limited to your homepage or location page, then test the page.
Does local business schema improve rankings?
Google does not list schema among its local ranking factors, which it describes as relevance, distance and prominence, and it says structured data does not guarantee a rich result. Schema helps Google understand and display your details correctly. Rankings come from your Business Profile, reviews, links and on-page work.
Which schema type should a local business use?
The most specific schema.org LocalBusiness subtype that is true: Plumber, Dentist, Restaurant, HairSalon, Attorney, AutoRepair and so on. Google recommends the most specific type possible. If you are two things, list both in an array. If nothing fits, use the parent group or plain LocalBusiness.