Schema.org LocalBusiness Markup, Explained Simply

Get Found8 min read
The short answer

LocalBusiness is an official schema.org type (schema.org/LocalBusiness) that describes a physical or service-area business. The properties Google and AI assistants actually use are name, address, telephone, url, openingHoursSpecification, geo, areaServed, priceRange, image, and sameAs. It is published as JSON-LD in the page head. Local service businesses usually pair it with Service, FAQPage, and Review or AggregateRating markup.

Think of schema as a label maker. Your page says "Open 7am–6pm, Mon–Fri" and a human understands it instantly. Schema says the same thing in a format a machine cannot misread.

What schema.org LocalBusiness officially is

LocalBusiness is a type defined in the official schema.org vocabulary at schema.org/LocalBusiness. It inherits from Organization and Place, and it has dozens of narrower subtypes — Plumber, HVACBusiness, RoofingContractor, Electrician, HomeAndConstructionBusiness, and many more. Use the most specific subtype that fits your trade; if none fits cleanly, use LocalBusiness itself.

The properties that actually get used

  • name — your exact legal or trading name, matching your Google Business Profile.
  • address — a nested PostalAddress with streetAddress, addressLocality, addressRegion, postalCode, addressCountry.
  • telephone — in international format, e.g. +1-555-555-0100.
  • url — the canonical homepage URL.
  • openingHoursSpecification — one OpeningHoursSpecification entry per set of days.
  • geo — GeoCoordinates with latitude and longitude.
  • areaServed — the towns, counties, or radius you cover.
  • priceRange — a simple range such as "$$" or "$150–$600".
  • image and logo — real, indexable image URLs.
  • sameAs — links to your Google Business Profile, Facebook, and trade directory listings.

A minimal working example

{"@context":"https://schema.org","@type":"Plumber","name":"Ridgeline Plumbing","url":"https://example.com","telephone":"+1-555-555-0100","priceRange":"$$","address":{"@type":"PostalAddress","streetAddress":"14 Mill Rd","addressLocality":"Doylestown","addressRegion":"PA","postalCode":"18901","addressCountry":"US"},"areaServed":"Bucks County, PA","openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"07:00","closes":"18:00"}],"sameAs":["https://www.facebook.com/example"]}

Every value in that block must match what a visitor can see on the page. Mismatches are the most common reason markup gets ignored.

Service-area businesses with no storefront

If you work out of a truck, omit a public street address and lean on areaServed plus geo. Do not invent an address you do not staff — Google treats that as a violation and AI assistants will surface conflicting facts.

The four types that matter

1. LocalBusiness

Your name, address, phone, hours, geographic coordinates, and areaServed. This is the single most valuable block for a local business and belongs on the homepage.

2. Service

One per service page: the service type, provider, area served, and price range if you publish one.

3. FAQPage

Question-and-answer pairs. AI assistants lift these almost verbatim, which makes it the highest-return schema type for AI visibility.

4. Review / AggregateRating

Only mark up reviews you genuinely display on the page. Fabricated ratings get sites penalized.

Where it goes

As a JSON-LD script tag in the page head. It is invisible to visitors and changes nothing about how the page looks.

How to verify it

  • Google's Rich Results Test — confirms Google can parse it.
  • Schema.org validator — catches structural errors.
  • Ask an AI assistant about your business and see whether the facts it repeats match your markup.

Common mistakes

  • Hours or phone number in schema that differ from the visible page.
  • Marking up FAQs that do not appear on the page.
  • Copying an example and leaving placeholder values in place.

Frequently asked questions

What is local SEO schema?
Local SEO schema is structured data — usually the LocalBusiness type from schema.org, published as JSON-LD — that tells search engines and AI assistants your business name, address, phone, hours, service area, and price range in a machine-readable format. It is the single highest-leverage markup for local businesses because AI tools extract and cite those facts directly.
What is the official schema.org LocalBusiness type?
It is the structured-data type defined at schema.org/LocalBusiness, describing a physical or service-area business. It inherits from Organization and Place and has trade-specific subtypes such as Plumber, Electrician, and HVACBusiness.
Which LocalBusiness properties are required?
Schema.org itself requires none, but Google expects name, address, and telephone at minimum. In practice you should also include url, openingHoursSpecification, geo, areaServed, priceRange, image, and sameAs.
Should I use LocalBusiness or a more specific subtype?
Use the most specific subtype that matches your trade — Plumber, RoofingContractor, Electrician — and fall back to LocalBusiness only when nothing fits.
Will schema markup improve my rankings by itself?
It is not a direct ranking factor, but it improves how your listing is displayed and dramatically improves how reliably AI tools can extract and cite your business details.
Do I need a developer to add it?
Someone needs to add a JSON-LD script to the page head. On a modern site it is a small, one-time change per page type.

Want to know if AI tools would recommend you?

Send a note and we'll take a look at your current site and search visibility — no pressure, no purchase required.

New here? Start with what we do or browse all guides.

More in Get Found

Keep reading