Skip to content
Nerdsharks
Free site auditBook a call

Local business schema markup: a practical guide with an example

What LocalBusiness schema markup is, which properties Google requires and recommends, a JSON-LD example, service-area and multi-location advice, and how to test it.

Local business schema markup is a small block of code on your website that describes your business in a format search engines can read without guessing. Humans see your address in the footer; Google sees it too, but structured data states unambiguously that this is the business's address, this is its phone number and these are its opening hours.

It is not a ranking trick, and Google is clear that structured data does not guarantee any particular appearance in search. But it is part of a well-built local website, it reinforces the details on your Business Profile, and it gives search engines and AI systems a clean source of facts about you.

What Google requires and recommends

Google's documentation for LocalBusiness structured data lists two required properties and a set of recommended ones. At the time of writing:

LocalBusiness properties in Google's documentation
PropertyRequired or recommendedWhat to put
nameRequiredYour business name, as on your signage and Business Profile
addressRequiredA PostalAddress with street, town, postcode and country
telephoneRecommendedYour main number, ideally with the country code, such as +44 1392 123456
urlRecommendedThe page for this business or location
geoRecommendedLatitude and longitude of the location
openingHoursSpecificationRecommendedDays and opening and closing times
priceRangeRecommendedA short relative price indicator
menu and servesCuisineRecommended for restaurantsMenu URL and cuisine type
departmentRecommended where relevantSeparate departments within a location

Choose the most specific type, then write the markup

LocalBusiness is a general type. Schema.org also defines more specific types that inherit from it, such as Dentist, Restaurant, HairSalon, AutoRepair, Plumber, Electrician, LegalService, AccountingService and many more. Use the most specific type that fits, the same way you would choose a specific Business Profile category. If nothing fits, LocalBusiness itself is fine.

Here is a simplified example for a fictional café, in JSON-LD, which is the format Google recommends. It goes inside a script tag of type application/ld+json in the page's HTML, usually on the home page or contact page for a single-location business.

{ "@context": "https://schema.org", "@type": "CafeOrCoffeeShop", "name": "Quayside Coffee", "url": "https://www.quaysidecoffee.co.uk/", "telephone": "+44 1392 000000", "address": { "@type": "PostalAddress", "streetAddress": "12 The Quay", "addressLocality": "Exeter", "postalCode": "EX2 4AN", "addressCountry": "GB" }, "geo": { "@type": "GeoCoordinates", "latitude": 50.71842, "longitude": -3.52878 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "08:00", "closes": "17:00" } ], "servesCuisine": "Coffee" }

The details are invented for illustration. Replace every value with your own, and make sure each one matches what is visible on the page and on your Business Profile.

Service-area businesses

Google's LocalBusiness documentation lists address as required, and it does not describe a special approach for service-area businesses. If you do not want your home address in your code, remember that structured data is public: anyone can read it in the page source. Only include address details you are happy to publish.

Many service-area businesses include the town and postcode district without a street address, matching what their website already shows. Schema.org also has an areaServed property to list the places you cover. Google does not list areaServed in its LocalBusiness documentation, so treat it as helpful description rather than something that changes how Google displays you.

Multiple locations

  • Give each location its own page, and put that location's LocalBusiness markup on that page only.
  • Use the same brand name in each, with that location's own address, phone, hours and geo coordinates.
  • Set url to the location page, and link the location page from its Business Profile.
  • For separate departments inside one location, such as a pharmacy inside a larger shop, Google recommends nesting them with department and including the store name in the department name.
  • Describe the organisation as a whole, with your logo and social profiles, in separate Organization markup on the home page if you want to.

Where to add it, and keeping hours current

Most website platforms have a way to add structured data. Some generate LocalBusiness markup automatically from your settings; others use a plugin; on a custom-built site it can be added to the page template so it always matches the details shown in the footer. Whichever route you use, look at the page source afterwards to confirm the markup is actually there and only appears once.

Keep one source of truth. If your hours are typed separately into the footer, the contact page and the markup, one of them will eventually be wrong. The best set-up pulls all three from the same place, so a single change updates everything.

openingHoursSpecification can describe regular weekly hours and, with validFrom and validThrough dates, special hours such as Christmas closures. Keep it simple: mark up your normal hours accurately, and make sure your Business Profile carries the special hours, since that is what most customers see.

If your hours change seasonally, such as a café that closes earlier in winter, update the markup when the visible hours change. Out-of-date markup is worse than none, because it gives search engines a confident but wrong answer.

Rules that keep markup safe

Google's general structured data guidelines say markup must represent the main content of the page and must not describe content that is invisible to users. It must be accurate and up to date. Markup that is misleading can make a page ineligible for rich results, and in serious cases lead to a manual action.

  • Only mark up information that is also visible on the page.
  • Keep hours and phone numbers in the markup updated whenever they change.
  • Do not add review markup for reviews about your own business.
  • Do not mark up locations you do not operate from.
  • Copying a generic example and forgetting to change some of the values, so the markup describes a different business.
  • Marking up an address or hours that do not match the Business Profile.
  • Adding the same markup to every page, including pages for other locations.
  • Using review or aggregateRating markup for your own reviews, expecting stars.
  • Leaving errors unfixed after a website update changes the template.

How to test it

  • Google's Rich Results Test (search.google.com/test/rich-results) checks whether your markup is valid for Google's features and shows errors and warnings.
  • The Schema Markup Validator (validator.schema.org) checks your markup against the full schema.org vocabulary.
  • After publishing, use URL Inspection in Search Console to confirm Google can see the page and its structured data.
  • Check the Enhancements section in Search Console over time for any new errors.

What schema will and will not do

LocalBusiness markup helps search engines understand your details reliably and consistently. It will not, on its own, lift you into the map pack; Google's local results are driven by your Business Profile, relevance, distance and prominence. Think of it as tidy paperwork: it removes ambiguity and supports everything else.

Every Nerdsharks website includes LocalBusiness structured data, set up to match your Business Profile and updated when your details change, so you do not have to touch the code yourself.

Questions people also ask

What is local business schema?
Local business schema is structured data that describes your business's name, address, phone, hours and other details in a machine-readable format, usually JSON-LD. It helps search engines understand those details without ambiguity.
Does local business schema improve rankings?
Google does not describe structured data as a ranking boost, and says it does not guarantee rich results. It supports accurate understanding of your business, which is useful groundwork rather than a shortcut.
Which properties does Google require for LocalBusiness?
Google requires name and address for LocalBusiness structured data. It recommends telephone, url, geo, openingHoursSpecification and priceRange, plus menu and servesCuisine for restaurants.
Can I add review stars with LocalBusiness schema?
Not for reviews about your own business; Google says review markup on LocalBusiness is only recommended for sites that capture reviews about other businesses. Self-serving review markup does not produce stars for your own listing.
How do I test my schema markup?
Use Google's Rich Results Test to check eligibility for Google's features and the Schema Markup Validator to check against schema.org. After publishing, confirm Google can see it with URL Inspection in Search Console.

Sources

£299to set up

£99a month

3working days to launch

You approve it before anything goes live.

Designed from scratch, every word written for you, hosting and Google setup included. Or pay £1,795 once and £49 a month with no minimum term.

Let’s get your phone ringing.

A tick-as-you-go checklist for showing up in Google Maps and local search. Saves your progress. Free, 10 minutes, no sign-up - or tell us what your business does and we reply the same working day.

From £99 a monthBuilt from scratch · live in 3 working daysBook a call