Local business schema generator
Fill in your trade, contact details, hours and the areas you cover, and copy a block of local business schema (JSON-LD) to paste into your website. Free, no sign-up, and nothing you type leaves your browser.
- 34 schema.org business types, all checked
- Handles service-area businesses with no address
- Copy the code, then test it with Google
Choose your business type, fill in what applies, and the code updates as you type.
Add your town: Google needs an address, and without a town it is only "GB".
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Your business name",
"address": {
"@type": "PostalAddress",
"addressCountry": "GB"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "08:00",
"closes": "18:00"
}
]
}
</script>Paste it into the head of your home page (or your contact page), then test the page with Google's tool. The details must match what visitors see on the page and on your Google profile.
What local business schema does, and what it does not
Local business schema is a short block of code on your website that states your business details in a format search engines read without guessing: your trade, name, phone number, hours, the town you are based in and the areas you cover. The format is JSON-LD, and the vocabulary comes from schema.org. Visitors never see it.
Here is the boring truth. Schema on its own does not put you in the map pack. The three businesses Google shows on the map come from Google Business Profiles, and Google says local results are "mainly based on relevance, distance and popularity". The same page adds: "There's no way to request or pay for a better local ranking on Google" (Google Business Profile Help). Schema is not mentioned on it.
Google's own structured data rules are just as plain: "Using structured data enables a feature to be present, it does not guarantee that it will be present" (Google's structured data policies).
So why bother? Because it is ten minutes' work, and it removes doubt. It tells Google that the website and the Business Profile belong to the same plumber in Leeds, with the same number and the same hours. Do it once, do it accurately, then spend your time on the profile and your reviews.
Picking the right business type
Google asks you to "use the most specific LocalBusiness sub-type possible" (Google's local business documentation). A plumber is a Plumber, not just a LocalBusiness. Every type in the tool's list was checked against schema.org on 21 October 2026.
Plenty of trades have no type of their own. There is no CleaningService, LandscapingBusiness, TreeService or PestControl on schema.org, whatever some generators offer. For those, and for plasterers, carpenters, kitchen fitters and builders who do not fit General Contractor, use HomeAndConstructionBusiness, the parent type schema.org describes as a business that "provides services around homes and buildings".
If you do two trades, such as plumbing and heating, the tool lets you add a second type. Google's documentation says to give several types "as an array", and that is what the tool outputs. Avoid ProfessionalService: schema.org marks it as deprecated.
Building and home trades
Plumber, Electrician, RoofingContractor, HVACBusiness (heating, ventilation and air conditioning), Locksmith, HousePainter, GeneralContractor, MovingCompany. Anything else on the tools: HomeAndConstructionBusiness.
Garages and motor trade
AutoRepair, AutoBodyShop, AutoWash, MotorcycleRepair, TireShop, and AutomotiveBusiness for the rest. A mobile mechanic with no workshop still uses AutoRepair, and answers "No, I go to them" in the tool.
Salons and clinics
HairSalon, BeautySalon, NailSalon, DaySpa, TattooParlor, Dentist, Physiotherapy, Optician and MedicalClinic. Pick the one your customers would use to describe you.
Everything else
AccountingService, LegalService, RealEstateAgent, ChildCare, DryCleaningOrLaundry, SelfStorage, ExerciseGym, Florist and HardwareStore. If nothing fits, plain LocalBusiness is valid.
A worked example: a mobile plumber
Take a made-up firm, Example Plumbing, run from home in Leeds, covering Leeds, Bradford, Wakefield and Harrogate. The number is from Ofcom's range kept for drama, so nobody real gets the calls. Customers never visit, so there is no street address. Here is what goes into the tool and what each line of the output means.
The tool turns 07700 900123 into +44 7700 900123, because Google says to "include the country code and area code in the phone number". It drops the street, keeps the town, and lists the four areas as places served. Monday to Friday 8am to 6pm and Saturday mornings become two lines of opening hours, not six.
- @type: Plumber
- @id: https://www.example.com/#business (a fixed label for this business, so other code on the site can point to it)
- name: Example Plumbing (exactly as it appears on your Google Business Profile)
- url: https://www.example.com/
- telephone: +44 7700 900123
- address: addressLocality Leeds, addressRegion West Yorkshire, addressCountry GB. No street, because customers do not visit.
- areaServed: Leeds, Bradford, Wakefield, Harrogate
- openingHoursSpecification: Monday to Friday, opens 08:00, closes 18:00; Saturday, opens 09:00, closes 13:00
- logo and image: the full web addresses of your logo and a photo of your work or van
- sameAs: your Facebook page and your Yell listing, the profiles that are definitely yours
- description and priceRange: optional. One plain line about the business, and a rough price guide such as ££, kept under 100 characters
If customers never come to you
Most trades work from home, and Google's own advice for the Business Profile is clear: "If you don't serve customers at your business address, remove your address from your Business Profile" (Google's service area help). Your schema should not then publish the home address the profile hides.
Answer No, I go to them to "Do customers come to you?" and the tool leaves out the street, the postcode and the map coordinates. It keeps the town, county and your Google Maps link, and lists your areas under areaServed, as towns and cities or as counties and boroughs, whichever you choose. Google's local business guide lists address as required, and says to "include as many properties as possible"; a town and country is the honest minimum for a business that does not want its house on the internet.
Keep the areas the same as the ones on your profile. Google allows up to 20 service areas there and says the whole area "shouldn't be more than about two hours of driving time" from your base. Listing every town in the county in your schema will not stretch that. Our guide to service areas versus showing your address covers the profile side.
Adding it to your site and testing it
Paste the code into the head of your homepage, or the page that carries your contact details. On WordPress, a header-and-footer code plugin or your SEO plugin's custom schema box does the job; on Wix and Squarespace, use the custom code setting for one page. One business, one block, on one page is enough.
Then check it. Paste your page address into Google's Rich Results Test, which shows whether Google can read the block and flags missing fields. The Schema Markup Validator checks it against schema.org itself, for every type.
Every detail in the code must also be on the page in plain view. Google's rule is "Don't mark up content that is not visible to readers of the page" (structured data policies). If your hours are in the schema, put them in the footer too.
Mistakes that make schema worse than none
Wrong schema contradicts your profile, and the whole point was agreement. These are the common slips.
- Adding your own star rating. Google says businesses that control the reviews about themselves are "ineligible for star review feature" with LocalBusiness markup (Google's review snippet rules). The tool does not output ratings for that reason.
- A different name or number from your profile. Trading name on one, limited company name on the other. Pick one and use it everywhere, as our NAP consistency audit explains.
- Old hours. Change the schema when you change your hours on Google, or the two disagree.
- The same block on every page. It describes the business, so it belongs where the business is described. A copy on 40 blog posts adds nothing.
- Two plugins writing schema. Your theme or SEO plugin may already output some. Run the Rich Results Test first and remove the duplicate.
- Postcodes as fake locations. areaServed says where you work; it is not a way to rank in towns you do not cover.
Common questions
What is local business schema?
A block of code, usually JSON-LD, that describes your business to search engines: type, name, phone, address or area, hours and links to your profiles. It uses the LocalBusiness type and its subtypes from schema.org.
Will schema help me rank on Google Maps?
Not on its own. Google says map results are mainly based on relevance, distance and popularity, drawn from your Business Profile (Google's help page). Schema helps Google match your website to your profile. The profile, reviews and website content do the ranking work.
What properties does Google require for local business schema?
Two: name and address. It recommends telephone, url, openingHoursSpecification, geo (latitude and longitude to at least five decimal places) and priceRange where they apply (Google's local business documentation). The tool covers all of these (geo only when customers come to you), plus description, logo, image, hasMap, sameAs and areaServed.
Is there a schema type for cleaners or landscapers?
No. schema.org has no CleaningService, LandscapingBusiness or TreeService type. Use HomeAndConstructionBusiness, which is the parent of Plumber, Electrician and the other home trades. A made-up type will fail validation.
Customers never visit me. Must the schema show my street address?
No. Answer "No, I go to them" and the tool outputs your town, county and country without the street or postcode, plus the areas you cover. That matches Google's advice to remove the address from your profile when customers do not visit.
Where do I put the code?
In the head of your homepage or contact page, once. Most website builders and WordPress SEO plugins have a box for custom code or custom schema. Then test the page in Google's Rich Results Test.
Can I add my Google star rating to the schema?
You should not. Google's rules make LocalBusiness pages ineligible for review stars when the business controls its own reviews, so self-added ratings get you nothing and can look like spam.
Is this schema generator free?
Yes. No account, no email, and the code is built in your browser. Copy it, paste it, and it is yours.
Want the reviews to look after themselves?
We run Google Business Profiles for UK trades: the reviews, the replies, the posts and the pages that get you on the map. Local SEO and Google Business Profile work is paid on results, with nothing upfront.
