DEV Community

Cover image for Local Business Schema: The Complete Guide to LocalBusiness Schema Markup (With Examples)
Saima Syed
Saima Syed

Posted on

Local Business Schema: The Complete Guide to LocalBusiness Schema Markup (With Examples)

`

Originally published at Flawless Schema.

Local Business Schema: The Complete Guide to LocalBusiness Schema Markup (With Examples)

Everything you need to know about local business schema — from the minimum required properties and LocalBusiness vs. Organization schema, to multi-location setups, WordPress implementation, validation, and free generation.

What Is Local Business Schema?

In simple terms, a schema is a labelled tag that tells a computer what a piece of information actually means — instead of just "123 Main St," schema markup says "this text is a street address." Local business schema — formally the LocalBusiness type defined by schema.org — applies that idea to a physical business. It is structured data, written as JSON-LD, that tells search engines exactly what your business is, where it's located, when it's open, and how customers can contact or visit it.

Structured data is added to a page as a script block in the <head> — invisible to human visitors, but fully legible to Google, Bing, and AI answer engines. Local business schema sits in the schema.org hierarchy as follows:

  • ThingOrganizationLocalBusiness → industry-specific subtypes (e.g., Restaurant, Dentist, Plumber)
  • LocalBusiness inherits every property defined for Organization
  • It is the correct type for any business with a physical address customers can visit
  • Google supports dozens of LocalBusiness subtypes for more precise classification

This inheritance matters in practice: because LocalBusiness is a subtype of Organization, properties like logo, sameAs, and parentOrganization are all valid on a LocalBusiness schema block, in addition to location-specific properties like address, geo, and openingHoursSpecification.

Why Local Business Schema Matters for SEO

Local business schema is one of the highest-leverage technical SEO investments a brick-and-mortar or service-area business can make. Here's why it matters across every dimension of visibility:

1. Local Pack and Maps Eligibility

Local business schema gives Google the structured signals it needs to confidently surface your business in the local pack, Google Maps, and "near me" search results — alongside business hours, price range, and ratings where applicable.

2. Knowledge Panel and Entity Recognition

Properly structured schema, including consistent name, address, sameAs, and @id usage, helps Google recognize your business as a distinct entity — strengthening its presence in the Knowledge Graph and supporting a Knowledge Panel appearance for branded searches.

3. Rich Result and Snippet Eligibility

Pages with valid LocalBusiness schema are eligible for enriched search appearances — star ratings, price indicators, and opening hours displayed directly in search results — which meaningfully increase click-through rate over plain blue links.

4. NAP Consistency Reinforcement

Schema markup reinforces Name, Address, and Phone (NAP) consistency across your site, your Google Business Profile, and third-party directories — a foundational local SEO trust signal.

5. AI Overview and Answer Engine Visibility

AI-powered search and answer engines rely on structured, machine-readable signals to decide which local businesses to cite or recommend. A business with complete, accurate local business schema is significantly more likely to be surfaced correctly in AI-generated local answers.

The bottom line: Local business schema is how you teach search engines not just your address, but who you are as a verified, locatable entity — across local search, Maps, the Knowledge Graph, and AI-generated answers.

LocalBusiness vs. Organization Schema — Which Should You Use?

This is one of the most common points of confusion in structured data implementation, and getting it right matters for rich result eligibility.

When to Use LocalBusiness Schema

Use LocalBusiness (or a more specific subtype) if your business has a physical location customers can visit or a defined service area — restaurants, clinics, salons, plumbers, retail stores, law firms, and similar businesses all qualify.

When to Use Organization Schema

Use Organization schema if your entity is a purely online brand, a large corporation without a single visitable location, a non-profit, or a business that doesn't serve customers at a specific physical address. Organization schema has no required properties — Google recommends including as many relevant fields as apply, such as name, url, logo, and sameAs.

A practical rule: If your business has a storefront or office, use LocalBusiness schema for your location pages and Organization schema for your homepage or "About" page. Since LocalBusiness inherits from Organization, you can — and should — include Organization-level properties like logo and sameAs in your LocalBusiness markup too.

Google's Guidelines and Rich Result Eligibility

Google publishes specific guidelines for local business structured data. Meeting them is a prerequisite for rich result eligibility — not for ranking directly, but for being considered for enhanced search appearances at all.

Key Google Guidelines for Local Business Schema

  • Define each location as its own LocalBusiness entity. Use the most specific subtype possible — Restaurant, DaySpa, HealthClub, and so on — rather than the generic LocalBusiness type.
  • Follow Organization fields too. Since LocalBusiness is a subtype of Organization, Google recommends including the recommended Organization fields alongside the LocalBusiness-specific ones.
  • Use an array for multiple types. If your business offers multiple distinct services (e.g., an electrician who is also a locksmith), specify @type as an array — additionalType is not supported for this purpose.
  • Schema must reflect visible page content. Every property you mark up — address, hours, ratings — must match what's genuinely visible and accurate on the page. Marking up content that isn't visible or accurate violates Google's structured data policies.
  • Reviews and ratings must be genuine. The aggregateRating and review properties are intended for sites that capture real reviews. Fabricated or self-assigned ratings can result in a manual action.

After implementing schema, validate using Google's Rich Results Test and the Schema.org Validator, then monitor performance in Google Search Console.

Required Properties for Local Business Schema

Google distinguishes between properties that are strictly required for rich result eligibility and properties that are recommended to improve result quality. For LocalBusiness schema, the required list is short:

  • name — The name of the business.
  • address — A PostalAddress object. Include streetAddress, addressLocality, addressRegion, postalCode, and addressCountry. The more complete this object, the higher the quality of the resulting rich result.

That's it — technically, only name and address are required by Google for eligibility. Everything else below is recommended, but in practice, a thin schema block with only these two properties is a missed opportunity. The more complete and accurate your markup, the stronger your local search signal.

Beyond the required minimum, a well-implemented local business schema block includes the properties below. These are explicitly listed by Google as recommended, and they're what separates a passable schema implementation from an excellent one.

Contact and Location Properties

  • telephone — The primary contact number for customers. Include the country and area code.
  • url — The fully-qualified URL of the specific business location page. Must be a working link.
  • geo — A GeoCoordinates object with latitude and longitude, each precise to at least 5 decimal places.

Hours and Pricing Properties

  • openingHoursSpecification — An array of OpeningHoursSpecification objects, each with dayOfWeek, opens, and closes in hh:mm:ss format. Use validFrom and validThrough for seasonal hours.
  • priceRange — A relative price indicator such as "$$" or "$10-15". Must be under 100 characters or Google won't display it.

Trust and Reputation Properties

  • aggregateRating — Only appropriate for sites that genuinely capture reviews about the business. Follow Google's Review snippet guidelines closely — fabricated ratings can trigger a manual action.
  • review — An individual Review object, subject to the same authenticity guidelines as aggregateRating.

Entity and Brand Properties (Inherited from Organization)

  • logo — A URL to your business logo, formatted as an ImageObject where possible.
  • sameAs — An array of URLs to your verified social profiles and Google Business Profile, reinforcing entity disambiguation.
  • parentOrganization — Used when the location is a branch of a larger parent brand.
  • @id — A persistent, canonical URI (e.g., https://yoursite.com/#localbusiness) that uniquely identifies this business entity. Reusing the same @id across pages tells Google's Knowledge Graph these references resolve to the same real-world entity — this is the single most important property for long-term entity authority.

Pro tip: If your homepage Organization schema, your LocalBusiness schema, and your blog's publisher reference all describe the same business, use the same @id URI for all of them. This is exactly the entity-linking pattern that strengthens Knowledge Graph recognition over time.

Local Business Schema Types

Schema.org defines many subtypes of LocalBusiness for more precise classification. Using the most specific subtype available — rather than the generic LocalBusiness — improves how search engines understand your business and increases rich result eligibility.

Common LocalBusiness Subtypes by Industry

  • Professional services: Attorney, Dentist, Electrician, RealEstateAgent, AccountingService
  • Health & medical: Pharmacy, Physician, VeterinaryCare, MedicalClinic
  • Food & hospitality: Restaurant, CafeOrCoffeeShop, Hotel, BedAndBreakfast, Bakery
  • Retail stores: ClothingStore, GroceryStore, ElectronicsStore, PetStore, HardwareStore
  • Recreation & entertainment: HealthClub, MovieTheater, BowlingAlley, GolfCourse
  • Automotive: AutoRepair, AutoDealer, AutoRental

If a business offers more than one distinct service, specify multiple types as an array rather than relying on additionalType, which Google does not support for this purpose:

{
  "@context": "https://schema.org",
  "@type": ["Electrician", "Plumber", "Locksmith"],
  "name": "Your Multi-Service Business"
}

Local Business Schema Markup Example

The following is a complete, production-ready LocalBusiness schema example using the Restaurant subtype. This demonstrates required, recommended, and entity-linking properties working together.

{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "@id": "https://www.example.com/#localbusiness",
  "name": "Dave's Steak House",
  "description": "A neighborhood steakhouse serving American classics since 1998.",
  "url": "https://www.example.com/restaurant-locations/manhattan",
  "telephone": "+12122459600",
  "image": "https://www.example.com/photos/dining-room.jpg",
  "logo": "https://www.example.com/images/logo.png",
  "priceRange": "$$$",
  "servesCuisine": "American",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "148 W 51st St",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10019",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.761293,
    "longitude": -73.982294
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "11:30",
      "closes": "22:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "16:00",
      "closes": "23:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/davessteakhouse",
    "https://www.instagram.com/davessteakhouse"
  ]
}

Note that aggregateRating and review are deliberately omitted from this baseline example — add them only if your site genuinely captures reviews about this business, and ideally generate that block separately to ensure it follows Google's review snippet guidelines correctly.

Local Business Schema for Multiple Locations

If your business operates more than one physical location, each location needs its own complete LocalBusiness schema block — sharing a name is not enough; each location is a distinct entity with its own address, phone number, and hours.

Pattern 1: Dedicated Location Pages

The recommended approach is a dedicated page per location, each carrying its own LocalBusiness schema block with a unique name, address, telephone, openingHoursSpecification, and url. Use parentOrganization or branchOf to tie each location back to the parent brand.

Pattern 2: Multiple Locations on a Single Page

If all locations are listed on one page (for example, a "Find a Store" page), include multiple LocalBusiness objects in a single JSON-LD array:

[
  {
    "@context": "https://schema.org",
    "@type": "Store",
    "name": "Dave's Department Store - Downtown",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "1600 Saratoga Ave",
      "addressLocality": "San Jose",
      "addressRegion": "CA",
      "postalCode": "95129",
      "addressCountry": "US"
    },
    "telephone": "+14088717984"
  },
  {
    "@context": "https://schema.org",
    "@type": "Store",
    "name": "Dave's Department Store - Uptown",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "220 Market St",
      "addressLocality": "San Jose",
      "addressRegion": "CA",
      "postalCode": "95113",
      "addressCountry": "US"
    },
    "telephone": "+14088719012"
  }
]

Departments Within a Single Location

For a single location with internal departments — like a pharmacy inside a grocery store — use the department property, nesting a LocalBusiness object for each department with its own hours and phone number where they differ from the main store.

How to Add Local Business Schema to Your Site

Adding local business schema correctly comes down to two things: generating valid JSON-LD, and placing it where search engines can find it.

Step 1: Generate Your Schema

Rather than hand-coding JSON-LD and risking a missing comma or an invalid property name, use a schema generator that auto-fills city, region, and postal code via trusted APIs, validates URLs, emails, and phone numbers as you type, and outputs clean, complete JSON-LD with no coding required.

Step 2: Place It in the Page Head

Copy the generated <script type="application/ld+json"> block and paste it inside the <head> section of the HTML page that represents this specific business location — typically your homepage for a single-location business, or a dedicated location page for multi-location businesses.

Step 3: Validate

Run the page through Google's Rich Results Test to confirm eligibility, and through the Schema.org Validator to confirm structural correctness against the full vocabulary.

Step 4: Monitor

Use Google Search Console's Enhancements reports to track ongoing structured data health and catch any errors introduced by future site changes.

Adding Local Business Schema to a WordPress Site

WordPress doesn't add complete, accurate LocalBusiness schema automatically — most themes and SEO plugins generate only a generic, partial block. Here are the three practical ways to add proper local business schema on WordPress:

Method 1: Theme Header/Footer Code Field

Many WordPress themes include a "Header & Footer Scripts" or "Custom Code" field in the customizer. Generate your schema, then paste the full script block into the header field.

Method 2: A Code Snippets Plugin

If your theme doesn't expose a header field, use a code snippets plugin to insert the JSON-LD script into wp_head without editing your theme files directly — safer than modifying header.php since it survives theme updates.

Method 3: Manual Template Edit

For full control, paste the generated schema directly into your theme's header.php file, just before the closing </head> tag. Always work on a child theme to avoid losing changes on theme updates.

A common WordPress mistake: Many WordPress SEO plugins generate a basic Organization or LocalBusiness block automatically, but it's often missing recommended properties like geo, openingHoursSpecification, or priceRange. Always check what your plugin actually outputs using the Rich Results Test before assuming it's complete.

Local Schema and the Google Knowledge Graph

One of the most strategically valuable — and most overlooked — uses of local business schema is entity building: helping Google recognize your business as a distinct, persistent entity in its Knowledge Graph, rather than just a string of text on a page.

How @id Drives Entity Recognition

The @id property assigns a canonical, persistent URI to your business entity. When the same @id is reused consistently across your homepage Organization schema, your LocalBusiness schema, and any related schema blocks (such as blog publisher references), Google can confidently treat all of these as references to a single, unified real-world entity.

Reinforcing Entity Signals with sameAs

The sameAs property — pointing to your verified social profiles, Wikidata entry, Crunchbase listing, or Google Business Profile — gives Google independent, corroborating sources confirming your business identity. This is a meaningful contributor to Knowledge Panel eligibility for branded searches.

Local Business Schema and Google Business Profile

Local business schema doesn't directly affect your Google Business Profile ranking, but it complements it by giving search engines a structured, on-site source of the same business details — reinforcing accuracy and consistency across both surfaces.

How to Validate Local Business Schema

Validation is a non-negotiable final step — incomplete or malformed schema is often worse than none, since silent errors can quietly exclude you from rich results for months.

Google's Rich Results Test

Use Google's Rich Results Test to check whether your page is eligible for rich results and to catch missing required properties. This tool reflects Google's actual supported property subset, not the full schema.org vocabulary.

The Schema.org Validator

Use the Schema.org Validator to confirm your JSON-LD is structurally correct against the complete schema.org specification — useful for catching syntax errors that the Rich Results Test might not flag.

Google Search Console

Once live, monitor your structured data health continuously in Search Console's Enhancements reports, which track errors and warnings across your entire site over time — not just a single page at a single moment.

Frequently Asked Questions

What is local business schema?

Local business schema is structured data — specifically JSON-LD using the LocalBusiness type from schema.org — that communicates key facts about a physical business (name, address, phone number, hours, location) to search engines in a machine-readable format.

What is a schema in simple terms?

A schema is a labelled way of describing information so a computer can understand its meaning, not just its text. Local business schema labels your address as an address, your hours as hours, and your phone number as a phone number, so search engines don't have to guess.

How do I add local business schema to my website?

Generate valid JSON-LD, then paste the script into the <head> section of the page representing your business location. Validate with Google's Rich Results Test afterward.

How do I add local business schema to a WordPress site?

Use your theme's header/footer code field, a code snippets plugin, or a manual edit to your child theme's header.php file to insert the generated JSON-LD script before the closing </head> tag.

What is the purpose of local business schema for SEO?

Its purpose is to help search engines accurately understand and display your business details, improving eligibility for local pack placement, Maps visibility, rich results, and Knowledge Graph entity recognition.

What is the difference between local business schema and Organization schema? When should I choose local business schema?

LocalBusiness schema is for businesses with a physical, visitable location; Organization schema is for any organization, including those without one. Choose LocalBusiness whenever your business has a storefront, office, or defined service area that customers visit or that physically serves a region.

What are the required properties for local business schema?

Per Google's official documentation, only name and address are strictly required. Recommended properties include telephone, url, geo, openingHoursSpecification, priceRange, and aggregateRating (where reviews are genuine).

How does local business schema improve Google local search rankings?

It is not a direct ranking factor, but it improves rich result and Maps eligibility, reinforces NAP consistency, and supports click-through rate — all of which indirectly strengthen local search performance.

How does local business schema help build brand authority?

By consistently linking your business identity across pages using @id and sameAs, local business schema reinforces entity consistency that contributes to trust and authority signals search engines use when evaluating a brand.

How does local schema help businesses get recognized as an entity in the Google Knowledge Graph?

Consistent use of @id across your schema blocks, combined with sameAs links to verified external profiles, gives Google corroborating signals to confidently associate your business with a single, persistent entity in its Knowledge Graph.

How do I implement local business schema for multiple locations?

Create a separate, complete LocalBusiness block per location — ideally each on its own dedicated page — or include multiple LocalBusiness objects in a single JSON-LD array if all locations appear on one page.

What is the @id URL in local business schema?

The @id is a canonical, persistent URI that uniquely identifies a schema entity. Reusing the same @id across multiple schema blocks tells Google these references describe the same real-world business.

Where do I add local business schema on a page?

Place the JSON-LD script block inside the <head> section of the HTML page that represents the specific business or location.


Local business schema is one of the highest-return structured data investments available to any business with a physical or service-area presence. If you found this useful, the original guide (kept up to date) lives at flawlessschema.com, along with a free LocalBusiness Schema Generator if you'd rather skip hand-coding the JSON-LD.

`

Top comments (0)