What the LocalBusiness Schema Generator does
This tool builds valid LocalBusiness structured data in JSON-LD format for shops, restaurants, clinics, agencies, and any business that serves customers from a physical location or a defined service area. You enter the business name, address, phone, geographic coordinates, opening hours, price range, and links to your social and Google profiles, and the generator produces a spec-compliant script block you can drop into the head of your homepage or contact page. LocalBusiness markup is the structured-data backbone of local SEO: it tells search engines exactly what your business is called, where it is, when it is open, and how to reach it, in a format that feeds the knowledge panel and local search features.
The most powerful move with LocalBusiness markup is choosing the most specific subtype that fits your business. Schema.org defines a deep tree of subtypes under LocalBusiness, including Restaurant, Dentist, Plumber, LegalService, AutoRepair, HairSalon, and many more. Using the precise subtype rather than the generic LocalBusiness gives search engines a clearer understanding of your category and can unlock category-specific features. This generator lets you pick that subtype so your markup says Restaurant or Dentist when that is what you are, which is a stronger signal than the catch-all LocalBusiness type.
Required and recommended properties for LocalBusiness
The properties Google leans on most are name, address, and either telephone or a clear contact path, plus a precise location. The address should be a PostalAddress object with streetAddress, addressLocality, addressRegion, postalCode, and addressCountry filled in completely; a partial address is a common reason a business fails to be matched to a place. The geo property should be a GeoCoordinates object with latitude and longitude pointing to the real front door of the business, because accurate coordinates help map and local features place you correctly. The image and url properties round out the core identity that search engines use to recognize the business.
Several recommended properties carry real weight for local SEO. openingHoursSpecification, given as structured day and time ranges rather than free text, lets search engines show an accurate open or closed status and special hours. priceRange communicates affordability tier. The sameAs property, holding links to your Google Business Profile, social media pages, and any authoritative listings, is one of the strongest signals for entity matching, because it connects the markup on your site to the profiles Google already knows. An aggregateRating tied to genuine on-page reviews can support a rating display, subject to the same strict review policy that applies to all schema types.
How LocalBusiness schema supports local visibility
LocalBusiness markup does not by itself put you in the map pack; that is driven primarily by your Google Business Profile and proximity and prominence signals. What the markup does is reinforce and disambiguate your business as an entity, making it easier for Google to confidently connect your website to the right place, the right category, and the right contact details. Consistent name, address, and phone across your site markup, your Business Profile, and your citations across the web is the foundation of local trust, and your LocalBusiness schema is the on-site anchor for that consistency. The sameAs links are how you tie those identities together explicitly.
In AI and assistant search, structured local data is increasingly how an engine answers questions like which dentist is open now near me or what is the price range of this restaurant. When a voice assistant or an AI Overview needs your hours, your phone, or your location, well-formed LocalBusiness markup is a clean source it can lift with confidence, far easier than scraping the information out of a styled contact block. As local discovery shifts toward conversational answers, the businesses with accurate, structured, consistent local data are the ones that get surfaced and recommended.
How to read the generated output
The output is a single script block with an at-type set to your chosen subtype, such as Restaurant or the generic LocalBusiness. Inside it you will see name, the nested PostalAddress, the nested GeoCoordinates, telephone, url, and any openingHoursSpecification and sameAs arrays you provided. Read every field against your real-world details and against your Google Business Profile, and make sure they match exactly, down to the formatting of the business name and the suite number in the address. Inconsistency between your schema and your Business Profile is one of the quiet killers of local entity confidence.
Check the opening hours carefully, because this is the field most likely to drift out of date. openingHoursSpecification uses day-of-week values and opens and closes times, and if you change your hours you must update the markup, or it will keep advertising stale hours that frustrate customers and erode trust. The coordinates should point to your actual entrance, not the center of the city. If you operate multiple locations, each location needs its own LocalBusiness block on its own location page, not one shared block, so each place is described as its own distinct entity.
Common LocalBusiness schema mistakes
The most common mistake is name, address, and phone inconsistency between the schema and the Google Business Profile or other citations. Even small differences, like Street versus St or a different phone format, weaken the entity match. The second common mistake is using free-text opening hours instead of the structured openingHoursSpecification, which prevents engines from reliably computing open or closed status. A third is dropping a generic LocalBusiness type onto a business that has a specific subtype available, leaving category-specific features and clarity on the table.
Other frequent errors include putting a single LocalBusiness block on a multi-location site so that five branches all claim the same address, omitting the geo coordinates or pointing them at the wrong spot, and adding aggregateRating without genuine, visible, first-party reviews on the page, which violates Google's review policy just as it would on a Product. Some businesses also forget the sameAs links to their authoritative profiles, missing an easy and powerful way to connect their site to the identities Google already trusts. The generator's structured fields steer you away from the free-text and single-block traps.
Another subtle but costly mistake is letting the business name in the markup drift into a keyword-stuffed version, such as appending a city and a service to the real name to chase rankings. The name property should hold your genuine business name exactly as it appears on your storefront and your Business Profile, with no added descriptors. A related error is supplying a logo or image that is broken, tiny, or a generic stock photo rather than a real photo of the business and a clean brand logo, since these images feed how the business is recognized and presented. Keeping the name honest and the imagery authentic protects the entity trust that all the other fields are working to build.
LocalBusiness versus Organization versus the subtypes
LocalBusiness is a subtype of Organization, and the two are often confused. Organization is the right type for a company that does not serve customers from a physical place, such as a purely online brand or a corporate entity; it carries identity, logo, and contact data but not the place-specific local features. LocalBusiness extends Organization with the location, hours, and geo data that local search needs, so a business with a storefront or a service area should use LocalBusiness rather than plain Organization. The many subtypes under LocalBusiness, like Restaurant or Dentist, are simply more specific versions and should be preferred whenever one matches your business.
On a contact or location page, LocalBusiness markup pairs well with BreadcrumbList for the navigation path and can coexist with a WebSite block. For service-area businesses that travel to customers rather than serving them at a fixed storefront, the areaServed property describes the regions you cover, and you may omit or de-emphasize a public street address if you do not receive customers there. Match the type and the properties to how your business actually operates, and keep each location's markup on its own page in its own script tag.
What to do after you generate it
Paste the block into the head of your homepage or the relevant location page, then run the URL through Google's Rich Results Test to confirm the markup is valid and to catch warnings about missing recommended fields like address parts or hours. Use the Schema Markup Validator for an independent syntax check. Most importantly, open your Google Business Profile side by side with the markup and confirm the name, address, phone, category, and hours match exactly, because that cross-source consistency is what makes the markup do its job in local search.
Then keep it current. Local data goes stale faster than almost any other schema: hours change for holidays, phone numbers get updated, businesses relocate, and new locations open. Build a habit of updating the markup whenever you update the corresponding detail anywhere else, and audit each location page periodically to confirm the schema still mirrors reality and still matches your Business Profile. Accurate, consistent, subtype-specific LocalBusiness markup is one of the highest-leverage things a local business can do on its own site to be recognized as a trustworthy entity by both classic search and the AI assistants now answering local questions.