Someone has told you your website “needs LocalBusiness schema”, or an SEO plugin keeps showing a warning about it. You look it up and find pages of code and talk of rich results. It sounds technical, and it partly is. But the idea underneath is simple, and for a small business the job is mostly about getting a few facts right.
This post covers LocalBusiness markup only: what it is, which details to include, how to keep it in line with your Google Business Profile, and how to check it. For the wider picture of structured data, including Service, Article and FAQ types, see structured data for AI search.
What LocalBusiness schema is
Your contact page says, in words, where you are, when you are open and how to call you. A person reads that easily. A search engine can read it too, but it has to guess which number is the phone and which is a postcode.
LocalBusiness schema is a small block of structured information, hidden from visitors, that states those facts in a fixed format search engines understand. It uses the vocabulary published at schema.org, and is most often written in a format called JSON-LD that sits in the page’s code.
It does not change how the page looks. It does not make you rank on its own. What it does is remove guesswork: it tells Google plainly that this page belongs to a business with this name, at this address, open at these times.
The details worth including
Google’s documentation for local business structured data treats the name and address as the essentials and lists several others as recommended. For a typical small business, these are the ones that matter:
- A specific type. schema.org has many subtypes of LocalBusiness, such as Dentist, Bakery, Plumber, AutoRepair or AccountingService. Use the most specific one that honestly fits. If none does, plain LocalBusiness is fine.
name: the business name exactly as customers see it on your signage and profile, without added keywords.address: the full postal address, split into street, town or city, region, postcode and country.telephone: the main number, ideally with the country code, so it works for callers abroad.url: the address of your website.- Opening hours: the days and times you are open. Google’s documentation describes these with
openingHoursSpecification, which handles different hours on different days. schema.org also has a simpleropeningHoursproperty. geo: the latitude and longitude of the premises. You can read these from a map app by selecting your location.
Optional extras include a logo or image, a price range, and sameAs links to your official profiles elsewhere, such as social media pages. Add them if they are accurate. Leave them out if you are not sure.
If you have no public address
If you visit customers and keep your address hidden on Google, think carefully before publishing a street address in your markup. Your structured data should not reveal what you have chosen to keep private, and it should not invent an office you do not have. Service-area businesses on Google Maps explains that setup in more detail. If you are unsure what to include in your case, use the business name, phone, website and the area you serve, and get advice before adding an address.
Match what the page shows, and what the profile says
This is the rule that matters most. Google’s general guidelines for structured data say the markup must describe content that is visible on the page and must not be misleading. In practice:
- The address, phone and hours in the markup should also appear on the page where the markup lives, usually the homepage or contact page.
- They should match your Google Business Profile exactly: same name, same number, same address format, same hours.
- When something changes, update all three together: the profile, the visible page and the markup.
A common problem is markup added once by a developer years ago, still listing an old phone number or old hours, while the page itself has been updated. Search engines then see two different answers from the same site. Name, address and phone consistency covers the wider job of keeping these details aligned across the web.
One more caution: do not add star ratings to your own business markup by copying your Google reviews into it. Google does not show review stars for markup a business writes about itself, and it can treat this as misleading.
How Rank Math or Yoast may handle it
If your site runs on WordPress with an SEO plugin, you may already have some of this markup without knowing.
Rank Math has a local SEO setting where you choose whether the site represents a person or an organisation, pick a business type, and enter the address, phone and opening hours. It then outputs the markup for you.
Yoast SEO outputs organisation details as part of its structured data. Fuller local business markup, such as opening hours and multiple locations, is handled by a separate Yoast local SEO add-on.
A few things to check if you use a plugin:
- Is the information filled in? A plugin can only output what you entered. Many sites have the setting switched on with half the fields empty.
- Is it duplicated? If a theme, a page builder or an older plugin also adds business markup, you can end up with two conflicting versions. Run the test below and see how many business entries appear.
- Is it current? Plugin settings are easy to forget when hours or numbers change.
If you do not use a plugin, a developer can add a single JSON-LD block to the homepage or contact page. Keep it in one place, so there is only one version to update.
Testing it with Google’s Rich Results Test
Once the markup is in place, check it. Google’s Rich Results Test is a free tool; search for it by name and paste in the address of the page. It shows which structured data it found, and lists errors and warnings.
- Errors mean something is broken or a required detail is missing. Fix these.
- Warnings usually mean a recommended detail is missing. Add it if you have it and it is accurate. Otherwise a warning is acceptable.
The Schema Markup Validator, run by schema.org, is another option. It checks the markup against the schema.org vocabulary in general, not only the parts Google uses.
Passing the test does not mean Google will show anything special in results. It means the markup is readable. Whether and how Google uses it is up to Google.
After testing, read through the detected details yourself. A tool can confirm the format is valid; only you can confirm the phone number is the right one.
Where it fits
LocalBusiness markup is a small, tidy piece of the work. It will not make up for a thin website or an incomplete Google Business Profile. But it costs little to get right, and it reinforces the same facts you are already publishing elsewhere. Getting local customers online shows how it sits alongside the profile, reviews and your website.
If you would like it set up and checked as part of wider local search work, our local SEO services include structured data alongside the profile and listings.
Next in this series: Tracking Calls and WhatsApp Clicks From Your Website