Schema markup for local businesses (what to add and why)
What schema markup is, which types a local business should add, what changed with FAQ rich results, and a JSON-LD example you can adapt and test.

On this page9 sections
Short answer
Schema markup is a block of code, usually JSON-LD, that labels the facts on your page so search engines can read them without guessing: your business name, address, phone, hours, services and profiles. For a local business, start with a LocalBusiness subtype on your homepage or contact page, keep it identical to what's visible on the page, and test it. It won't rank you on its own, and FAQ rich results are gone as of May 2026.
"What is a schema markup, and do we need it?" comes up in almost every local SEO kickoff we run. The idea is simple. Your web page says "Open Monday to Friday, 7 to 6" in plain text. Schema markup says the same thing in a standard vocabulary from schema.org that machines read reliably. Search engines use it to understand who you are and, for some content types, to show richer search results.
Here's what's worth adding for a local business, what isn't, and how to check it works.
What is a schema markup, in plain terms?
Schema markup is structured data: a set of labeled facts added to a page's code. Google supports three formats and recommends JSON-LD, a short script block that sits in the page and doesn't affect what visitors see.
Think of it as filling out a form about your page. Instead of hoping a search engine works out that "(312) 555-0142" is your phone number, you tell it: this is the telephone of this LocalBusiness.
What schema does, and what it doesn't
What it does:
- Removes ambiguity. It confirms your business name, address, phone, hours and the profiles that belong to you.
- Makes some pages eligible for rich results, such as review stars on product pages, event listings or recipe cards, where Google supports them.
- Supports consistency. The same facts on your site, your Business Profile and your listings all point to one business.
What it doesn't do:
- Guarantee rich results. Google says it "does not guarantee that your structured data will show up in search results, even if your page is marked up correctly."
- Replace your Google Business Profile. For the map pack, your Business Profile is the primary source.
- Get you into AI answers. Google says there's no special structured data needed to appear in AI Overviews or AI Mode, and its AI optimization guide adds that structured data isn't required for generative AI search.
- Compensate for thin content. Markup describes your page. It doesn't make the page better.
The schema types worth adding
LocalBusiness, using the most specific subtype
This is the core one. Google's LocalBusiness documentation requires only name and address, and recommends properties such as telephone, url, geo, openingHoursSpecification and priceRange. It also says to "use the most specific LocalBusiness sub-type possible," so a plumber uses Plumber, a dentist Dentist, a law office LegalService, and so on.
Put it on your homepage or your contact page, wherever your address and hours are visible. If you have multiple locations, each location page gets its own block with that location's details.
Organization
Google's Organization documentation has no required properties and recommends adding as many relevant ones as you can, including logo, sameAs links to your official profiles, and contact details. It suggests placing it on your homepage or about page. Since LocalBusiness is a type of Organization, a single-location business can usually put these properties in its LocalBusiness block rather than adding a second one.
Service and areaServed
Schema.org's Service type and the areaServed property describe what you do and where. Google doesn't show a rich result for them, but they're a clean way to describe each service page and connect it to your business. This is especially useful for service-area businesses that work at customers' locations rather than their own address.
Reviews: careful here
It's tempting to mark up the testimonials on your own site to get stars in search results. Google's review snippet guidelines rule that out: if the business "controls the reviews about itself," pages using LocalBusiness or Organization markup are "ineligible for star review feature." Show your testimonials on the page for people, but don't expect stars from them.
What happened to FAQ rich results
For years, FAQ markup was the easiest rich result to get. That's over.
- In August 2023, Google limited FAQ rich results to "well-known, authoritative government and health websites" and cut back HowTo rich results at the same time.
- In May 2026, Google deprecated FAQ rich results: they no longer appear in Google Search as of May 7, 2026. On June 15, 2026, Google removed the FAQ rich result documentation entirely.
You don't need to rip out existing FAQPage markup. As Search Engine Journal reported, Google has said unused structured data doesn't cause problems for Search. But don't add it expecting a search feature. Do keep the FAQ sections themselves if they answer real questions, because they're useful to visitors.
A JSON-LD example for a local business
Here's a hypothetical example for a Chicago plumber. Every value must match what's visible on the page. The name, phone number and addresses below are placeholders.
{
"@context": "https://schema.org",
"@type": "Plumber",
"@id": "https://www.example.com/#business",
"name": "Northside Plumbing Co.",
"url": "https://www.example.com/",
"logo": "https://www.example.com/images/logo.png",
"image": "https://www.example.com/images/van.jpg",
"telephone": "+1-312-555-0142",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "1234 N Example Ave",
"addressLocality": "Chicago",
"addressRegion": "IL",
"postalCode": "60640",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 41.9700,
"longitude": -87.6600
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "07:00",
"closes": "18:00"
}],
"areaServed": [
{ "@type": "City", "name": "Chicago" },
{ "@type": "City", "name": "Evanston" }
],
"sameAs": [
"https://www.facebook.com/example",
"https://www.yelp.com/biz/example"
]
}And on the water heater service page, a short Service block that points back to the business by its @id:
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Water heater installation",
"provider": { "@id": "https://www.example.com/#business" },
"areaServed": { "@type": "City", "name": "Chicago" },
"url": "https://www.example.com/services/water-heaters/"
}Rules that keep markup out of trouble
- Only mark up what's visible. Google's guidelines say: "Don't mark up content that is not visible to readers of the page."
- Keep one source of truth. If your hours change, the page, the markup and your Business Profile all change together. Ideally your CMS generates the markup from the same fields that render the page.
- Don't inflate. Listing 40 cities in
areaServedthat you don't actually serve, or adding ratings you didn't collect, is exactly what manual actions are for. A structured data manual action removes a page's eligibility for rich results. - One block per location. Don't put every location's address on the homepage.
How to test it
- Google's Rich Results Test shows whether a page is eligible for Google's rich results and flags errors in supported types.
- The Schema Markup Validator checks any schema.org markup, including types Google doesn't show as rich results, like Service.
- Search Console reports structured data issues for supported types across your whole site once Google has crawled it.
Test after launch, and again whenever you change templates.
What we'd do
For a single-location business:
- Add a LocalBusiness block using the most specific subtype, with name, address, phone, URL, hours, logo and
sameAslinks to your real profiles. - Add a Service block to each service page, pointing back to the business.
- Remove or stop adding FAQPage markup for rich results' sake, and keep the questions only where they help visitors.
- Validate with both testing tools and check Search Console monthly.
For multiple locations, give each location its own page and its own LocalBusiness block, which pairs naturally with location pages built on real demand and one Business Profile per location.
Frequently asked questions
Does schema markup improve rankings?
Not directly in any way Google promises. It helps search engines understand your page and can make it eligible for rich results, which can improve how your listing looks. Content, relevance and your Business Profile do the heavy lifting.
Do I need schema markup to show up in AI answers?
No. Google says no special structured data is needed for its AI features. Accurate markup still helps systems confirm basic facts about your business.
Should I remove my FAQ schema?
You don't have to. It won't hurt, but it no longer produces a rich result in Google. Keep the FAQ content where it's useful to people.
Structured data is one small, technical piece of local search. If you'd like it set up properly alongside your Business Profile and site content, that's part of our SEO and local SEO service.


