Schema Markup
11 min read

Local Business Schema Markup: Complete Guide for 2025

Master local business schema markup to dominate local search. Complete guide with examples, implementation steps, and best practices for appearing in Google Maps and local pack results.

January 29, 2025

Want to dominate local search results? Local business schema markup is your secret weapon. It helps your business appear in Google Maps, the local pack (those 3 businesses shown prominently), and provides rich information directly in search results.

This comprehensive guide shows you exactly how to implement local business schema to maximize your local SEO visibility and drive more foot traffic to your physical location.

What is Local Business Schema Markup?

Local Business schema is structured data that provides explicit information about your business location, hours, contact details, and services to search engines.

It tells Google:

  • Your exact business name and type
  • Physical address and service area
  • Phone number and website
  • Business hours (including special hours)
  • Price range and payment options
  • Geographic coordinates
  • Customer ratings and reviews
  • Photos and descriptions

The Result: Better visibility in local searches like "coffee shop near me" or "dentist in Seattle."

Why Local Business Schema Matters for Local SEO

Local business schema delivers measurable benefits:

1. Appear in Google's Local Pack

The local pack (Map Pack) shows 3 businesses above organic results. Proper schema increases your chances of appearing here by 40-50%.

2. Show in Google Maps Results

Local business schema helps Google display your business accurately on Maps with correct info, hours, and reviews.

3. Display Rich Snippets

Search results can show star ratings, price range, hours, and phone number - all increasing click-through rates.

4. Voice Search Optimization

When users ask "Hey Google, find a nearby pizza place," well-structured local schema helps you get recommended.

5. Mobile Search Dominance

76% of people who search for something nearby visit a business within 24 hours. Local schema captures this high-intent traffic.

Required vs. Recommended Local Business Schema Properties

Understanding what fields to include ensures your schema is complete:

Required Properties (Must Have)

  • @type: Specific business type (Restaurant, Dentist, Hotel, etc.)
  • name: Official business name
  • address: Complete postal address with street, city, state, zip, country

You must also include at least ONE of these:

  • telephone: Business phone number
  • url: Business website URL
  • priceRange: Price level indicator ($, $$, $$$, $$$$)

Highly Recommended Properties

  • geo: Geographic coordinates (latitude/longitude)
  • image: Business photos and logo
  • openingHoursSpecification: Detailed hours including days and times
  • priceRange: Helps set customer expectations
  • aggregateRating: Overall rating and review count
  • review: Individual customer reviews
  • paymentAccepted: Accepted payment methods
  • servesCuisine: For restaurants - cuisine types served

Complete Local Business Schema Example

Here's a comprehensive example for a coffee shop:

{
  "@context": "https://schema.org",
  "@type": "CafeOrCoffeeShop",
  "@id": "https://joes-coffee.com",
  "name": "Joe's Artisan Coffee",
  "image": [
    "https://joes-coffee.com/images/storefront.jpg",
    "https://joes-coffee.com/images/interior.jpg",
    "https://joes-coffee.com/images/espresso.jpg"
  ],
  "logo": "https://joes-coffee.com/logo.png",
  "url": "https://joes-coffee.com",
  "telephone": "+1-206-555-1234",
  "email": "hello@joes-coffee.com",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Pike Street",
    "addressLocality": "Seattle",
    "addressRegion": "WA",
    "postalCode": "98101",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "47.6097",
    "longitude": "-122.3331"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "06:00",
      "closes": "19:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "07:00",
      "closes": "20:00"
    }
  ],
  "servesCuisine": ["Coffee", "Pastries", "Light Breakfast"],
  "acceptsReservations": "False",
  "paymentAccepted": "Cash, Credit Card, Debit Card, Mobile Payment",
  "currenciesAccepted": "USD",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "238"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Sarah Johnson"
      },
      "datePublished": "2025-01-15",
      "reviewBody": "Best espresso in Seattle! Cozy atmosphere and friendly staff.",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      }
    }
  ],
  "sameAs": [
    "https://www.facebook.com/joescoffee",
    "https://www.instagram.com/joescoffee",
    "https://www.yelp.com/biz/joes-coffee-seattle"
  ]
}
// Complete Local Business schema with all recommended properties

Specific Business Type Schemas

Use the most specific `@type` for your business instead of generic "LocalBusiness":

Restaurant Schema

{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "Bella's Italian Bistro",
  "servesCuisine": "Italian",
  "acceptsReservations": "True",
  "menu": "https://bellas-bistro.com/menu",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Main St",
    "addressLocality": "Portland",
    "addressRegion": "OR",
    "postalCode": "97201",
    "addressCountry": "US"
  },
  "telephone": "+1-503-555-6789",
  "priceRange": "$$$"
}
// Restaurant-specific schema with menu and cuisine

Dentist/Medical Practice Schema

{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Bright Smile Dental Care",
  "image": "https://brightsmile.com/office.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "789 Health Plaza",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "telephone": "+1-512-555-8900",
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "08:00",
    "closes": "17:00"
  },
  "priceRange": "$$"
}
// Medical practice schema with office hours

Hotel Schema

{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "Grand Plaza Hotel",
  "image": "https://grandplaza.com/hotel.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "321 Ocean Drive",
    "addressLocality": "Miami Beach",
    "addressRegion": "FL",
    "postalCode": "33139",
    "addressCountry": "US"
  },
  "telephone": "+1-305-555-4321",
  "starRating": {
    "@type": "Rating",
    "ratingValue": "4"
  },
  "petsAllowed": "True",
  "checkinTime": "15:00",
  "checkoutTime": "11:00"
}
// Hotel schema with check-in/out times and amenities

Home Service Business (Plumber, Electrician)

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "24/7 Emergency Plumbing",
  "image": "https://247plumbing.com/van.jpg",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Denver",
    "addressRegion": "CO",
    "postalCode": "80202",
    "addressCountry": "US"
  },
  "areaServed": [
    {
      "@type": "City",
      "name": "Denver"
    },
    {
      "@type": "City",
      "name": "Aurora"
    },
    {
      "@type": "City",
      "name": "Lakewood"
    }
  ],
  "telephone": "+1-303-555-7777",
  "priceRange": "$$",
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    "opens": "00:00",
    "closes": "23:59"
  }
}
// Service area business with 24/7 availability

How to Implement Local Business Schema

Follow these steps to add local business schema to your website:

Step 1: Generate Your Schema Markup

Option A: Use a Generator (Recommended)

  • Visit SchemaBooster and select "Local Business"
  • Choose your specific business type (Restaurant, Dentist, Hotel, etc.)
  • Fill in all required fields and as many recommended fields as possible
  • Add your business hours carefully
  • Include geo coordinates (get from Google Maps)
  • Copy the generated JSON-LD code

Option B: Manual Creation

Reference the examples above and create your schema from scratch using a text editor.

Step 2: Add Schema to Your Website

For HTML Sites: Add the schema code to your homepage in the `<head>` section:

<!DOCTYPE html>
<html>
<head>
  <title>Joe's Coffee Shop</title>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "CafeOrCoffeeShop",
    "name": "Joe's Coffee",
    ...
  }
  </script>
</head>

For WordPress: Use a plugin like Rank Math or add to theme functions. See our WordPress schema guide for details.

For Other Platforms: Check general implementation guide.

Step 3: Validate Your Schema

  • Open Google Rich Results Test
  • Enter your homepage URL
  • Click 'Test URL'
  • Check for errors or warnings
  • Fix any issues and retest
  • Verify all important data appears correctly

Learn more about validation in our schema testing guide.

Step 4: Connect with Google My Business

Critical: Your schema should match your Google My Business (GMB) profile exactly:

  • Same business name spelling
  • Same address format
  • Same phone number
  • Same business hours
  • Same business category

Inconsistencies between schema and GMB can hurt local rankings.

Step 5: Monitor in Search Console

  • Add your site to Google Search Console if not already
  • Navigate to Enhancements → Local Business
  • Check for valid items and errors
  • Monitor impressions and clicks over time
  • Fix errors within 48 hours

Advanced Local Business Schema Features

1. Multiple Locations

For businesses with multiple locations, create separate schema for each:

  • Add unique schema to each location's page
  • Use unique @id for each location
  • Include all location-specific details
  • Link locations to parent organization schema on main site

2. Service Area Businesses

For businesses serving customers at their locations (plumbers, cleaners):

{
  "@context": "https://schema.org",
  "@type": "HomeAndConstructionBusiness",
  "name": "Pro Cleaners",
  "areaServed": [
    {
      "@type": "City",
      "name": "San Francisco"
    },
    {
      "@type": "City",
      "name": "Oakland"
    },
    {
      "@type": "State",
      "name": "California"
    }
  ],
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "addressCountry": "US"
  }
}
// Use areaServed for service area businesses

3. Special Hours (Holidays)

Add special hours for holidays or events:

{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "Family Diner",
  "specialOpeningHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "opens": "10:00",
      "closes": "15:00",
      "validFrom": "2025-12-25",
      "validThrough": "2025-12-25"
    }
  ]
}
// Special hours for Christmas Day

Local Business Schema Best Practices

  • Match GMB Exactly: Consistency is critical for local SEO
  • Add Geo Coordinates: Get exact lat/long from Google Maps
  • Include Multiple Images: Storefront, interior, products, team
  • Update Hours Regularly: Keep holiday and temporary hours current
  • Add Reviews: Include actual customer reviews with dates
  • Use Specific Type: Choose most specific business type, not generic LocalBusiness
  • Include Payment Options: Helps customers know what you accept
  • Add Price Range: Sets expectations ($, $$, $$$, $$$$)
  • Link Social Profiles: Use sameAs property for Facebook, Instagram, etc.
  • Test Mobile: Verify schema works on mobile devices

Common Local Business Schema Mistakes

Mistake 1: Wrong Business Type

Using generic "LocalBusiness" instead of specific type like "Restaurant" or "Dentist" reduces your schema's effectiveness.

Fix: Use the most specific schema.org type that matches your business.

Mistake 2: Incomplete Address

Missing streetAddress, postalCode, or addressCountry prevents proper mapping.

Fix: Include complete address with all fields populated.

Mistake 3: Inconsistent NAP

Name, Address, Phone (NAP) differs between schema, GMB, and website.

Fix: Ensure exact match across all platforms - same spelling, formatting, phone format.

Mistake 4: Invalid Time Format

Using "9am-5pm" instead of "09:00" and "17:00" in 24-hour format.

Fix: Use HH:MM format in 24-hour time.

Mistake 5: Missing Geo Coordinates

Not including latitude/longitude makes location less precise.

Fix: Get coordinates from Google Maps (right-click location → see coordinates).

Measuring Local Schema Impact

Track these metrics to measure success:

  • Local Pack Appearances: Monitor if you appear in the 3-pack
  • Google Maps Impressions: Check GMB Insights
  • Direction Requests: Track how many users get directions
  • Phone Calls: Monitor calls from search results
  • Website Clicks: Check clicks from local results
  • Search Console: Monitor local business rich results
  • Rankings: Track position for "[service] near me" queries

Frequently Asked Questions

Where should I add local business schema on my site?

Add local business schema to your homepage and each location page (for multi-location businesses). Place the JSON-LD code in the `<head>` section of each page. For single-location businesses, homepage implementation is sufficient.

How do I get geographic coordinates for my business?

Open Google Maps, search for your business address, right-click on the location pin, and select the coordinates at the top of the menu. Copy the latitude and longitude values (format: 47.6062, -122.3321) into your schema's geo property.

Can local business schema help me rank in the local pack?

Yes, local business schema is a ranking signal for local pack results. Combined with a strong Google My Business profile, positive reviews, and local citations, proper schema significantly improves your chances of appearing in the local 3-pack that shows above organic results.

Should I include reviews in my local business schema?

Yes, including actual customer reviews in your schema can help display star ratings in search results. However, only include real, verifiable reviews that appear on your site. Never add fake reviews - this violates Google's guidelines and can result in penalties.

Related Reading

Conclusion: Dominate Local Search with Schema

Local business schema markup is essential for any business wanting to attract nearby customers. It's the difference between appearing in the local pack and being buried on page 2.

Your Action Plan:

  • Generate local business schema with SchemaBooster
  • Use the most specific business type
  • Include all required and recommended properties
  • Match your Google My Business profile exactly
  • Add geo coordinates for precision
  • Validate with Rich Results Test
  • Monitor performance in Search Console

Ready to boost your local SEO? Create validated local business schema in under 3 minutes with SchemaBooster's generator. No coding required.

TAGS

local businesslocal SEOschema markupGoogle Mapslocal pack

Ready to Boost Your SEO?

Generate professional schema markup in seconds with AI-powered accuracy.