Of all the structured-data types worth adding to a site, LocalBusiness schema is the one with the clearest case for almost every small business: it's low effort, it has no real downside, and it directly supports the address, hours, and contact details Google already wants to match against your Google Business Profile. Our structured data guide covers it as one entry among several types worth knowing; this is the deeper dive on that one entry specifically.
What LocalBusiness Schema Actually Marks Up
LocalBusiness (technically @type: "LocalBusiness", or a more specific subtype like Restaurant, Dentist, or Plumber where one applies) is a JSON-LD block describing a physical or local-service business: name, address, phone number, opening hours, and a handful of optional but useful properties most sites leave out entirely.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 High Street",
"addressLocality": "London",
"postalCode": "EC1A 1BB",
"addressCountry": "GB"
},
"telephone": "+44 20 1234 5678",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "17:30"
}
],
"priceRange": "££",
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.5237,
"longitude": -0.0940
},
"sameAs": [
"https://www.facebook.com/yourbusiness",
"https://www.instagram.com/yourbusiness"
]
}
Service-Area Businesses Without a Public Storefront
Not every local business wants a street address published, for example a mobile plumber, a home cleaner, or a tradesperson who works from a van rather than premises. For these, drop address (or mark it as unpublished per schema.org's guidance) and use areaServed instead, listing the towns, postcodes, or regions actually covered. Marking up a home address as a public storefront when it isn't one is a common mismatch between what's in the schema and what's true, which is exactly the kind of inconsistency Google's guidelines warn against.
Multiple Locations
A single LocalBusiness block covering three shops is a common shortcut, and it's the wrong one. Each physical location needs its own schema block, ideally on its own dedicated location page, each with its own address, phone number, and opening hours. A single blended block forces search engines to guess which location a searcher actually meant, which tends to show up as the wrong branch's hours or number surfacing in local results.
The Mistake That Undoes the Whole Thing
Copy-pasted templates with unfilled placeholders. A LocalBusiness schema with a phone number of "555-555-5555" or an address left over from a demo template is worse than no schema at all, because it actively feeds bad data to search engines rather than simply omitting it. This is easy to miss because the schema block is invisible on the page itself; nothing about how the page looks to a visitor changes. Checking it means actually reading the JSON-LD, not just confirming a plugin's toggle is switched on.
The Fast Way to Check Yours
AuditCrow's free scan flags whether structured data is present and valid on any page you check, catching template placeholders and missing properties before they sit live for months unnoticed. See our local SEO basics guide for how LocalBusiness schema fits into the wider picture alongside your Google Business Profile.