What LocalBusiness schema does
Schema markup is a vocabulary of structured data that you add to your website's HTML to help search engines understand the content. For local businesses, the LocalBusiness schema type — and its more specific subtypes like ProfessionalService, MedicalBusiness, or HomeAndConstructionBusiness — provides a structured way to declare your business name, address, phone number, opening hours, geographic coordinates, and service area.
The primary benefit is disambiguation. Google processes enormous amounts of unstructured text to extract business information. When your website contains structured LocalBusiness schema that exactly matches your GBP listing, you are confirming the same information through two independent channels — which reduces the likelihood of Google displaying incorrect details in the knowledge panel or local pack.
A secondary benefit is eligibility for rich results. Businesses with correctly implemented schema can appear with enhanced features in search results — star ratings, opening hours, and price ranges displayed directly in the SERP.
Required and recommended properties
Google's documentation distinguishes between required properties (needed for rich result eligibility) and recommended properties (improve the quality of the structured data). For local businesses, the following are the most important:
| Property | Status | Notes |
|---|---|---|
| @type | Required | Use the most specific subtype available (e.g. ProfessionalService, not just LocalBusiness) |
| name | Required | Must match your GBP business name exactly |
| address | Required | Use PostalAddress subtype with streetAddress, addressLocality, postalCode, addressCountry |
| telephone | Recommended | Include country code (+44 for UK) |
| url | Recommended | Your canonical homepage URL |
| openingHoursSpecification | Recommended | Use structured hours rather than the text-based openingHours property |
| geo | Recommended | GeoCoordinates with latitude and longitude — reinforces proximity signals |
| areaServed | Recommended for SABs | Use for service-area businesses; set to borough, city, or region names |
| priceRange | Optional | Use £, ££, £££ format for UK businesses |
| sameAs | Recommended | Links to your GBP listing URL, Companies House entry, and key social profiles |
How to implement LocalBusiness schema
The recommended implementation format is JSON-LD — a JavaScript object embedded in a <script type="application/ld+json"> tag in your page's <head>. Google prefers JSON-LD over microdata or RDFa because it is easier to maintain and does not require changes to the visible HTML structure.
Example: Professional Service LocalBusiness schema
{
"@context": "https://schema.org",
"@type": "ProfessionalService",
"name": "SEO London Services",
"url": "https://seolondon.services",
"telephone": "+44-20-XXXX-XXXX",
"address": {
"@type": "PostalAddress",
"addressLocality": "London",
"postalCode": "EC1A",
"addressCountry": "GB"
},
"areaServed": [
"City of London", "Hackney", "Islington",
"Tower Hamlets", "Southwark", "Lambeth"
],
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.5074,
"longitude": -0.1278
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "18:00"
}
],
"priceRange": "££",
"sameAs": [
"https://www.linkedin.com/company/seo-london-services",
"https://g.page/seo-london-services"
]
}Place this schema on your homepage and, if you have a dedicated contact or locations page, on that page too. Do not duplicate it across every page — one instance per site is sufficient for the core business entity.
Common LocalBusiness schema mistakes
✗ Using @type: 'LocalBusiness' when a more specific subtype exists
Fix: Use the most specific subtype available. Google's schema.org hierarchy has over 100 LocalBusiness subtypes — ProfessionalService, LegalService, MedicalBusiness, HomeAndConstructionBusiness, and many more.
✗ NAP mismatch between schema and GBP
Fix: Your schema name, address, and phone must be identical to your GBP listing. Even minor variations — 'Ltd' vs 'Limited', different phone formats — create conflicting signals.
✗ Using the text-based openingHours property
Fix: Use openingHoursSpecification with structured day and time objects. The text format ('Mo-Fr 09:00-18:00') is less reliable for rich result eligibility.
✗ Omitting the sameAs property
Fix: sameAs links to your GBP listing URL, LinkedIn, and other authoritative profiles help Google confirm your business entity across multiple sources.
✗ Implementing schema on every page
Fix: LocalBusiness schema belongs on the homepage and contact/location page only. Duplicating it across hundreds of pages does not improve results and can create validation errors.
✗ Not validating the implementation
Fix: Use Google's Rich Results Test (search.google.com/test/rich-results) to validate your schema before and after implementation. Fix any errors before publishing.
From our work
In technical SEO audits, LocalBusiness schema errors are among the most consistently found issues — and among the quickest to fix. The most common pattern: a business has schema implemented but the name or address does not match the GBP listing, often because the schema was set up when the business was at a previous address or trading under a different name. Correcting the mismatch and revalidating with the Rich Results Test takes under an hour and removes a source of conflicting signals that may have been suppressing local visibility for months.
Frequently asked questions
Does LocalBusiness schema markup directly improve local pack rankings?
LocalBusiness schema is not a direct local pack ranking factor in the way that GBP optimisation, reviews, and citations are. Its primary value is in helping Google parse and confirm your business information — name, address, phone, hours, and service area — which reduces ambiguity and reinforces the signals from your GBP listing.
Where should I put LocalBusiness schema on my website?
LocalBusiness schema should be implemented on your homepage and, where applicable, on your location or contact page. It should not be added to every page — once per site is sufficient for the core business entity markup.
What is the difference between LocalBusiness and Organization schema?
Organization is the parent type for any business entity. LocalBusiness is a more specific subtype that includes location-specific properties like address, opening hours, and geographic coordinates. For any business with a physical or service-area presence, LocalBusiness (or one of its more specific subtypes) is the correct choice.
Freelance SEO & AI Consultant — London
Semantic SEO Specialist · Koray Framework Practitioner · AI Consulting for UK SMEs
I implement and audit structured data as part of technical SEO engagements for London businesses — from LocalBusiness schema to Article, FAQPage, and HowTo markup. About me →
Related guides
Need a technical SEO audit that covers structured data?
Schema validation, LocalBusiness markup, and rich result eligibility — included in technical SEO audits for London businesses.
View Technical SEO Audit