All posts
SEO Basics·6 min read·July 12, 2026·Updated July 16, 2026

LocalBusiness Schema: Complete Guide + Generator

Learn how to add accurate LocalBusiness JSON-LD, choose the right subtype, validate required fields, and understand what it can—and cannot—do in Google Search.

TC
Written by Tyler C., founder

What LocalBusiness schema does

LocalBusiness is a schema.org type that identifies facts about a physical or service-area business, such as its name, address, phone number, hours, price range, and applicable ratings. Google can use eligible markup to understand business details and support local search features.

Structured data does not create a Business Profile or guarantee map-pack or knowledge-panel placement. Use it to reinforce accurate facts already visible on the page, and keep those facts consistent with the corresponding Google Business Profile.

The core LocalBusiness JSON-LD

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Joe's Diner",
  "image": "https://joesdiner.com/storefront.jpg",
  "@id": "https://joesdiner.com",
  "url": "https://joesdiner.com",
  "telephone": "+1-555-123-4567",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 30.2672,
    "longitude": -97.7431
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
      "opens": "11:00",
      "closes": "22:00"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "230"
  }
}
</script>

Required and recommended properties depend on Google's current LocalBusiness documentation and the business subtype. Add every applicable field you can maintain accurately, but do not invent information merely to fill the markup.

Field-by-field notes

  • @type — use a more specific subtype when one exists instead of the generic LocalBusiness: Restaurant, Dentist, Plumber, HairSalon, AutoRepair, and dozens more are all valid schema.org types that inherit LocalBusiness's fields while telling Google more precisely what kind of business you are.
  • @id — a stable identifier (usually your canonical URL) that lets Google connect this entity across your Organization schema, your Google Business Profile, and any mentions elsewhere. Keep it consistent everywhere you reference this business.
  • priceRange — a rough indicator like $, $$, or $$$, or an explicit range like $10-$30. Helps set searcher expectations before they click.
  • geo — latitude/longitude. Not strictly required if your address is unambiguous, but it removes any geocoding guesswork and is cheap to add if you know your coordinates.
  • openingHoursSpecification — use the structured array format shown above, not a free-text string. Multiple entries let you express different hours for different day groups (e.g., shorter Saturday hours, closed Sunday).
  • aggregateRating — only include this if you have a genuine review system feeding real numbers. Schema.org's guidelines (and Google's own policies) prohibit fabricated or self-assigned ratings; misuse here is a manual-action risk, not a growth hack.
See this in action on your own site

Paste your URL for a free, instant SEO check — no signup required.

Multiple locations? Use one LocalBusiness block per address

If you have several physical locations, each location gets its own LocalBusiness block on its own dedicated location page — not one combined block trying to represent all addresses at once, and not one block per location crammed onto a single page. Google's local ranking is inherently per-location; your schema structure should mirror that.

How this relates to your Google Business Profile

LocalBusiness schema and your Google Business Profile are two separate systems that should describe the same facts consistently. Schema markup feeds Google's structured understanding of your website; your Business Profile is the free listing you manage directly in Google's local ecosystem. Mismatched hours, addresses, or phone numbers between the two are a real (if soft) trust signal problem — keep them identical. If you haven't set up your profile yet, that's covered as step one in our small business SEO guide.

Generate it automatically

Writing this by hand for one location is a ten-minute job; writing it correctly for ten locations, or getting the nested address/geo/openingHoursSpecification objects right without a validator, is where most sites make mistakes. Peak Visibility generates schema markup matched to your actual page content — including LocalBusiness and its more specific subtypes — as part of a full scan. Running WordPress? See our WordPress-specific guide for exactly where to paste the generated JSON-LD.

FAQ

Do I need LocalBusiness schema if I already have a Google Business Profile?

They serve different purposes. Your Business Profile is Google's local listing system; LocalBusiness schema describes the business on its website. Use both when applicable and keep the facts consistent, but schema alone does not improve or guarantee local placement.

What LocalBusiness subtype should I use?

The most specific one that accurately describes your business. Check schema.org's LocalBusiness hierarchy for your industry — a restaurant should use Restaurant, not the generic LocalBusiness, since the specific type unlocks additional relevant properties (like servesCuisine or menu).

Can I add fake reviews to boost my aggregateRating?

No — this violates both schema.org's structured data guidelines and Google's policies, and is treated as a manual-action risk, not a gray-area growth tactic. Only mark up ratings you can back with a real review system.

Does LocalBusiness schema guarantee I'll show up in the map pack?

No single factor guarantees map-pack placement — that's driven primarily by your Google Business Profile, proximity, relevance, and review signals. Schema markup supports and reinforces those signals; it doesn't override them.

Sources and further reading

Technical claims in this guide were checked against primary documentation. Search features can change, so verify important implementation details before deploying.

See this in action on your own site

Paste your URL for a free, instant SEO check — no signup required.