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:

SubtypeIndustry
RestaurantRestaurants
StoreRetail stores
MedicalBusinessMedical services
LegalServiceLegal services
FinancialServiceFinancial services
RealEstateAgentReal estate agencies
AutoRepairAuto repair shops
BeautySalonBeauty salons
DentistDentists
PlumberPlumbers

Always use the most specific type that matches your business.

Basic LocalBusiness Implementation

{
  "@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": "[email protected]",
  "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

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

Address Fields

FieldDescriptionExample
streetAddressStreet and number”123 Main Street, Suite 100”
addressLocalityCity”New York”
addressRegionState/Province”NY”
postalCodePostal code”10001”
addressCountryCountry (ISO 3166-1)“US”

Opening Hours (OpeningHoursSpecification)

Standard Hours (Mon-Fri)

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

Different Hours for Different Days

{
  "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

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

Special Days (Holidays)

{
  "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

{
  "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

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

Serving a State

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

Full Implementation for Restaurant

{
  "@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

{
  "@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:

{
  "@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

Schema Markup Validator

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.

Sources

  1. 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

  3. Schema.org - OpeningHoursSpecification https://schema.org/OpeningHoursSpecification

  4. Schema.org - GeoCoordinates https://schema.org/GeoCoordinates

  5. Google Business Profile Help https://support.google.com/business