You don't need LocalBusiness schema for local SEO, because Google can already read your details on the page, but it helps clarify your business data for search engines and directories. For a UK business, as of October 2026, Yoast Local SEO or an AI tool makes it a quick job, so you should do it. IvI SEO's Local Signal Ratings, Jack's scores out of 10 for 33 local ranking signals, give matching name, address and phone details a 10, and schema doesn't make the list.

A consistent NAP (your business name, address and phone number) matters more than the code. Google already compiles business information from crawled web content, including a business's official website. The two required fields, name and address, decide whether a page is eligible for a rich result (an enhanced search listing), not whether the business can rank.

Worth doing, not worth obsessing over.

  • A business can rank without it. A business can still appear in the map pack, and its website in the normal search results, without any LocalBusiness schema, because the markup isn't a requirement for either.
  • Other signals carry more weight. In IvI SEO's experience, a properly filled-in Google Business Profile, reviews, links, decent website pages and consistent business details all do more for local rankings than LocalBusiness schema does.

Here's the thing. "Do I need schema?" is really two questions wearing one coat, and most of the noise around it comes from mixing them up.

The first is ordinary visibility: does your business turn up in the map pack and the normal results when someone searches "plumber Harrogate"? That comes down to how relevant you are, how close you are to the person searching and how well-known you are, which is where reviews, links and a properly filled-in Google Business Profile come in. In my experience, LocalBusiness schema isn't one of the big levers there.

The second is rich result eligibility. A rich result is a search listing with extra bits on display, and the required fields decide whether your page can even be considered for one. Miss a required field and you're out of the running for that display. Your page doesn't vanish from search. It just doesn't get the extras.

Then there's where Google gets your details from in the first place. Your website is one source. Others include licensed data from third parties, what users add (business owners included, through their profiles) and Google's own dealings with the business. So if your name, address and phone number already sit in plain text in your footer and on your contact page, the schema isn't revealing a secret. It's the same details with labels stuck on. Can Google always read the page perfectly without the labels? Nobody outside Google can promise that, and that's the honest case for adding the code anyway.

(And while I'm being grumpy: I think most schema gets oversold, not just this type. That's not the same as saying it's pointless. Product or recipe markup does a different job on a different kind of page. It's just rarely the thing standing between a local business and more calls.)

What I'd steer clear of is anyone selling LocalBusiness schema as a must-have, or as a secret weapon that'll shoot you up the map pack. It's a few lines of code that repeat your contact details. Useful, tidy, worth having. Not magic.

One honest limit: I can't prove it does nothing. I haven't run a test either way, and nobody outside Google can show you exactly how much weight it carries. So I treat it as housekeeping: do it once, do it properly, then get back to the work that actually brings in calls.

So if it's worth adding, what actually is it?

What is LocalBusiness schema?

LocalBusiness schema is code on your website, usually written in JSON-LD, that labels your business name, address, phone number and opening hours for search engines. It doesn't add anything new: it repeats details the page already shows, in a format machines can read without guessing. LocalBusiness is the general type, so use the most specific one that fits, such as Plumber or Dentist, and mark up each real location separately. It can make a page eligible for a rich result, an enhanced search listing, but it doesn't replace visible contact details, and valid code guarantees neither a rich result nor a ranking.

Picture your phone number painted on the side of a van. A person gets it instantly. A machine sees some digits next to a picture of a spanner and has to work out what they mean. LocalBusiness schema is the same number written on a form, in a box marked "telephone". Nothing new, just labelled.

A few terms, in plain English:

  • Schema is the shared vocabulary of labels (name, address, telephone and so on). LocalBusiness is one of its types.
  • JSON-LD sounds like something off a fighter jet. It's just a tidy text format for writing those labels, tucked into a script tag that visitors never see.
  • A property is one labelled field, like name or telephone.

Here's how the properties break down:

  • Required: name and address. LocalBusiness schema needs only two properties, name and address, for a page to be eligible for the local business rich result.
  • Recommended where they apply: phone, website and hours. Telephone, website address and opening hours are recommended LocalBusiness properties, not required ones.
  • Also recommended: map coordinates and price range. Map coordinates and price range are optional LocalBusiness properties that add detail without affecting eligibility.

The full list of required and recommended LocalBusiness properties is worth a skim before you trust anyone's "you must include" list, mine included.

On types: LocalBusiness is the catch-all, and the more specific ones sit underneath it. A plumber uses Plumber, a dentist uses Dentist. If you genuinely do more than one trade, the type can be a short list, say Electrician and Plumber. Two branches? Two sets of markup, one per real location, each with its own address and number.

And the code really doesn't replace your visible details. A customer on their phone can't read JSON-LD (and wouldn't want to). The number still needs to be on the page, where a human can tap it.

The code only repeats what's on your site. So can it keep your details consistent for you?

Does LocalBusiness schema make your NAP consistent?

No, LocalBusiness schema doesn't make your NAP consistent, because it only repeats the name, address and phone number your website already shows. It just provides a clean, machine-readable format that reinforces your core details. The schema sits on your own site, so it can't correct an old number on a directory listing or a Google Business Profile. Correct the website first, then make your Google Business Profile and listings match it, and add the code last. When IvI SEO checked the mentions of two UK businesses in August and September 2026, the problems were a mismatched address, an old website still live and a lookalike business name, and schema on the business's own site could fix none of them.

LocalBusiness schema can't fix a wrong phone number. It just repeats it. Schema can only copy your homework. If the homework's wrong, you just get a neater copy of the mistake.

You'll see schema sold as something that "reinforces" your NAP across the web. As far as I can see, it repeats your details in one more place, on a site you already control. If those details already match everywhere else, that's a tidy finish. If they don't, the code agrees with your website and still disagrees with everything else.

What should you sort out before adding LocalBusiness schema?

Before adding LocalBusiness schema, put your business name, address and phone number on your website and make sure they match your Google Business Profile and listings. Treat the website as the master copy of your NAP (name, address and phone number), and make everything else match it. Show the details as text in the footer and on the contact page, not inside an image, along with your opening hours, and if customers don't come to you, leave a home address off entirely. Then follow IvI SEO's wrong-before-untidy order: fix real errors, like an old phone number or a previous address, before cosmetic differences like "St" versus "Street".

So before any code, a quick checklist:

  • Name. Your real business name, the one on your signage and your Google Business Profile. Not your name with three towns and "best" glued on the end.
  • Address. The one customers actually visit. If they don't visit, it doesn't go on the website at all.
  • Phone number. One that rings you, and the same one that's on the profile.
  • Opening hours. The real ones, including that early Friday finish.
  • Where they sit on the site. Footer and contact page, as text. A phone number baked into a logo image is no use to anyone trying to copy or tap it.
  • Everywhere else. Your Google Business Profile and the main listings match the website, not the other way round.

Then fix in order of damage. A dead number loses a job. An old address sends someone to the wrong door. "St" versus "Street" loses nobody anything, so it goes to the bottom of the list (still on the list, mind). I've written up how to check and fix your NAP, worst-first order and all, so there's no need to repeat the lot here.

There's a rule on the code side too: structured data has to match what readers can see on the page, and can't be misleading. In practice, nothing goes in the schema that isn't true and visible. No invented address, no hours you don't keep, no services you don't offer, no reviews copied from somewhere else.

One honest limit: matching details aren't the whole of local SEO. Reviews, links, the right categories and decent pages on your site all play their part. Consistent NAP just stops you tripping over your own shoelaces.

Once your details are right, adding the code is quick.

How do you add LocalBusiness schema to your website?

To add LocalBusiness schema to your website, use a plugin like Yoast Local SEO or add a JSON-LD script with your real business details to the page. First, run the page through the Rich Results Test to see whether the site already outputs LocalBusiness or a more specific type, so you don't end up with two versions that disagree. On WordPress, Yoast SEO on its own isn't a full LocalBusiness setup; the Yoast Local SEO add-on adds local details such as your address and opening hours. Without a plugin, an AI tool can format your real, public details into JSON-LD, as long as you tell it to flag anything missing rather than guess. Add the script to the page that shows your business details, such as the contact page, through your site's custom code setting or a developer. Leave out reviews and star ratings of your own business.

Check first. Paste your homepage or contact page URL into the Rich Results Test, Google's free checker for structured data. Plenty of sites already output some schema from a theme or an SEO plugin. You're looking for LocalBusiness or a more specific type like Plumber. An Organization result on its own isn't the same thing, and doesn't mean your address and hours are in there. More than one schema item on a page isn't automatically a problem. Two that disagree about when you close on Saturdays is. It's also worth seeing what the businesses around you output: AI can show which schema your local competitors use that you don't.

The Yoast Local SEO route (WordPress). Yoast SEO, the SEO plugin plenty of WordPress sites already have, outputs basic schema but isn't a full LocalBusiness setup by itself. Yoast Local SEO is a paid add-on (as of October 2026 it comes with Yoast SEO Premium) that builds on it with local details like your address and opening hours. These steps follow Yoast's own setup guide as of 5 October 2026, so if a menu has moved since, go with what's on your screen.

  1. In your WordPress Dashboard, go to Yoast SEO, then Local SEO.
  2. Set your company name and logo under Site representation.
  3. In the Business info tab, say whether you have one location or several.
  4. Fill in your real details and choose the business type that fits best.
  5. Add your hours in the Opening hours tab.
  6. Save changes.

Got more than one location? Switch on multiple locations, add each one with its own details, and set a primary location, usually head office.

The AI route (any site). No WordPress, or no appetite for another plugin? An AI tool can turn your details into JSON-LD. AI is brilliant at formatting and terrible at admitting it doesn't know your postcode, so be strict with it. Something like:

Format these business details as LocalBusiness JSON-LD, using the most specific type that fits. Use only the details I've given you. If anything is missing, list it instead of guessing. Don't add reviews, ratings, prices or anything I haven't supplied.

Then paste in your real, public details: name, address (only if customers visit), phone number, website and hours. You should get back something shaped like this.

Illustrative template, not a real business. Replace every value with your own.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Example Plumbing",
  "url": "https://example.com/",
  "telephone": "+44 1632 960000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Your street address",
    "addressLocality": "Your town",
    "postalCode": "Your postcode",
    "addressCountry": "GB"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "17:30"
    }
  ]
}
</script>

Line by line:

  • <script type="application/ld+json"> and </script> wrap the lot and tell the browser this is data, not something to show on screen.
  • "@context": "https://schema.org" says which vocabulary the labels come from. Leave it exactly as it is.
  • "@type": "Plumber" is the most specific type that fits. Swap it for yours, such as Electrician or Dentist, or plain LocalBusiness if nothing closer exists.
  • "name" is your real business name, exactly as it appears on your signage and your Google Business Profile.
  • "url" is the page for this location, usually your homepage if you've only got one. It has to be a working link.
  • "telephone" is the main number customers ring. This one is 01632 960000, written with the UK +44 code in place of the first 0. It's from a range Ofcom sets aside for TV and radio drama, so nobody's real phone rings if you forget to change it.
  • "address" holds a PostalAddress: street, town, postcode and country (GB for the UK). Match the format on your website and profile, down to "Unit" or "Suite".
  • "openingHoursSpecification" lists your hours, here Monday to Friday, 08:00 to 17:30. Add another block for Saturdays, or whatever hours you actually keep.

What's missing is deliberate. There are no reviews or star ratings, because that markup is meant for sites that review other businesses, not for a business reposting its own stars. It isn't validated production code either. It's a starting shape: fill it in, then test it.

Where it goes. Use your site's custom code or header scripts setting (many website builders have one, and so do plenty of WordPress setups), or hand it to whoever looks after your site. Put it on the page that actually shows your business details, usually the homepage or contact page. Don't paste it into a normal text block: some editors strip scripts out or print them on the page as text, which looks odd to customers. And don't go editing live theme files blind. One stray bracket there can break more than your schema.

Then check it before you forget about it.

How do you check LocalBusiness schema?

To check LocalBusiness schema, test the page in the Rich Results Test, fix any critical errors, then check the live page with URL Inspection in Google Search Console. Non-critical warnings are worth fixing where you can, but they don't stop the page being eligible. Then compare every value in the code with the visible page, because a pass means the code can be read, not that the phone number is right. A pass doesn't guarantee a rich result will show, and it doesn't mean the page will rank. Check again whenever your opening hours, phone number or address change.

Quick explainers first. The Rich Results Test is Google's free tool for checking structured data: paste in a URL or a chunk of code and it tells you what it found and whether anything's broken. URL Inspection lives inside Google Search Console, the free dashboard that shows how Google sees your site, and it looks at the live page rather than a pasted snippet. You'll need access to the site in Search Console to use it.

The routine:

  1. Test the code before it goes live. Paste the script into the Rich Results Test and look for your business type in the results.
  2. Fix anything critical. Critical errors stop the markup being eligible. Non-critical warnings are tidy-ups: worth doing, not compulsory.
  3. Publish, then test the live URL. What a plugin or page builder actually outputs isn't always what you pasted in.
  4. Run URL Inspection if you have Search Console access. Make sure the page isn't blocked by robots.txt, a noindex tag or a login, which are all ways of telling Google to keep out.
  5. Compare the values with the page. Read the name, address, phone number and hours in the result against your contact page, one by one.

Step five is the one nobody does, and it's the one that matters. The Rich Results Test checks shape, not facts. It'll happily pass a phone number with two digits swapped, because to the tool that's still a perfectly good phone number.

After publishing, give it time. It can take several days for Google to find and crawl a changed page, so don't panic if nothing's different the next morning.

Then keep it current. New number, new hours, a move across town: update the website, the profile and the schema together. Out-of-date schema is just one more wrong listing, only harder to spot.

One catch if you work from home: the address.

Should you put a private address in LocalBusiness schema?

No, never put a private home address in LocalBusiness schema, because the code is public even if the page doesn't show it. Anyone can open a page's source code in a browser and read the JSON-LD, address included. This address may also get picked up by third-party crawlers looking to submit details to their directories, so your address is more than likely going to be visible there. Address is a required field for the local business rich result, so leaving it out costs you that eligibility, but it doesn't stop you doing local SEO. Hiding your address on a Google Business Profile is a separate setting with its own rules. Privacy comes first, and the rich result is optional.

Try it on any website. Right-click, choose View page source, then search the page for "ld+json". There's the schema, in plain text, readable by anyone with a browser and a bit of curiosity. So an address that's hidden on the page but sat in the code isn't hidden. It's just slightly more awkward to find.

That's why the trade-off is simple. Without an address, the page isn't eligible for that particular rich result. That's the full extent of the damage. The page can still appear in search, your Google Business Profile still works and the rest of your local SEO carries on as normal.

Don't mix this up with your Google Business Profile. A business that travels to customers can hide its address on the profile and set a service area instead, and that's a profile setting with its own rules. It doesn't put anything in your website's code, and your website's code doesn't change it. Two separate jobs.

Watch your plugin settings too. An address typed into a plugin's business info fields can end up in the code even if your theme never shows it on the page. If customers don't come to you, leave that field empty rather than popping your home address in "just for now".

And please don't invent an office. A made-up address to get a green tick is a fake detail in public, which is the opposite of what all this is for.

For keeping a home address off the web while your listings still match, see how to keep your NAP consistent without publishing a home address.

Rather not sort the details and the code yourself? You don't have to.

Want a hand with your business details and schema?

You can add LocalBusiness schema yourself with a plugin or a short JSON-LD script, or get a hand with it and your business details. Matching the name, address and phone number across the website, Google Business Profile and listings, then adding and checking the markup, is part of IvI SEO's local SEO service. The order is the same whoever does it: real errors in the business details get fixed first, and the code only repeats what the page shows. Neither route can promise a ranking or a rich result.

The do-it-yourself route covers the lot: Yoast Local SEO if you're on WordPress, or an AI tool formatting your real details into JSON-LD if you're not, then the Rich Results Test and a line-by-line check against your contact page. (Yes, I've just explained exactly how not to need me. Again.)

Getting help means I check your name, address and phone number across the website, Google Business Profile and listings, fix the real errors first, then add the markup and check it on the live page. Business details first, code last. And no promises of rankings or rich results, from me or from anyone else worth listening to.

Click here to see how I can help!