Schema for Local Business: A Practical Guide for UK Trades

LocalBusiness schema is a block of structured data, usually JSON-LD, that tells Google your business name, address, phone number, opening hours and trade in a format it can read without guessing. You add it to your homepage and contact page, use the most specific business type available (such as Electrician or Plumber), and keep it matching what your site and Google Business Profile say. It makes your business easier to understand. It does not guarantee a ranking or a rich result.
This guide is written for UK plumbers, electricians, roofers, builders and other trades who want to know what to add, where it goes and how to check it.
TL;DR
- LocalBusiness schema is structured data that describes your business to search engines. Google documents it as a way to help your business details appear in search, with no promise of any particular result.
- Use a specific subtype (Electrician, Plumber, RoofingContractor) rather than the generic LocalBusiness, and include at least name and address, plus telephone, opening hours and geo coordinates.
- Put a proper block on the homepage and contact page. Do not paste the identical block on every page.
- Test with Google’s Rich Results Test and the Schema Markup Validator, then re-check whenever your hours, phone number or address change.
- Schema must match reality. Treat it as part of ongoing site maintenance, not a one-off job.
Table of Contents
- What LocalBusiness schema actually is
- Why it matters for a trade business
- Which properties to include
- A JSON-LD example for a UK trade
- Where to put it, and where not to
- How to add schema to your website
- Test it before and after it goes live
- Common mistakes on trade sites
- Our perspective: schema is maintenance, not magic
- Keep it consistent with the rest of your site
- Want it done for you?
- FAQ
- Sources
What LocalBusiness schema actually is
Schema.org is a shared vocabulary that search engines use to label things on a web page. LocalBusiness is the type for a particular physical business or a branch of a larger organisation. Its usage is estimated at between 1 million and 10 million domains according to Google’s web index figures for July 2026, so it is a mainstream part of the web rather than a niche trick.
The most common way to add it is JSON-LD: a small script in the page that sits apart from your visible design. Visitors never see it. Google reads it and can use it to understand who you are, where you work and how to contact you.
A point that confuses many people: “business schema” is a loose phrase. In practice it usually means Organization-level information (legal name, logo, contact points, company identifiers), while LocalBusiness is a more specific type that adds the physical location and local service details. Schema.org’s Organization type lists the shared properties, and LocalBusiness builds on them, so you can use both sets of fields together.

Why it matters for a trade business
When someone searches for a type of business, Google may show a knowledge panel with details about a business that matched. Google’s documentation says local business structured data can help your business details appear in that kind of result. The details people care about are simple: a Call button, directions, hours and reviews.
For a trade, that matters because the customer is often in a hurry. A burst pipe or a failed consumer unit means they want a number to ring, and they want to know you cover their postcode. Schema helps Google read those facts correctly. It cannot make you appear, and nobody can honestly promise it will lift your position. Think of it as removing ambiguity, not buying visibility.
It also sits alongside your Google Business Profile, not instead of it. The profile is what Google Maps and the local pack mostly draw on. Schema is the matching statement on your own website. If you have not yet sorted the profile, start with our guide to verifying your Google Business Profile and listing services.
Which properties to include
Google’s guidance says to provide the properties that apply to your business, and the essentials are the name and a structured postal address. For a trade business, add these as well:
| Property | What it does | Trade note |
|---|---|---|
| name | Your trading name | Use exactly the name on your van, invoices and Google profile |
| address (PostalAddress) | Street, town, postcode, country | If you work from home and hide your address on Google, think carefully before publishing it in schema |
| telephone | The number you want customers to ring | Use the same number as your profile and site header |
| openingHoursSpecification | Days and times you take calls or work | Update it for bank holidays and seasonal changes |
| geo | Latitude and longitude | Needs at least five decimal places of precision, or it may be ignored |
| priceRange | A rough price indicator | Must be shorter than 100 characters or Google will not display it |
| url, image, logo | Your site, a photo, your logo | Use the same logo as your branding |
| areaServed | Towns or areas you cover | Useful for mobile trades with no shopfront |
| sameAs | Links to your profiles | Google Business Profile, Facebook, trade body page |
The geo and priceRange limits come from Google’s LocalBusiness documentation. Check that page for the current full list of supported properties before you publish, as it is updated from time to time.
Choose the most specific type
Do not stop at “LocalBusiness” if a better label exists. An electrician should be marked up as Electrician, a plumber as Plumber. Schema.org has subtypes for many trades, including roofing contractors, locksmiths and house painters.
If you genuinely do more than one thing, Google’s own example uses an array of types. For a firm doing both electrical and plumbing work, that looks like [“Electrician”, “Plumber”]. Only list trades you actually offer and would want enquiries for. Padding the list with every trade you can think of is misleading, and it makes your markup less trustworthy, not more.
A JSON-LD example for a UK trade
Here is a worked example for a made-up electrician in Corsham, Wiltshire. Every detail is a placeholder: swap in your own, and use your real coordinates to five decimal places.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Electrician",
"@id": "https://www.example-electrical.co.uk/#business",
"name": "Example Electrical Ltd",
"url": "https://www.example-electrical.co.uk/",
"logo": "https://www.example-electrical.co.uk/logo.png",
"image": "https://www.example-electrical.co.uk/van.jpg",
"telephone": "+44 1234 567890",
"priceRange": "££",
"address": {
"@type": "PostalAddress",
"streetAddress": "1 High Street",
"addressLocality": "Corsham",
"addressRegion": "Wiltshire",
"postalCode": "SN13 0AA",
"addressCountry": "GB"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.43370,
"longitude": -2.18480
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00",
"closes": "17:30"
}],
"areaServed": ["Corsham", "Chippenham", "Bath"],
"sameAs": ["https://www.facebook.com/example"]
}
</script>
Note the @id. It gives your business a stable identifier that other markup on your site can point to, which brings us to where the code goes.
Where to put it, and where not to
A frequent mistake is pasting the same LocalBusiness block onto every page. It feels thorough, but it adds clutter and invites conflicting information. A sensible set-up looks like this:
- Homepage: the full LocalBusiness block, with the @id.
- Contact page: the same business details, so address, phone and hours are marked up where customers expect to find them.
- Service pages: a Service block (or FAQPage, if the page has real questions and answers) that refers back to the business by its @id, rather than repeating all the details.
- Everywhere else: nothing business-specific is needed.
This connected approach, where pages reference one consistent entity, keeps your data tidy and avoids contradicting yourself. If you have several branches, give each its own page and its own block with its own address, phone number and hours.
The type is meant for a genuine business or branch. If you cover a wide area from a van with no public premises, describe the areas you serve with areaServed and be careful about publishing a home address. Our post on Google Business Profile for contractors explains how service-area businesses are handled on the profile side, and the two should tell the same story.
How to add schema to your website
The method depends on how your site is built.
On WordPress
Most WordPress SEO plugins have a local business or organisation setting that outputs the JSON-LD for you. This is the easiest route if you fill in every field properly. Check what the plugin actually outputs by viewing the page source or running the test below, because defaults are often incomplete (no geo, no hours, a generic type).
On a hand-built or framework site
Paste the script into the head or body of the template for the homepage and contact page. Keep the details in one place in your code so a change of phone number updates everywhere at once.
Through a tag manager
Some people inject JSON-LD with Google Tag Manager. It works, but it adds a moving part that can break silently. For a small trade site, putting it directly in the page is simpler and easier to audit.
Generating the code
You can write the block by hand from the example above, or use a generator and then read the output line by line. If you are weighing up software that automates structured data and technical audits, this overview of schema markup for professional services sites is one view of how structured data helps businesses be described accurately in search. Whatever you use, you remain responsible for the facts in it.
Test it before and after it goes live
Google’s guidance is to start with the Rich Results Test to see which Google results your page can generate, and to use the Schema Markup Validator for generic checking of any schema.org markup. Both are described on Google’s structured data testing page.
A simple routine:
- Paste your live URL (or code) into the Rich Results Test and fix any errors.
- Run the Schema Markup Validator to catch type or property mistakes that are not Google-specific.
- Compare every value with your Google Business Profile: name, phone, address, hours.
- Submit the page for re-inspection in Search Console if you changed it.
Warnings about optional properties are normal. Errors on required ones are not. A clean test shows your markup is readable, which is not the same as a promise that Google will show anything special.
Common mistakes on trade sites
- Using the generic type. LocalBusiness alone throws away the chance to say what you actually do.
- Mismatched details. A different phone number in schema, on the site and on your profile confuses people as well as machines.
- Marking up things the page does not show. Google’s rules expect structured data to reflect what visitors can see on the page. Do not add reviews or ratings to your markup that are not genuinely displayed and sourced.
- Copying a competitor’s code. You will inherit their address and phone number if you forget one field.
- Too-short coordinates. Under five decimal places, the geo data can be ignored.
- Forgetting it exists. Hours change, phone lines change, and the markup quietly goes out of date.
Our perspective: schema is maintenance, not magic
We build and manage websites for trades, and we see the same pattern. A tradesperson hears that schema is a ranking secret, pays for a plugin, and never looks at it again. Six months later the opening hours are wrong, the old mobile number is still in the code, and nobody knows.

Our view is simple. Schema is a small, useful part of a site that is already doing its job: clear service pages, a visible phone number, written content that says where you work, and a Google Business Profile that is verified and kept current. It supports that foundation. It does not replace it, and we would never promise that adding it will deliver a particular position or number of calls.
The part trades most often miss is upkeep. Google’s documentation says the markup should reflect the real business, so when something changes, the schema has to change with it. That is why we treat it as a routine check within monthly management, alongside hosting, security and content edits, rather than a box ticked at launch. If you want to see how we think about the profile side, our 90 day Google Business Profile audit sets out the checks we run, and how to track local SEO without trusting one map check covers measuring it honestly.
— Trey
Keep it consistent with the rest of your site
Schema works best when the visible page agrees with it. That means your business name, address and phone number appear in plain text on the site, in the same form as in the code, and match your listings elsewhere. Our guide to fixing local citations covers the main directories to claim so the details line up.
A professional site also needs the basics that sit around technical SEO: a privacy notice and a cookie notice that explain what data you collect. The government’s guidance on privacy and cookie notices describes the purpose of each page. It is written for a different platform, but the principle carries over to any UK business site that uses a contact form or analytics. If you are unsure of your obligations under UK data protection law, ask a qualified adviser.
Want it done for you?
If you would rather not touch code, we build trade websites to launch in 10 to 14 days with the content written for you, and we handle the technical side. Our Shopfront plan is £39 per month with a £299 one-off setup, and Shopfront Plus is £59 per month with a £399 setup; the full range is on our pricing page. If you already have a site and want it kept accurate, monthly management starts from £20 per month, and our Google Business Profile service keeps your listing in step with your site. For the wider picture, see our website design and monthly management for UK trades.
FAQ
What is a local business schema?
It is structured data, normally written in JSON-LD, that describes a physical business to search engines: its name, address, phone number, hours and type. It uses the LocalBusiness vocabulary from schema.org. Visitors do not see it, but Google can read it.
How do I create a local business schema?
Choose the most specific type for your trade, then fill in name, address, telephone, opening hours and geo coordinates. Write it as a JSON-LD script, or let a plugin generate it and check the output. Then test it with Google’s Rich Results Test.
Do I need schema on every page?
No. Put a full LocalBusiness block on your homepage and contact page. Other pages, such as service pages, can use their own markup that points back to the business by its @id, which avoids duplicated or conflicting data.
Will schema improve my Google ranking?
It helps Google understand your business and can make your details eligible for certain search features, but no one can guarantee a ranking or rich result from it. Treat it as one part of a sound local SEO set-up alongside your site content and Google Business Profile.
Sources
- Local Business (LocalBusiness) Structured Data, Google Search Central
- LocalBusiness, Schema.org
- Organization, Schema.org
- Schema Markup Testing Tool, Google Search Central
- Set up site privacy and cookie notice options, Government campaign user guide
