SchemaValid
ENDE

LocalBusiness Schema: What It Is and How to Add It to Your Site

If you run a shop, restaurant, salon, or any business with a physical location or a defined service area, search engines can show far more than a blue link for you — opening hours, star ratings, a map pin, a phone number people can tap straight from the results page. All of that starts with LocalBusiness schema, a small block of structured data that tells Google and other search engines exactly who you are, where you are, and when you're open.

What is LocalBusiness schema?

LocalBusiness is a type defined by Schema.org, the shared vocabulary search engines use to understand web page content. Instead of guessing your business name, address, and hours from scattered text on the page, LocalBusiness schema puts that information into a structured, machine-readable format — usually JSON-LD, a small script tag added to your page's HTML.

Search engines use this data to power rich results: knowledge panels, map listings, and enhanced search snippets that show your rating, price range, or hours directly in the results. It's not a ranking factor in the traditional sense, but it does make your listing easier to understand and more clickable, and it's a prerequisite for several types of enhanced local search features.

Why it matters for local SEO

Local search is where a huge share of buying decisions start — someone searches "bakery near me" or "plumber open now" and picks from whatever the results page shows them first. Without structured data, search engines have to infer your business details from unstructured page text, which is slower and more error-prone. With LocalBusiness schema in place, you're handing that information over directly, in the exact format search engines expect.

This matters even more for businesses competing in crowded local categories — restaurants, dentists, gyms, salons — where dozens of nearby competitors are one search away. Clear, valid structured data is one of the few technical levers a local business can pull without redesigning the entire site.

The anatomy of a minimal LocalBusiness block

A valid LocalBusiness JSON-LD object needs surprisingly few fields to be usable. At minimum, search engines expect a type declaration, a business name, a structured address, and a way to contact you:

LocalBusiness@typeBakery MillernamePostalAddressaddress+1 555 0100telephoneMinimal required fields of a LocalBusiness JSON-LD block
  • @type — declares which kind of entity this is. LocalBusiness is the generic type; more specific subtypes are usually better (see below).
  • name — your business's official name, exactly as customers would recognize it.
  • address — a nested PostalAddress object with street, city, postal code, and country, rather than one plain text string.
  • telephone — a phone number in a consistent, dialable format, ideally with the country code.

Beyond these four, it's worth adding openingHoursSpecification, geo coordinates, and url whenever you have them — none are strictly required, but each one gives search engines more to work with.

Which LocalBusiness subtype should you use?

Schema.org defines dozens of subtypes under LocalBusiness — Restaurant, Dentist, HairSalon, AutoRepair, Bakery, and many more. Using the most specific subtype that matches your business is generally better than defaulting to the generic LocalBusiness type, since it tells search engines precisely what kind of business you run, which in turn affects which rich result features become available (a restaurant, for example, can additionally show a menu link or price range that a generic local business can't).

If none of the specific subtypes fit, LocalBusiness itself is a perfectly valid fallback — it's better to publish a correct generic type than to force-fit an inaccurate specific one.

Common mistakes that break rich results

A few issues show up again and again in LocalBusiness markup:

  • Address as a plain string. Search engines expect address components (street, city, postal code, country) as separate fields inside a PostalAddress object, not one combined text field.
  • Opening hours in free text. "Mon-Fri 9-6" as a plain string isn't machine-readable — opening hours need the structured openingHoursSpecification format with actual day and time values.
  • Inconsistent NAP data. Your Name, Address, and Phone number (NAP) in the schema should match what's shown elsewhere on the page and across your other listings exactly — mismatches undermine trust signals search engines rely on.
  • Invalid JSON syntax. A single missing comma or bracket in hand-written JSON-LD can invalidate the entire block silently — it won't throw a visible error on the page, it'll just be ignored by search engines.

Generate your LocalBusiness schema in seconds

Writing valid JSON-LD by hand is easy to get wrong, especially the nested address and opening-hours objects. Our free LocalBusiness Schema Generator walks you through each field — name, address, business type, phone, hours, geo-coordinates — and outputs a ready-to-paste JSON-LD script. Everything runs in your browser; nothing is sent to a server or stored anywhere.

Frequently asked questions

Do I need a developer to add LocalBusiness schema to my site? Not necessarily. Once you have the generated JSON-LD script, you can usually paste it into your site's HTML <head> yourself, or add it through most website builders' custom-code or header-script settings.

Does LocalBusiness schema guarantee rich results in Google? No. It makes your business eligible for certain enhanced search features, but whether they actually appear depends on Google's own algorithms and other quality signals — schema markup alone doesn't guarantee a specific display.

Can I have more than one LocalBusiness location on the same page? Yes, using an array of LocalBusiness objects, but in most cases it's clearer and more accurate to give each physical location its own dedicated page with its own schema block.