AEO STRATEGY STRUCTURED DATA 26 Jan 2026 8 min read

LocalBusiness schema: discoverable for local searches

Bas Vermeer
Bas Vermeer SEO/AEO Specialist

Why LocalBusiness schema is essential for local discoverability

For businesses with a physical location (a store, restaurant, office, practice or workshop), LocalBusiness schema is one of the most impactful forms of structured data. This schema type tells search engines and AI models exactly where your business is located, when you are open, how customers can reach you and what type of services or products you offer. Without this markup, Google has to try to extract this information from scattered text on your website, and that regularly goes wrong.

Local searches make up a significant portion of all Google searches. Search terms like "restaurant near me", "plumber Amsterdam" or "dentist open on Saturday" generate billions of searches per year. With correct LocalBusiness schema markup you increase the chance that your business appears in the Local Pack (the map display at the top of search results), in Google Maps and in AI answers to local questions.

LocalBusiness schema is a subtype of Organization schema and shares many properties with the broader Schema.org framework. However, it adds essential local information: address, opening hours, service area and geographic coordinates that you will not find in the standard Organization type.

IMPORTANT

Google considers LocalBusiness schema as one of the core requirements for local SEO. It is a direct confirmation of your NAP data (Name, Address, Phone) that Google uses to match your business with your Google Business Profile.

The complete LocalBusiness JSON-LD structure

A complete LocalBusiness schema contains your business identity, physical location, contact details, opening hours and geographic coordinates. Here is a comprehensive example.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "The Golden Spoon Bistro",
  "image": [
    "https://thegoldenspoon.com/images/restaurant-exterior.jpg",
    "https://thegoldenspoon.com/images/interior.jpg",
    "https://thegoldenspoon.com/images/signature-dish.jpg"
  ],
  "@id": "https://thegoldenspoon.com/#organization",
  "url": "https://thegoldenspoon.com",
  "telephone": "+31-20-1234567",
  "priceRange": "EUR 25-50",
  "servesCuisine": ["French", "European"],
  "acceptsReservations": "True",
  "menu": "https://thegoldenspoon.com/menu",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Keizersgracht 123",
    "addressLocality": "Amsterdam",
    "addressRegion": "North Holland",
    "postalCode": "1015 CJ",
    "addressCountry": "NL"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 52.3702,
    "longitude": 4.8952
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "17:00",
      "closes": "23:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "12:00",
      "closes": "23:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/thegoldenspoon",
    "https://www.instagram.com/thegoldenspoon",
    "https://www.tripadvisor.com/Restaurant-thegoldenspoon"
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "127"
  }
}
</script>

In this example we use the more specific subtype Restaurant instead of the generic LocalBusiness. Schema.org offers dozens of subtypes for local businesses: Dentist, AutoRepair, LegalService, BeautySalon, Pharmacy and many others. Always use the most specific type that fits your business.

NAP consistency and address details

NAP stands for Name, Address, Phone and is a core concept in local SEO. Your NAP data must be identical on your website, in your Google Business Profile, on social media and in online directories. LocalBusiness schema is the machine-readable confirmation of your NAP data.

  • Use exactly the same business name everywhere: not "The Golden Spoon Bistro" on your website and "Golden Spoon Restaurant" in Google Business Profile.
  • Write your address in full in PostalAddress, including street name, house number, postal code, city, region and country.
  • Use the international phone format (+31-20-1234567) for consistency across all platforms.
  • Add an @id that uniquely identifies your business. The convention is your URL followed by #organization.

NAP consistency strengthens your E-E-A-T signals because it confirms you are a real, traceable business. AI models use this consistency as a trust signal when citing local businesses. Also add sameAs links to your profiles on Google, Facebook, Instagram and industry-specific platforms.

OpeningHoursSpecification in detail

Opening hours are one of the most searched pieces of information about local businesses. With OpeningHoursSpecification you can specify regular opening hours, seasonal variations and special closing days.

Regular opening hours

Use a separate OpeningHoursSpecification object for each unique combination of days and times. Group days with the same opening hours in a single entry with an array of dayOfWeek values.

Holidays and exceptions

// Special opening hours for holidays
{
  "@type": "OpeningHoursSpecification",
  "dayOfWeek": "PublicHolidays",
  "opens": "00:00",
  "closes": "00:00"
},
// Adjusted hours for Christmas
{
  "@type": "OpeningHoursSpecification",
  "validFrom": "2026-12-24",
  "validThrough": "2026-12-26",
  "opens": "00:00",
  "closes": "00:00"
},
// Summer hours
{
  "@type": "OpeningHoursSpecification",
  "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
  "opens": "09:00",
  "closes": "21:00",
  "validFrom": "2026-06-01",
  "validThrough": "2026-08-31"
}

With opens and closes set to "00:00" you indicate the business is closed. The validFrom and validThrough properties are essential for seasonal variations. Do not forget to update these annually or generate them dynamically.

GeoCoordinates and service area

GeoCoordinates confirm the exact location of your business to search engines and AI models. This is crucial for "near me" searches and map displays. Use Google Maps to look up the exact coordinates of your business location.

"geo": {
  "@type": "GeoCoordinates",
  "latitude": 52.3702,
  "longitude": 4.8952
},
"areaServed": {
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": 52.3702,
    "longitude": 4.8952
  },
  "geoRadius": "20000"
},
"hasMap": "https://maps.google.com/?cid=12345678901234567890"

The areaServed property is particularly useful for service businesses that cover a certain area (plumbers, delivery services, cleaning companies). With GeoCircle you define a circle around your location with a radius in meters. Alternatively, you can use GeoShape or AdministrativeArea for more precise area delineation.

LocalBusiness schema and AI answer engines

AI models are increasingly used for local queries. "Which restaurant in Amsterdam has the best reviews?", "Do you know a good dentist in Rotterdam that is open on Saturday?" or "What are the opening hours of the library in Haarlem?" are questions users ask ChatGPT, Perplexity and Google Gemini.

For businesses that take their AEO strategy seriously, LocalBusiness schema is indispensable. AI models use structured business information to make local recommendations. Businesses with complete LocalBusiness schema, including ratings, opening hours and contact details, have a significant advantage over businesses that only offer this information as unstructured text.

  • AI models use opening hours to filter businesses that are open at a particular time.
  • GeoCoordinates enable AI models to perform distance calculations for "near me" queries.
  • AggregateRating helps AI models compare and rank the quality of local businesses.
  • SameAs links validate your business identity across multiple platforms, increasing AI model trust.

Specific subtypes for your industry

Schema.org offers specialized subtypes of LocalBusiness for virtually every industry. Always use the most specific type available.

  • Hospitality: Restaurant, BarOrPub, CafeOrCoffeeShop, FastFoodRestaurant, IceCreamShop, Bakery.
  • Healthcare: Dentist, Physician, Pharmacy, Optician, VeterinaryCare, MedicalClinic.
  • Business services: LegalService, AccountingService, FinancialService, InsuranceAgency, RealEstateAgent.
  • Retail: ClothingStore, ElectronicsStore, FurnitureStore, HardwareStore, BookStore, FloristShop.
  • Personal services: BeautySalon, HairSalon, DaySpa, TattooParlor, DryCleaningOrLaundry.
  • Trades and technical: AutoRepair, Electrician, Plumber, HVACBusiness, Locksmith, RoofingContractor.

Using the right subtype gives search engines and AI models extra context. A Dentist in search results receives different treatment than a generic LocalBusiness, and Google can show specific filters and attributes relevant to that industry.

Summary: key takeaways

  • LocalBusiness schema is essential for businesses with a physical location. It communicates NAP data, opening hours and location to search engines and AI models.
  • Use the most specific subtype (Restaurant, Dentist, AutoRepair) instead of the generic LocalBusiness for better recognition.
  • NAP consistency between your website, Google Business Profile and online directories is crucial. LocalBusiness schema is the machine-readable confirmation.
  • OpeningHoursSpecification supports regular hours, seasonal variations and holidays. Always keep these current.
  • AI models use LocalBusiness schema for local recommendations, distance calculations and opening hours filters.

Frequently asked questions

Should I place LocalBusiness schema on every page?

No, LocalBusiness schema only needs to be on your homepage and optionally your contact page. It describes your business as a whole, not individual pages. Product pages get Product schema, blog posts get Article schema. Avoid duplicating LocalBusiness schema on every page, as that can confuse Google.

How do I handle multiple locations?

Create a separate LocalBusiness schema for each location with unique @id, address, opening hours and contact details. You can link these to an overarching Organization schema with the subOrganization or branchOf property. Each location should also have its own page on your website with location-specific content.

Is LocalBusiness schema the same as Google Business Profile?

No, they are complementary systems. Google Business Profile is Google's own platform for local business information. LocalBusiness schema is the open standard that you implement on your own website. It is important that the information in both is identical. Google uses LocalBusiness schema as confirmation of the data in your Business Profile.

What if my business has no physical location?

If you are a purely online business, use Organization schema instead of LocalBusiness. If you are a service business that visits customers at their location (without your own visiting address), use LocalBusiness with the areaServed property but without a public address. Google allows this for service-area businesses.

How often should I update my LocalBusiness schema?

Update your schema with every change to your business details: new opening hours, relocation, new phone number or changed services. Check at least quarterly whether all information is still correct. For seasonal businesses it is wise to check and update opening hours monthly.

Local discoverability starts with the basics: make sure search engines and AI models know who you are, where you are and when you are open.

How does your website score on AI readiness?

Get your AEO score within 30 seconds and discover what you can improve.

Free scan

SHARE THIS ARTICLE

LINKEDIN X

RELATED ARTICLES