Skip to content

Review growth guide

Local Business Schema: Add, Test and Maintain It

A practical UK guide to LocalBusiness schema: choose the right markup, add accurate JSON-LD, test it properly and keep it current.

Local SEO foundations

Make it easier for search engines to understand your real-world business

Local business schema is a short block of structured data added to your website. It labels important facts such as your business name, address, phone number, opening hours and business type in a format that search engines can interpret more consistently.

For a small UK business, the aim is not to add every possible field or chase a guaranteed rich result. The aim is to publish a clear, accurate description of each genuine location, test that it can be read and keep it aligned with what customers see on your website and elsewhere online.

What is LocalBusiness schema?

Structured data is standardised code that gives search engines explicit clues about what a page is about. LocalBusiness is the Schema.org type for a particular physical business or branch, and it sits within both the Organization and Place families. Google recommends using the most specific applicable subtype where one exists, such as Restaurant, DaySpa, HealthClub or Store. Google’s Local Business structured data documentation also says that each location should be defined as its own local business entity. Google Search documentation

In practice, most local businesses use JSON-LD: a small block of code placed in the page source rather than woven through visible text. Google recommends JSON-LD because it is usually simpler to implement and maintain, though Microdata and RDFa can also work when valid. Google’s introduction to structured data explains the distinction and why JSON-LD is normally the practical choice for site owners. Google Search documentation

A useful way to think about it

Your normal page tells people, ‘We are a family-run plumber in Leeds, open six days a week.’ LocalBusiness schema labels the same information so systems can identify the business name, category, address and hours without having to infer every detail from surrounding copy.

What LocalBusiness schema can and cannot do

It can clarify key facts

It gives search engines a structured version of your location, contact details, hours and relevant business category.

It can support eligibility

Correct markup may make a page eligible for relevant enhanced search appearances, depending on the search feature and query.

It cannot guarantee visibility

It does not guarantee a knowledge panel, star rating, local-pack position, traffic increase or a rich result.

That final point matters. Google states that correct structured data does not guarantee an enhanced appearance in Search: results vary according to factors including the query, location, device and Google’s assessment of what is useful for that search. Treat schema as sound technical housekeeping, not a shortcut around local relevance, strong service pages, a complete Google Business Profile or good customer experience. General Structured Data Guidelines

Who should use local business schema?

Schema is most useful when your site represents a real business that serves customers locally: a café, dental practice, garage, estate agent, electrician, beauty salon, solicitor’s office, restaurant, gym or retailer. It is especially worthwhile where core facts can be confused, duplicated or changed, such as businesses with several branches, seasonal opening hours or similarly named competitors.

Business situation Practical schema approach Important caution
One customer-facing premises Add one LocalBusiness entity to the homepage or main contact/location page. Use the real customer-facing address and primary phone number shown on the page.
Several branches Create a separate, indexable location page and a separate business entity for every branch. Do not use one generic address or blend all branch hours into every page.
Service-area business Describe the genuine business base only where it is appropriate to publish it; use service pages to explain the areas and services covered. Never invent a staffed office, virtual address or postcode merely to target a town.
Restaurant, café or takeaway Use Restaurant or another relevant food-establishment type; add a genuine menu URL and cuisine where applicable. Keep menu, opening times and delivery or collection information visibly current too.
Online-only business Usually use Organization schema rather than LocalBusiness. A trading address alone does not make an online company a customer-facing local location.

A service business may also use areaServed to describe where a service is offered. Schema.org defines that property as the geographical area where a service or offering is provided. It can be useful supporting context, but it is not a substitute for accurate location information and should not be treated as a way to rank in every town named. Schema Org guidance

Choose the right schema type and fields

Start with the most precise type that honestly describes the business. A restaurant should normally use Restaurant, a gym may use HealthClub, and an electrician can use Electrician where that reflects the core business. If no specific subtype fits, use LocalBusiness or, for many professional firms, a relevant type such as ProfessionalService.

Do not force a niche type simply because it sounds more SEO-focused. The structured data must accurately represent the page and its visible content. Google’s general guidance also requires the page to be accessible for crawling and warns against hidden, irrelevant or misleading markup. General Structured Data Guidelines

The essential LocalBusiness fields

Property What to provide Practical UK advice
@context The Schema.org context. Use the standard Schema.org context exactly as shown in the template below.
@type The most specific honest business type. Choose one core type, or a valid array where the business genuinely has more than one applicable type.
name Your trading name. Match the name used prominently on the website and business profiles. Do not add promotional phrases to it.
address A structured postal address. Use a full, real UK address where it is published. Google lists name and address as required LocalBusiness properties for rich-result eligibility.
url The specific page for that business location. Use the canonical HTTPS URL, not a tracking link, campaign page or homepage for every branch.
telephone The main customer contact number. Use international format, for example beginning +44, and ensure the number works.
openingHoursSpecification Opening hours by day. Use 24-hour times. Update the visible hours and markup together when they change.
geo Latitude and longitude for the actual premises. Useful for a public location; do not use approximate coordinates for a made-up base.
image and logo Representative, crawlable image files. Use brand or premises imagery that is genuinely relevant and available to visitors.
sameAs Profiles that clearly identify the same business. Use official social or directory profiles only. Do not add unrelated platforms just to make the list longer.

Google’s own LocalBusiness reference lists geo, opening-hours specifications, priceRange, telephone and location URL among its recommended properties, while its Organization guidance recommends useful identity details such as logos and official profile links where relevant. Google Search documentation

!

Do not add your own review stars to LocalBusiness schema

If your business controls the page where its own reviews appear, Google says LocalBusiness and Organization pages are not eligible for the star-review feature, including where reviews arrive through an embedded third-party widget. Do not copy ratings from Google, Facebook, Trustpilot or elsewhere into aggregateRating markup in the hope of earning stars in organic results. Focus on displaying authentic reviews for people, and on building a consistent review collection process instead. Google Search documentation

How to add local business schema

Before anyone writes code, create one reliable source of truth. Compare the business name, address, phone number, primary URL and regular hours across the website, Google Business Profile, signage and major listings. Minor formatting differences, such as writing ‘Road’ rather than ‘Rd’, are less important than factual conflicts such as an old phone number, closed branch or incorrect Saturday hours.

1

Decide which page describes the location

For one premises, this is often the homepage or contact page. For several branches, use one substantial page per branch with the branch address, local phone number where applicable, opening times, directions, services and relevant team or booking information.

2

Choose the most specific truthful type

Use Restaurant for a restaurant, not a generic LocalBusiness type; use a general local-business type only when a more accurate one does not exist. If a firm provides several trades, Google allows multiple types in an array where each genuinely applies.

3

Build one complete entity

Include the core facts in a single JSON-LD entity and give it a stable @id. That ID is an internal identifier, usually based on your canonical homepage or location URL followed by a fragment such as #business.

4

Put the data where it belongs

Add the block to the page that actually describes that business location. Do not create empty schema-only pages, and do not use a page about Leeds to mark up an office in York.

5

Check for duplicate markup before publishing

Your SEO plugin, theme, page builder or booking system may already generate Organization or LocalBusiness data. One clear entity is easier to maintain than several conflicting versions.

6

Test the draft, then test the live page

Use a code test before publishing where possible, then inspect the public URL after deployment. The testing process is explained in detail below.

A copy-and-adapt JSON-LD template

This example is for a fictional electrician with a public office in Brighton. Replace every example value with information that is visible on the relevant page and accurate for your business. Remove properties that do not apply rather than filling them with guesses.

Example: single-location electrician
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Electrician",
  "@id": "https://www.example.co.uk/#business",
  "name": "Harbour Electrical Services",
  "url": "https://www.example.co.uk/",
  "telephone": "+441273555010",
  "email": "hello@example.co.uk",
  "logo": "https://www.example.co.uk/images/logo.png",
  "image": "https://www.example.co.uk/images/brighton-office.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "27 Example Road",
    "addressLocality": "Brighton",
    "addressRegion": "East Sussex",
    "postalCode": "BN1 1AA",
    "addressCountry": "GB"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 50.82253,
    "longitude": -0.13716
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "17:30"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "09:00",
      "closes": "13:00"
    }
  ],
  "areaServed": [
    {"@type": "City", "name": "Brighton and Hove"},
    {"@type": "AdministrativeArea", "name": "East Sussex"}
  ],
  "sameAs": [
    "https://www.facebook.com/harbourelectricalservices"
  ]
}
</script>

How the template changes by business type

A restaurant can use Restaurant as its type and add servesCuisine, priceRange and a URL for the current menu. Google specifically lists menu and cuisine fields for applicable food establishments. A dental practice or physiotherapy clinic might use a more suitable healthcare type where it accurately reflects its services, but should avoid publishing clinical claims or unavailable treatments in schema.

For a multi-branch retailer, each branch needs its own name, address, phone number, coordinates, hours and page URL. Do not simply place a list of all addresses in one homepage block and call it done. Google’s documentation is clear that each location should be represented as a LocalBusiness, and a department with genuinely different contact details or opening hours can be nested as a department. Google Search documentation

Opening hours: the detail most likely to go stale

Use separate opening-hours entries whenever the pattern changes. For example, a restaurant open from 18:00 on Saturday until 03:00 on Sunday should be modelled as Saturday opening at 18:00 and closing at 03:00. Google’s guidance also covers 24-hour businesses and temporary seasonal closures using validFrom and validThrough. Google Search documentation

For bank holidays, unexpected closures and one-off late openings, prioritise updating the visible page and Google Business Profile promptly. Update the schema at the same time if those changed hours are represented there. Accuracy for customers matters more than trying to encode every exception in a complex format.

Ways to publish JSON-LD on a WordPress site

The right method depends on who maintains the site and what is already generating schema. Choose the least complicated approach that lets you edit the data safely and prevents duplicates.

Do

  • Check existing page source before adding another plugin.
  • Use a reputable schema feature in an existing SEO plugin if it outputs the fields you need accurately.
  • Ask a developer to add reusable location-page fields for a multi-branch business.
  • Keep a copy of the approved data in a simple location record or spreadsheet.
  • Use a child theme or safe code-injection method if a custom block is needed site-wide.

Don’t

  • Install several SEO and schema plugins that all output overlapping business data.
  • Paste the same location JSON-LD unchanged on every branch page.
  • Put test code live with placeholder names, images or addresses.
  • Rely on a page-builder preview without checking the published page source.
  • Use tag-manager injection as an excuse not to document who owns updates.

For a straightforward single-location site, a carefully configured SEO plugin or a custom JSON-LD block may be enough. For several locations, a developer-maintained template is often safer because it can pull each branch’s address, phone number and hours from controlled fields. Google can process structured data generated with JavaScript when it is available in the rendered page, but simpler server-rendered or template-driven implementation is generally easier to audit over time. Google Search documentation

How to test LocalBusiness structured data

Testing has three different jobs: confirm that the code is valid, confirm that Google can access the live page, and confirm that the data still matches the business. A green tick in one tool is useful, but it is not proof that the page will gain a particular search appearance.

Tool or check What it tells you Best time to use it
Schema Markup Validator Whether Schema.org data can be extracted and whether there are syntax or vocabulary issues. While building or debugging a code snippet.
Google Rich Results Test Whether Google can process supported structured data on a snippet or accessible URL, plus errors and warnings. Before launch with code input, then after publishing with the live URL.
Google Search Console URL Inspection How Google sees the indexed page and whether the live page can be crawled, indexed and rendered. After publishing, after a major template change or when a page is missing from search.
Human comparison check Whether code, visible page content, Google Business Profile and real-world information agree. Every time a material business detail changes.

The Schema Markup Validator extracts JSON-LD, Microdata and RDFa and highlights syntax mistakes, but it is a Schema.org validator rather than a promise of Google rich-result eligibility. The Rich Results Test adds Google-specific feedback, while URL Inspection helps establish whether Google can access the actual published page. Schema Org guidance

  1. Test the code: paste the JSON-LD into the Rich Results Test before adding it to the site, or test a staging URL that the tool can access.
  2. Fix errors first: invalid JSON, missing required values and malformed addresses need attention before release.
  3. Review warnings sensibly: warnings are not always blockers, but fix useful applicable fields rather than ignoring them automatically.
  4. Test the public URL: confirm the tool sees the same entity you intended to publish.
  5. Inspect in Search Console: run a live test, review crawl and index status, then request indexing if the page has materially changed.
  6. Recheck after deployment: caches, optimisation plugins and template changes can alter or remove markup.

Google says the Rich Results Test supports JSON-LD, Microdata and RDFa, and its code mode is useful for checking a draft before it is public. After launch, URL Inspection separates the live test from Google’s indexed view, which can be older than the latest page version. Google Business Profile guidance

How to interpret errors, warnings and no results

Error

A critical issue that can prevent the item from being processed or eligible for the relevant feature. Fix it before considering the job complete.

Warning

A non-critical issue or missing recommended field. Review whether the field is genuinely applicable and can be completed accurately.

No rich result shown

This does not necessarily mean the markup failed. Check crawlability, index status, visible content and guidelines, then allow time for recrawling.

Google notes that a valid test result still does not guarantee that a rich result will appear. Common blockers include pages that are not indexed, pages blocked by login requirements, robots.txt or noindex, and markup that does not meet quality guidance. General Structured Data Guidelines

Common LocalBusiness schema mistakes

Good practice

  • Mark up the named location that the page actually describes.
  • Use full address parts, including the UK postcode and GB country code where applicable.
  • Keep page copy, contact page, schema and business-profile facts in step.
  • Use high-quality business or premises imagery that people can access.
  • Retest after redesigns, migrations, new plugins and location-page changes.

Risky or ineffective practice

  • Creating fake branches or using mailbox addresses as if they were staffed locations.
  • Adding every service, town and keyword to the business name.
  • Marking up ratings copied from third-party review platforms on your own business page.
  • Leaving old opening hours in code after changing them on the page.
  • Assuming a schema plugin’s default data is correct without reviewing it.

Maintain schema as part of normal local marketing

LocalBusiness schema is not a one-off task. It is business data, so it needs an owner and a simple update routine. The good news is that most businesses only need to revisit it when something meaningful changes.

Update immediately when any of these change

  • Trading name, legal structure or primary branding
  • Address, suite or unit number, postcode, contact number or main website URL
  • Regular opening hours, seasonal closures or a new booking/contact method
  • New branch, branch closure, relocation or merger
  • Restaurant menu URL, cuisine description or price positioning
  • Site redesign, CMS migration, new SEO plugin or changed page template

Review the live markup at least quarterly, and before seasonal trading peaks. A monthly check is sensible for restaurants, hospitality businesses, clinics and other firms that frequently alter hours. Keep a record of the page URL, location owner, last-checked date and the approved name, address, phone number and hours.

Also monitor the broader local-search picture. Schema works best alongside accurate profiles, useful location and service pages, prominent contact routes and a credible stream of customer feedback. For the wider framework, see this practical local SEO guide for UK businesses.

How to measure whether the implementation is healthy

Measure implementation quality separately from commercial outcomes. First, confirm that the relevant pages remain indexable, the markup is valid and the facts are current. Then track broader local organic performance over time rather than attributing every change in rankings or enquiries to schema.

Technical health

Number of location pages with valid live markup; errors found; warnings reviewed; pages blocked from indexing.

Search visibility

Impressions, clicks and query trends for branded and local-intent pages in Search Console.

Customer action

Calls, form enquiries, bookings and direction requests measured through your normal analytics and call-tracking setup.

Use a before-and-after record around the rollout date, but allow for seasonality, advertising, reviews, competitors, site changes and normal ranking volatility. If search visibility is the wider problem, work through local relevance and conversion fundamentals rather than adding increasingly elaborate schema properties. Our guide on ranking higher locally explains those wider priorities.

A practical 30-day LocalBusiness schema plan

Days 1–5

Audit the facts and existing markup

List every genuine location. Check the website, Google Business Profile and major customer-facing listings for inconsistent name, address, phone and hours data. View page source or use a validator to identify what schema already exists.

Days 6–14

Build and publish the right entities

Create a complete JSON-LD record for the primary location, then adapt it carefully for every additional branch. Add only meaningful, truthful properties and ensure each location page has useful visible content.

Days 15–21

Test live pages and resolve conflicts

Run the Rich Results Test, inspect live URLs in Search Console and fix errors. Check that plugins, themes and widgets are not outputting contradictory business names, addresses or review data.

Days 22–30

Create the maintenance routine

Assign responsibility for updates, add a quarterly review date and record the approved location data. Submit or refresh your sitemap in Search Console after significant location-page changes; Google describes sitemap submission as a discovery hint rather than a guarantee of crawling. Google Search documentation

Make your business information dependable before making it more elaborate

A concise, accurate LocalBusiness entity that matches a helpful location page is stronger than a long list of speculative properties. Start with the essential facts, test the public page, document who updates it and revisit it whenever the business changes.

If keeping website details, local visibility work and customer-review activity aligned is taking time away from running the business, a fully managed Review Flywheel can provide a more structured way to keep those local-growth essentials moving.

Frequently asked questions

Is LocalBusiness schema a Google ranking factor?

Google does not state that LocalBusiness markup is a direct local-ranking factor. It can help Google understand business information and may support eligibility for relevant search features, but it does not guarantee rankings, rich results or traffic. General Structured Data Guidelines

Where should I put LocalBusiness schema on my website?

Place it on the page that genuinely describes the business location. For one premises, that is often the homepage or contact page. For several branches, give each branch its own useful location page and entity. Google Search documentation

Should a service-area business publish its home address in schema?

Do not publish a private address merely to satisfy a markup checklist, and never invent an office. Use only location information that is genuine and appropriate to show publicly; explain service coverage clearly on visible service and area pages.

Can I add Google review stars to my LocalBusiness schema?

Not for your own business page. Google says LocalBusiness and Organization pages controlled by the reviewed business are ineligible for the star-review feature, including ratings shown through embedded third-party widgets. Google Search documentation

Do I need schema on every page?

No. Start with the page for the main business location and separate pages for genuine branches. Add other schema types only where they accurately describe the main visible content of another page.

What is the best format for local business schema?

JSON-LD is usually the best practical format because Google recommends it and it is generally easier to implement and maintain than markup embedded throughout page HTML. Google Search documentation

How do I test LocalBusiness schema before publishing?

Paste the code into Google’s Rich Results Test or the Schema Markup Validator. After publication, test the live page URL and use Search Console URL Inspection to check crawlability, indexing and the live rendered page. Google Business Profile guidance

How often should LocalBusiness schema be updated?

Update it whenever core facts change, including address, phone number, hours, website URL, business name or branch status. Review live markup at least quarterly, and more frequently where opening hours change often.

Sources and further reading

The guidance in this article was checked against the following current sources. Platforms, laws and interfaces can change, so confirm important details before acting.

Ready to have this handled for you?

We can build and manage the complete Review Flywheel around the way your business already works.

Have This Done For Me