"LocalBusiness" schema

Last updated 17 June 2026 4 min

LocalBusiness is a subtype of Organization used to describe a business with a physical location that customers can visit (e.g., a mechanic's workshop), or a service-area business that operates within a defined region (e.g., a business that operates in a particular state, or within a certain radius from its physical location).

It's one of the most important schema types for any business focussed on local SEO — it's the structured data counterpart to a Google Business Profile listing.

When to use "LocalBusiness"

Use LocalBusiness when the business has a real-world physical presence or service area: shops, restaurants, clinics, mechanics, tilers, plumbers, gyms, salons, agencies with a public office, etc. For purely online businesses with no local component, it can be excluded from your Organization schema.

Schema.org defines an extensive list of LocalBusiness subtypes, including:

  • Restaurant, BarOrPub, CafeOrCoffeeShop
  • Dentist, Physician, MedicalClinic
  • Plumber, Electrician, HVACBusiness, RoofingContractor
  • AutoRepair, AutoDealer
  • Store, ClothingStore, HardwareStore
  • LegalService, AccountingService, FinancialService
  • BeautySalon, HairSalon, DaySpa
  • RealEstateAgent, TravelAgency, ProfessionalService

Use the most specific subtype available; this strengthens entity classification.

Key properties

Required or strongly recommended:

  • name – business name (match Google Business Profile exactly)
  • addressPostalAddress with all fields populated
  • telephone – primary contact number in international format
  • url – homepage URL
  • image – at least one photo of the business

Highly recommended:

  • geoGeoCoordinates with latitude and longitude
  • openingHoursSpecification – structured hours per day
  • priceRange – e.g. "$$" or "$50–$200"
  • areaServed – geographic coverage for service-area businesses
  • sameAs – authoritative profile links (GBP, Facebook, LinkedIn, etc.)
  • aggregateRating / review – only if displayed on the page
  • hasMap – URL to the business's Google Maps listing
  • paymentAccepted, currenciesAccepted
  • logo – brand logo
  • founder, foundingDate – brand history signals

Example: storefront business

{
  "@context": "https://schema.org",
  "@type": "CafeOrCoffeeShop",
  "name": "Corporate Shop Name",
  "image": [
    "https://example.com.au/photos/cafe-front.jpg",
    "https://example.com.au/photos/cafe-interior.jpg"
  ],
  "@id": "https://example.com.au/#localbusiness",
  "url": "https://example.com.au",
  "telephone": "+61-3-9000-0000",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Collins St",
    "addressLocality": "Melbourne",
    "addressRegion": "VIC",
    "postalCode": "3000",
    "addressCountry": "AU"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": -37.8136,
    "longitude": 144.9631
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "07:00",
      "closes": "16:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "08:00",
      "closes": "14:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/example",
    "https://www.instagram.com/example"
  ]
}

Example: service-area business

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "XYZ Plumbing",
  "url": "https://example.com.au",
  "telephone": "+61-3-0000-0000",
  "image": "https://example.com.au/logo.jpg",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Footscray",
    "addressRegion": "VIC",
    "postalCode": "3011",
    "addressCountry": "AU"
  },
  "areaServed": {
    "@type": "GeoCircle",
    "geoMidpoint": {
      "@type": "GeoCoordinates",
      "latitude": -37.8136,
      "longitude": 144.9631
    },
    "geoRadius": "30000"
  },
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    "opens": "00:00",
    "closes": "23:59"
  }
}

Local SEO value

LocalBusiness is one of the highest-impact schema types for local SEO. It supports:

  • Knowledge panel population for branded searches
  • Better association between your website and Google Business Profile
  • Eligibility for local business rich results (hours, phone, location in SERPs)
  • Improved entity confidence for AI Overviews and local-intent queries
  • Cleaner display in voice search and assistant queries

Best practices

  • NAP consistency is critical. Name, address, and phone must match Google Business Profile and major citations; don't let profiles across different platforms get out of sync if business details change.
  • Use the most specific subtype. Dentist beats MedicalBusiness beats LocalBusiness.
  • Declare once. Place the markup on the homepage and/or contact page; it doesn't need to be site-wide on every page.
  • For multi-location businesses, mark up each location separately on its own location page.
  • Be accurate — outdated or incorrect information, like the wrong business hours, undermines trust and can be penalised.
  • Only use aggregateRating if reviews are genuinely displayed on the page and freshly aggregated. Don't pull in review counts from third-party sites you don't display.
  • Pair with sameAs linking to your Google Business Profile, Facebook page, and other authoritative profiles to reinforce entity identity.
  • For service-area businesses, prefer areaServed over an inflated address-only declaration. Don't list a fake storefront if you don't have one.

Disclaimer: All information contained herein is for informational purposes only. It is not advice or instructional.