All articles

Schema Markup for Local Business: A Practical Guide

Learn what LocalBusiness schema is, which properties to include, how to add it with a working JSON-LD example, and how to test it so it helps and never hurts.

LocalBusiness schema is code that tells search engines your business name, address, phone number, hours and other facts in a format they can read without guessing. You add it to your site as JSON-LD. It does not push you up the rankings. It makes your pages eligible for richer search features and removes ambiguity about who you are and where you work. Below, we show the properties that matter, a working example, and how to test it.

TL;DR

  • LocalBusiness schema is structured data that describes a physical business or a branch of one: name, address, phone, hours, URL and more.
  • Google lists name and address as required. Telephone, URL, hours, geo coordinates and price range are recommended.
  • Schema makes you eligible for search features. It does not guarantee them, and it does not improve rankings.
  • Mark up only what visitors can see on the page. Misleading markup can cost you rich result eligibility.
  • Test before and after you publish, then check Search Console for errors.

What LocalBusiness schema is

Structured data is a standard way to label what a page is about. Google uses it to understand page content and to learn about the world in general. Schema.org is the shared vocabulary behind it.

In that vocabulary, LocalBusiness describes a particular physical business or a branch of an organization. Think restaurant, medical practice, bank branch, club or bowling alley. A plumber, a realtor's office or a property management firm with a street address fits as well.

You write it in JSON-LD, a block of text that sits in the page and is invisible to visitors. Your visible page says "Open Monday to Friday, 8 to 5." The JSON-LD says the same thing in a form a machine reads exactly.

What it can and cannot do for you

Be clear on this before you spend an hour on it.

LocalBusiness markup can tell Google about business hours, departments and reviews, and a knowledge panel may appear. But Google does not guarantee that any feature will show. Markup makes a feature possible. It does not make it certain.

It also is not a ranking lever. Google's John Mueller said structured data won't make your site rank better. Anyone promising a ranking jump from schema alone is wrong.

What it does give you is clarity. Your name, address and phone number are stated the same way on every page. That helps search engines and AI answer tools read your site correctly. For a deeper look at which enhancements are worth chasing, see this overview of structured data rich results and what each one needs.

Schema also does not replace your Google Business Profile. It supports it by keeping the facts on your site consistent with the facts there.

Which properties to include

Google's documentation draws a clear line. Name and address are required. Recommended properties include telephone, url, openingHoursSpecification, geo, priceRange, aggregateRating, review and department.

Property Status What to put in it
name Required Your real business name, as it appears on your site and signage
address Required A PostalAddress with street, city, state, ZIP and country
telephone Recommended Include country code and area code
url Recommended A working link to the page or home page
openingHoursSpecification Recommended Days, opening time and closing time
geo Recommended Latitude and longitude, at least five decimal places
priceRange Recommended A short text, under 100 characters, such as "$$"
aggregateRating, review Recommended Only real reviews that appear on the page

Two more rules from Google. Use the most specific LocalBusiness subtype available, such as Plumber or Dentist, instead of the generic type. And because LocalBusiness is a subtype of Organization, follow the Organization fields too.

A working example

Here is a JSON-LD block for a made-up plumbing company. Swap in your own details. Place it inside a script tag with the type set to application/ld+json, in the head or body of the page.

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Example Plumbing Co.",
  "url": "https://www.example.com/",
  "telephone": "+1-555-555-0100",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "Springfield",
    "addressRegion": "WA",
    "postalCode": "98000",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 47.00000,
    "longitude": -122.00000
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "17:00"
    }
  ]
}

Google's own page has a fuller example for a Store, including a department. Start from the official one if your business has several departments.

How to add it to your site

  1. Pick the page. Put the markup on the page the information applies to. For most businesses, that is the home page or a contact page.
  2. Match what people see. Don't add markup for information that visitors cannot see. Don't build empty pages just to hold it.
  3. Choose your method. Paste the block into the page template, use your CMS's custom code field, or use an SEO plugin that outputs JSON-LD.
  4. Test it. See the next section.
  5. Publish and request indexing in Search Console for the key page.

Service-area businesses

Many home service companies travel to customers and have several city pages. Don't paste the same block everywhere. One approach is to describe each area page as a Service that points back to your single business and names that place in areaServed. Same business, same service, different area.

Multiple locations

Give each location its own page and its own markup with that branch's address, phone and hours. Schema.org defines LocalBusiness as a physical business or a branch, so a branch is exactly what it is built for.

Test before and after you publish

Run two checks. validator.schema.org checks your code against the Schema.org vocabulary, while the Rich Results Test checks Google's own requirements. They can disagree, so use both.

After launch, open Search Console. The Unparsable structured data report lists markup with serious syntax errors. When one error shows up on many pages, the cause is usually a template error. Fix the template once and the rest clear.

The usual culprits are small: a missing comma, a missing closing brace, a bad character, or a wrong value type. JSON is strict. A curly quote pasted from a document will break the whole block.

Mistakes that cause trouble

Can schema hurt your site? Yes, if it misleads. Hidden content, fake reviews or markup unrelated to the page can trigger a manual action. That action removes your eligibility for rich results. It does not change how the page ranks in web search.

Avoid these:

  • Wrong type. Use the specific subtype that matches what you do.
  • Invisible facts. If hours are in the markup, they must be on the page.
  • Reviews you don't have. Only mark up real ratings shown to visitors.
  • Copy and paste across locations. Identical schema on every location page misrepresents each page.
  • Stale details. When your hours or phone number change, change the markup the same day.

Don't count on FAQ markup either. According to one summary of Google's changes, FAQ rich results stopped appearing in 2026 and related reporting was dropped. Put your effort into the core business facts instead.

Our perspective

Most local business owners we meet treat schema as a magic switch. It isn't one. It is housekeeping, and good housekeeping matters.

We build sites so the facts are right everywhere: name, address, phone, hours, services. The schema then simply repeats what the page already says. When the visible page and the markup match, there is nothing to fix later.

We also think the markup belongs in the template, not pasted by hand into a dozen pages. One source of truth means one place to edit when your hours change. That is how we work with clients: transparent, hands-on, and involved from the first sketch to launch.

If you are a home service business, a realtor or a property manager, start with the basics. Get the one business node right. Then add service and area pages that tell the truth.

Loic

Want help setting it up?

If you would rather not edit templates and debug JSON, we can do it for you. We handle structured data as part of our SEO and search visibility work, alongside the site build itself. We work with business owners across Canada and the US. We scope each project to your needs and keep you in the loop from concept to launch.

Tell us what your business does and where it works. We will tell you what markup fits.

FAQ

Does LocalBusiness schema improve my local rankings?

No. Google's John Mueller has said structured data does not make a site rank better. It makes pages eligible for search features and helps machines read your details accurately. Treat any click-through gain as a bonus, not a promise.

Do I need schema if I already have a Google Business Profile?

The profile and the markup do different jobs. Your profile is managed inside Google. Your schema describes your own website. Keeping both consistent reinforces the same facts, but schema does not create or control your profile.

Which LocalBusiness type should I choose?

Choose the most specific subtype that fits, such as Plumber, Dentist, RealEstateAgent or Restaurant. Google recommends this over the generic LocalBusiness type. If nothing fits closely, use LocalBusiness and make the other details complete.

Can I add schema without a developer?

Often, yes. Many CMS platforms and SEO plugins output JSON-LD from a form. You can also paste a block like the example above into a custom code field. Validate it with both testing tools before you publish.

Sources

Written by westcode.io, an independent studio in Kelowna and Vancouver.

SEO & growth6 min read

SEO for plumbers and HVAC companies in BC: a practical local guide

Local SEO for BC plumbers and HVAC contractors: a Google Business Profile set up by the rules, service and area pages that earn their place, reviews, citations and your licence number.

SEO & growth13 min read

A step-by-step local SEO guide for Kelowna businesses

Step-by-step local SEO for Kelowna businesses: Google Business Profile, on-page basics, local content and links, and how long results really take.

SEO & growth7 min read

SEO in Kelowna: What Local Businesses Need to Know

A plain guide to SEO in Kelowna: how local ranking works, what to fix first, what agencies charge, and how to pick help without wasting money.