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.

A hardware store's back room at dusk with rows of small labeled drawers, a brass label holder catching the light on one drawer
On this page9 sections
  1. What is a schema markup, in plain terms?
  2. What schema does, and what it doesn't
  3. The schema types worth adding
  4. What happened to FAQ rich results
  5. A JSON-LD example for a local business
  6. Rules that keep markup out of trouble
  7. How to test it
  8. What we'd do
  9. Frequently asked questions

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

How local business schema connects A central LocalBusiness block, using a specific subtype such as Plumber, holds name and phone, address and geo coordinates, and opening hours. It links out through sameAs to official profiles such as Facebook and Yelp, and lists areaServed such as Chicago and Evanston. Below, a Service block on each service page, for example water heaters and drain cleaning, points back to the business through the provider property. How the pieces connect name, phone address, geo hours LocalBusiness e.g. Plumber subtype sameAs Facebook, Yelp areaServed Chicago, Evanston provider Service water heaters Service drain cleaning one per service page
Fig. 01One LocalBusiness block holds your core facts and links out to your profiles; each service page adds a Service block that points back to it.

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 areaServed that 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

  1. Google's Rich Results Test shows whether a page is eligible for Google's rich results and flags errors in supported types.
  2. The Schema Markup Validator checks any schema.org markup, including types Google doesn't show as rich results, like Service.
  3. 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:

  1. Add a LocalBusiness block using the most specific subtype, with name, address, phone, URL, hours, logo and sameAs links to your real profiles.
  2. Add a Service block to each service page, pointing back to the business.
  3. Remove or stop adding FAQPage markup for rich results' sake, and keep the questions only where they help visitors.
  4. 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.

Written bySimply Works teamThe Simply Works team, Chicago & Denver
All insights
Ready when you are

Let’s make your marketing compound.

Tell us what you’re building. We reply the same day with a plan, not a pitch.

Same-day replyChicago × Denver