JSON-LD is a block of structured data placed in a page that tells search engines and AI tools, in a fixed format, who your business is, where it operates and what it sells. For a local service business, the core is a LocalBusiness or ProfessionalService node for the business and a Service node for each thing you sell, linked by an ID. Below is a copy-paste template you can adapt, with each field explained.
By Reyaz Alam. Last updated October 12, 2026.
What is JSON-LD and why does a local business need it?
Your page says what you do in words for people. JSON-LD says the same thing in a form a machine can read without guessing: your business name, address, service area, services and prices. It does not change how the page looks. Search engines and AI tools use it to understand and describe your business correctly, but it does not guarantee a ranking or a mention.
What does a JSON-LD example for a local service business look like?
This template is based on the structure I use on my own site, with placeholder details. Replace every value with your own real information.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "ProfessionalService",
"@id": "https://example.com/#business",
"name": "Your Business Name",
"url": "https://example.com/",
"description": "One plain sentence on what you do and who you serve.",
"telephone": "+1 555 0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Your City",
"addressRegion": "Your State",
"postalCode": "00000",
"addressCountry": "US"
},
"areaServed": [
{
"@type": "City",
"name": "Your City"
},
{
"@type": "City",
"name": "Nearby Town"
}
],
"openingHours": "Mo-Fr 09:00-17:00",
"sameAs": [
"https://www.facebook.com/yourbusiness",
"https://www.linkedin.com/company/yourbusiness"
]
},
{
"@type": "Service",
"@id": "https://example.com/your-service/#service",
"name": "Your Service Name",
"serviceType": "The kind of service",
"description": "What the service includes, in one or two sentences.",
"url": "https://example.com/your-service/",
"provider": {
"@id": "https://example.com/#business"
},
"offers": [
{
"@type": "Offer",
"name": "Your package name",
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": 100,
"priceCurrency": "USD"
}
}
]
}
]
}
</script>
What does each part mean?
| Field | What it does |
|---|---|
| @type: ProfessionalService | Says what kind of business this is. Use LocalBusiness or a more specific type if one fits. |
| @id | A unique name for this entity, so other parts of the markup can point to it. |
| name, url, description | Your business name exactly as it appears everywhere, your website and one plain sentence about you. |
| telephone, address | Must match your Google Business Profile and website exactly. |
| areaServed | The cities or regions you serve. |
| openingHours | Your regular opening hours, in this format. Only include it if it is true. |
| sameAs | Links to your real profiles elsewhere, which help tools confirm it is the same business. |
| Service and provider | One node per service, linked back to the business through its @id. |
| offers and priceSpecification | A starting price, only if you publish one on the page. |
What are the rules for using it?
- Only mark up what is visible on the page. Do not put details in the markup that visitors cannot see.
- Keep it identical to your other listings. Name, address and phone number should match your profile and directories.
- Do not invent ratings or reviews. Add review markup only for real reviews that appear on the page.
- Test it. Paste the page URL into Google’s Rich Results Test and the Schema Markup Validator and fix any errors.
- Keep it up to date. If your hours, prices or services change, change the markup too.
Where do I put it on a WordPress site?
Many SEO plugins add basic business markup for you. If you need more control, you can add a code snippet or a small plugin that prints the block in the page head for one page. Test the page afterwards, and make sure two plugins are not printing conflicting versions of the same data.
Frequently asked questions
Does JSON-LD improve my Google ranking?
Not directly. It helps search engines and AI tools understand your business, which can make you easier to match to the right searches, but it is not a ranking switch.
Will FAQ markup give me rich results?
Google limited FAQ rich results in 2023, so for most sites FAQ markup mainly helps machines understand the page. It is still worth adding when the questions are visible on the page.
Do I need to know how to code?
Not much. You change the values in a template. Take care with commas and quotation marks, and always test the result.
Should I use LocalBusiness or ProfessionalService?
Use the most specific type that honestly describes you. If no specific type fits, LocalBusiness or ProfessionalService is a sound choice.
Want this set up and tested for your site? See my GEO and AEO service or book a free 20-minute call.
Keep reading
- GEO vs AEO: what a small business should do first
- Local SEO checklist for small businesses: 15 steps
Want more enquiries and bookings from your website? Book a free call and we can look at what is holding your site back.