---
title: "Local SEO Schema: LocalBusiness, OpeningHours and Structured Data for Local Businesses"
description: "Complete guide to Schema.org for local businesses. How to implement LocalBusiness, opening hours, GeoCoordinates and improve visibility in Google Maps."
date: 2025-12-03
updated: 2025-01-11
category: SEO
tags: ["Local SEO", "Schema.org", "LocalBusiness", "Google Maps", "Structured Data", "JSON-LD"]
url: https://uper.pl/en/blog/local-seo-schema/
---

# Local SEO Schema: LocalBusiness, OpeningHours and Structured Data for Local Businesses

**Local SEO Schema** is a set of Schema.org structured data dedicated to local businesses. Proper implementation helps Google better understand your business and can improve visibility in local results, Google Maps, and Knowledge Panel.

## Why is Local SEO Schema Important?

Structured data for local businesses:
- Helps Google verify business information
- Supports display in Local Pack (3-pack)
- Can improve Knowledge Panel
- Facilitates synchronization with Google Business Profile
- Increases chances of rich results

## Basic Types for Local Businesses

### LocalBusiness and Subtypes

**LocalBusiness** is the general type for local businesses. Schema.org defines dozens of subtypes for specific industries:

| Subtype | Industry |
|---------|----------|
| `Restaurant` | Restaurants |
| `Store` | Retail stores |
| `MedicalBusiness` | Medical services |
| `LegalService` | Legal services |
| `FinancialService` | Financial services |
| `RealEstateAgent` | Real estate agencies |
| `AutoRepair` | Auto repair shops |
| `BeautySalon` | Beauty salons |
| `Dentist` | Dentists |
| `Plumber` | Plumbers |

**Always use the most specific type** that matches your business.

## Basic LocalBusiness Implementation

```json
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "ACME Digital Marketing",
  "description": "Professional digital marketing agency offering SEO, web design, and content marketing services.",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "image": "https://example.com/office.jpg",
  "telephone": "+1-555-123-4567",
  "email": "contact@example.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street, Suite 100",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10001",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.7128,
    "longitude": -74.0060
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    }
  ],
  "priceRange": "$$",
  "sameAs": [
    "https://www.facebook.com/acmedigital",
    "https://www.linkedin.com/company/acmedigital",
    "https://twitter.com/acmedigital"
  ]
}
```

## Address (PostalAddress)

### Full Address Specification

```json
{
  "@type": "PostalAddress",
  "streetAddress": "123 Main Street, Suite 100",
  "addressLocality": "New York",
  "addressRegion": "NY",
  "postalCode": "10001",
  "addressCountry": "US"
}
```

### Address Fields

| Field | Description | Example |
|-------|-------------|---------|
| `streetAddress` | Street and number | "123 Main Street, Suite 100" |
| `addressLocality` | City | "New York" |
| `addressRegion` | State/Province | "NY" |
| `postalCode` | Postal code | "10001" |
| `addressCountry` | Country (ISO 3166-1) | "US" |

## Opening Hours (OpeningHoursSpecification)

### Standard Hours (Mon-Fri)

```json
{
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    }
  ]
}
```

### Different Hours for Different Days

```json
{
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "09:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Friday",
      "opens": "09:00",
      "closes": "16:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "14:00"
    }
  ]
}
```

### Business Open 24/7

```json
{
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Monday", "Tuesday", "Wednesday", "Thursday",
      "Friday", "Saturday", "Sunday"
    ],
    "opens": "00:00",
    "closes": "23:59"
  }
}
```

### Special Days (Holidays)

```json
{
  "specialOpeningHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "validFrom": "2026-12-24",
      "validThrough": "2026-12-24",
      "opens": "09:00",
      "closes": "13:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "validFrom": "2026-12-25",
      "validThrough": "2026-12-26",
      "opens": "00:00",
      "closes": "00:00"
    }
  ]
}
```

## Geolocation (GeoCoordinates)

### Basic Geolocation

```json
{
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.7128,
    "longitude": -74.0060
  }
}
```

### How to Get Coordinates?

1. **Google Maps:**
   - Find the location
   - Right-click
   - Select coordinates (copies to clipboard)

2. **Google My Business:**
   - Check in GMB panel

## Service Area (areaServed)

For businesses providing services in a specific area:

### Serving Multiple Cities

```json
{
  "@type": "LocalBusiness",
  "name": "NYC Plumbing Services",
  "areaServed": [
    {
      "@type": "City",
      "name": "New York"
    },
    {
      "@type": "City",
      "name": "Brooklyn"
    },
    {
      "@type": "City",
      "name": "Queens"
    }
  ]
}
```

### Serving a State

```json
{
  "areaServed": {
    "@type": "State",
    "name": "New York"
  }
}
```

## Full Implementation for Restaurant

```json
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "The Italian Kitchen",
  "description": "Authentic Italian cuisine in a modern setting.",
  "url": "https://italiankitchen.com",
  "image": "https://italiankitchen.com/images/exterior.jpg",
  "telephone": "+1-555-987-6543",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Broadway",
    "addressLocality": "New York",
    "postalCode": "10012",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.7235,
    "longitude": -73.9982
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "12:00",
      "closes": "22:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Friday", "Saturday"],
      "opens": "12:00",
      "closes": "23:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Sunday",
      "opens": "12:00",
      "closes": "20:00"
    }
  ],
  "priceRange": "$$",
  "servesCuisine": ["Italian", "Mediterranean"],
  "menu": "https://italiankitchen.com/menu",
  "acceptsReservations": "True",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "328",
    "bestRating": "5"
  }
}
```

## Implementation for Store

```json
{
  "@context": "https://schema.org",
  "@type": "Store",
  "name": "TechWorld Electronics",
  "description": "Electronics store. Phones, laptops, accessories.",
  "url": "https://techworld.com",
  "telephone": "+1-555-666-7788",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "789 Tech Avenue",
    "addressLocality": "San Francisco",
    "postalCode": "94102",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 37.7749,
    "longitude": -122.4194
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "10:00",
      "closes": "20:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "$$",
  "paymentAccepted": ["Cash", "Credit Card", "Apple Pay", "Google Pay"],
  "currenciesAccepted": "USD"
}
```

## Multiple Locations

If you have multiple branches, create separate Schema for each:

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://example.com/#organization",
      "name": "TechWorld",
      "url": "https://example.com",
      "logo": "https://example.com/logo.png"
    },
    {
      "@type": "Store",
      "name": "TechWorld New York",
      "parentOrganization": { "@id": "https://example.com/#organization" },
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "New York"
      }
    },
    {
      "@type": "Store",
      "name": "TechWorld Los Angeles",
      "parentOrganization": { "@id": "https://example.com/#organization" },
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Los Angeles"
      }
    }
  ]
}
```

## Synchronization with Google Business Profile

Make sure Schema data is **identical** to Google Business Profile data:

- **Business name** - exactly the same
- **Address** - same format
- **Phone** - same number
- **Opening hours** - synchronized
- **Categories** - matching Schema types

Discrepancies can reduce Google's trust in your data.

## Testing Local Schema

### Rich Results Test

[https://search.google.com/test/rich-results](https://search.google.com/test/rich-results)

### Schema Markup Validator

[https://validator.schema.org/](https://validator.schema.org/)

## Summary

**Local SEO Schema** is an important element of local SEO strategy:

1. **Choose the right type** - most specific for your industry
2. **NAP data** - consistent with Google Business Profile
3. **Geolocation** - accurate coordinates
4. **Opening hours** - current and complete
5. **areaServed** - for service area businesses

Proper implementation supports visibility in Local Pack, Google Maps, and Knowledge Panel.

<FaqBlog
  questions={[
    {
      question: 'What structured data should a local business have?',
      answer: 'At minimum, use <strong>LocalBusiness</strong> (or a more specific type like Restaurant, Dentist) with fields: name, address, telephone, openingHoursSpecification, geo (coordinates), url, and image. Add <strong>aggregateRating</strong> if you have reviews.'
    },
    {
      question: 'How do I implement LocalBusiness Schema in JSON-LD?',
      answer: 'Add a <strong>&lt;script type="application/ld+json"&gt;</strong> tag in your page head with a @type: LocalBusiness object. Fill in all required fields (name, address, phone, opening hours). Validate with the <a href="https://search.google.com/test/rich-results">Rich Results Test</a>.'
    },
    {
      question: 'Does Local SEO Schema help with Google Maps visibility?',
      answer: 'LocalBusiness Schema does not directly affect Google Maps — you need a <strong>Google Business Profile</strong> for that. However, correct structured data on your site helps Google connect your website to your Maps profile and can boost visibility in local organic results.'
    },
    {
      question: 'Do I need separate Schema for each business location?',
      answer: 'Yes, if you have multiple locations, each should have a <strong>dedicated page</strong> with its own LocalBusiness Schema containing unique data (address, phone, opening hours). Do not put multiple locations in a single schema.'
    }
  ]}
  heading="Frequently Asked Questions"
  id="faq"
/>

## Sources

1. **Schema.org - LocalBusiness**
[https://schema.org/LocalBusiness](https://schema.org/LocalBusiness)

2. **Google Search Central - Local business structured data**
[https://developers.google.com/search/docs/appearance/structured-data/local-business](https://developers.google.com/search/docs/appearance/structured-data/local-business)

3. **Schema.org - OpeningHoursSpecification**
[https://schema.org/OpeningHoursSpecification](https://schema.org/OpeningHoursSpecification)

4. **Schema.org - GeoCoordinates**
[https://schema.org/GeoCoordinates](https://schema.org/GeoCoordinates)

5. **Google Business Profile Help**
[https://support.google.com/business](https://support.google.com/business)
