Local Business Structured Data: Complete Implementation Guide

LocalBusiness structured data helps search engines understand key details about your physical business — your address, opening hours, contact information, and the services you offer. When implemented correctly, this markup can power your Google knowledge panel, improve your visibility in local search results, and provide potential customers with the information they need before they visit. Whether you run a single shop or manage hundreds of locations, LocalBusiness schema is one of the most impactful structured data types for driving foot traffic and local enquiries.

Why Use LocalBusiness Schema?

  • Enhance your Google knowledge panel with accurate business details including address, phone number, and opening hours.
  • Improve rankings in local search results and Google Maps by providing search engines with unambiguous location data.
  • Reduce friction for potential customers by surfacing key information — like whether you are currently open — directly in search results.
  • Support voice search queries such as 'restaurants near me open now' by providing machine-readable opening hours and location data.
  • Consolidate your business information in a single, authoritative source that search engines can trust over inconsistent third-party directories.

Required Properties

These properties are required by Google for LocalBusiness structured data to be eligible for rich results.

PropertyDescription
nameThe official name of the business as customers would recognise it. Must match the name used on your Google Business Profile and other listings.
addressA PostalAddress object containing the full street address, locality, region, postal code, and country. Accuracy is critical for local ranking signals.
@typeUse the most specific subtype available — for example, Restaurant, Dentist, AutoRepair, or Store. Google recommends specific types over the generic LocalBusiness.

JSON-LD Example

Here is a complete LocalBusiness structured data example you can use as a starting point. Or use our LocalBusiness generator to create one automatically.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "The Olive Garden Bistro",
  "image": "https://www.olivegardenbistro.co.uk/images/storefront.jpg",
  "url": "https://www.olivegardenbistro.co.uk",
  "telephone": "+44 20 7946 0958",
  "priceRange": "££",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "42 Borough High Street",
    "addressLocality": "London",
    "addressRegion": "Greater London",
    "postalCode": "SE1 1XW",
    "addressCountry": "GB"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 51.5045,
    "longitude": -0.0915
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "11:00",
      "closes": "22:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "10:00",
      "closes": "23:00"
    }
  ],
  "servesCuisine": "Mediterranean",
  "acceptsReservations": "True"
}
</script>

How to Implement LocalBusiness Schema

  1. 1Choose the most specific @type for your business. Browse schema.org/LocalBusiness to find subtypes like Bakery, LegalService, or HairSalon that match your trade.
  2. 2Add a JSON-LD script block to each location page. For single-location businesses, the homepage is appropriate; for multi-location brands, add markup to each dedicated location page.
  3. 3Include the full postal address and geo coordinates. Cross-reference these with your Google Business Profile to ensure consistency.
  4. 4Define your opening hours using openingHoursSpecification. Account for different hours on different days and include holiday closures where relevant.
  5. 5Add contact details including telephone and url. If you accept reservations or appointments, indicate this with the appropriate properties.
  6. 6Test your markup with Google's Rich Results Test and validate that your business details match across your website, Google Business Profile, and directory listings.

Common Mistakes to Avoid

  • Using the generic LocalBusiness type when a more specific subtype exists — Google strongly prefers specific types like Pharmacy, GasStation, or BeautySalon.
  • Providing an address that does not match your Google Business Profile, which creates conflicting signals and can harm local rankings.
  • Omitting geo coordinates, forcing Google to geocode your address itself — this can result in inaccurate map placement.
  • Listing opening hours that are outdated or do not account for bank holidays, leading to a poor user experience when customers arrive at a closed business.
  • Adding LocalBusiness markup to pages that are not about a specific physical location, such as blog posts or company-wide about pages.

Testing & Validation

Before deploying your LocalBusiness structured data, validate it using these tools:

  1. 1Google Rich Results Test — Paste your page URL or code snippet to check if your structured data is eligible for rich results.
  2. 2Schema Markup Validator — Validates your JSON-LD syntax against the schema.org specification.
  3. 3Google Search Console — After deployment, monitor the Enhancements report for any errors or warnings.

Frequently Asked Questions

Should I use LocalBusiness or Organization structured data?

If your business has a physical location that customers can visit, use LocalBusiness (or a more specific subtype). Organization is better suited for entities that do not serve customers at a physical address, such as online-only companies.

How do I handle multiple locations with LocalBusiness structured data?

Create a dedicated page for each location and add a separate LocalBusiness JSON-LD block to each one. Do not place multiple LocalBusiness objects on a single page. Each location should have its own unique address, phone number, and opening hours.

Does LocalBusiness structured data replace my Google Business Profile?

No. They complement each other. Your Google Business Profile is the primary data source for Google Maps and the local pack. Structured data on your website reinforces and validates that information, and can power additional rich results in organic search.

Can I include menu or service information in LocalBusiness markup?

Yes. Restaurants can use the hasMenu property to link to a menu, and service businesses can use the makesOffer property to describe specific services. These additional properties help Google understand and surface more of your business details.

How often should I update my LocalBusiness structured data?

Update it whenever your business details change — new address, revised opening hours, updated phone number, or seasonal hour adjustments. Stale structured data that contradicts your actual business information can damage both your rankings and customer trust.

Ready to Generate Your LocalBusiness Schema?

Use our free generator to create valid LocalBusiness structured data in seconds.

Open LocalBusiness Generator

Related Guides