LocalBusiness · JSON-LD
LocalBusiness Schema Generator
LocalBusiness schema describes a physical business to machines: who you are, where you are, when you are open, and how to reach you. It is one of the few schema types that still has a direct, visible payoff in search.
Open the schema generatorStill earns rich results
Still genuinely useful. LocalBusiness markup supports your business information in Google's local surfaces and knowledge panels. It does not replace a verified Google Business Profile, which remains the primary signal for local results, but consistent markup on your own site reinforces the same facts.
Why it is still worth adding
The markup gives every machine reading your site one authoritative version of your name, address, phone number, and hours. That consistency is what local search rewards, and it is what an AI assistant repeats when someone asks for a business like yours in your area.
A valid LocalBusiness example
Drop this in a <script type="application/ld+json"> tag in the page head or body, with your own values.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Rankealo Coffee",
"image": "https://example.com/storefront.jpg",
"@id": "https://example.com/#business",
"url": "https://example.com",
"telephone": "+34-912-345-678",
"priceRange": "€€",
"address": {
"@type": "PostalAddress",
"streetAddress": "Calle Mayor 12",
"addressLocality": "Madrid",
"postalCode": "28013",
"addressCountry": "ES"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.4168,
"longitude": -3.7038
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "18:00"
}
]
}Required and recommended properties
| Property | Required | Notes |
|---|---|---|
name | Required | The business name exactly as used on signage and your Google Business Profile. |
address | Required | A PostalAddress object. Partial addresses are a common cause of invalid markup. |
telephone | Optional | Strongly recommended. Use international format. |
openingHoursSpecification | Optional | Structured hours. Preferred over the older openingHours string. |
geo | Optional | Latitude and longitude. Helps disambiguate businesses at similar addresses. |
priceRange | Optional | A rough band such as €€. Free text, so keep it conventional. |
@id | Optional | A stable identifier so other markup on your site can reference the same entity. |
Common LocalBusiness schema mistakes
Details that disagree with your Google Business Profile
If the hours or phone number in your markup differ from your verified profile, you have created a conflict rather than a signal. Fix the source of truth first, then mirror it.
Using LocalBusiness for an online-only company
LocalBusiness implies a physical location customers can visit. A remote SaaS company should use Organization instead, or the markup is simply false.
Choosing an overly generic type
schema.org has specific subtypes (Restaurant, Dentist, HomeAndConstructionBusiness, and many more). Using the most specific accurate subtype tells machines more than plain LocalBusiness does.
Generating it is the easy half
The harder part is keeping markup correct across a site as pages change. Rankealo's SEO agent audits structured data across your pages and ships the JSON-LD fixes as pull requests you review and merge, rather than handing you a list of errors to implement yourself.
See how the SEO agent ships fixesLocalBusiness schema questions
Does LocalBusiness schema improve local rankings?
It supports them rather than driving them. The dominant local ranking signals are your verified Google Business Profile, proximity to the searcher, and reviews. LocalBusiness markup makes your own site state the same facts unambiguously, which reinforces the profile and gives AI assistants a clean source when they describe your business.
Do I need LocalBusiness schema on every page?
No. Put it once on the page that represents the business, usually the homepage or a location page, and give it a stable @id. Multi-location businesses should mark up each location page separately with its own address and hours.
Which LocalBusiness subtype should I use?
The most specific one that is accurate. A dental clinic should use Dentist, a restaurant should use Restaurant. If no subtype fits your business honestly, plain LocalBusiness is correct and better than forcing a wrong one.
Other schema types
FAQPage
FAQ schema generator and reference.
Product
Product schema generator and reference.
Service
Service schema generator and reference.
Review
Review schema generator and reference.
Or go back to the schema markup generator to build markup interactively.
