Course → Module 5: Schema.org Structured Data
Session 4 of 10

When You Have a Physical Location

LocalBusiness is a subtype of Organization in the schema.org hierarchy. If your business has a physical location where customers visit or where services are provided, LocalBusiness schema is more appropriate than Organization schema. It inherits all Organization properties and adds location-specific ones: opening hours, geo coordinates, price range, and payment methods.

The distinction matters because LocalBusiness schema unlocks features that Organization schema does not: Google Maps integration, local pack results (the 3-pack in local searches), and location-specific rich results.

Use LocalBusiness (or a more specific subtype) if customers visit your location. Use Organization if you operate purely online or have no public-facing address. If in doubt, LocalBusiness gives you more features.

Choosing Your Subtype

LocalBusiness has dozens of subtypes. Using the most specific subtype that matches your business tells Google exactly what kind of entity you are, which improves search matching precision.

Subtype Best For Example
ProfessionalService Consulting, legal, accounting, engineering firms Engineering consultancy
Store Retail businesses Hardware store, electronics shop
Restaurant Food service establishments Restaurant, cafe, bakery
MedicalBusiness Healthcare providers Clinic, pharmacy, dentist
FinancialService Banking, insurance, investment Bank branch, insurance office
AutoRepair Vehicle service businesses Auto mechanic, body shop
HomeAndConstructionBusiness Construction and home services Contractor, plumber, electrician

LocalBusiness-Specific Properties

Beyond all the Organization properties from Session 5.3, LocalBusiness adds these location-specific properties:

Property Type Purpose
openingHoursSpecification Array of OpeningHoursSpecification Detailed business hours per day
geo GeoCoordinates Latitude and longitude for Maps
priceRange Text Price indicator ("$$" or "Rp 50.000 - Rp 500.000")
paymentAccepted Text Payment methods (credit card, cash, transfer)
currenciesAccepted Text Currency codes (IDR, USD)
hasMap URL Link to Google Maps listing

The Complete LocalBusiness Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "@id": "https://yoursite.com/#localbusiness",
  "name": "PT Arsindo Perkasa",
  "url": "https://yoursite.com",
  "logo": "https://yoursite.com/images/logo.png",
  "description": "Industrial pump manufacturer and distributor.",
  "foundingDate": "2015",
  "telephone": "+62-21-8765-4321",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Jl. Raya Bogor No. 15",
    "addressLocality": "Jakarta Timur",
    "addressRegion": "DKI Jakarta",
    "postalCode": "13510",
    "addressCountry": "ID"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": -6.2615,
    "longitude": 106.8631
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "08:00",
      "closes": "17:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "08:00",
      "closes": "12:00"
    }
  ],
  "priceRange": "$$",
  "paymentAccepted": "Cash, Bank Transfer, Credit Card",
  "sameAs": [
    "https://www.linkedin.com/company/arsindo",
    "https://www.facebook.com/arsindoperkasa"
  ]
}
</script>

Getting Geo Coordinates

The geo property requires your exact latitude and longitude. The easiest way to get them:

  1. Open Google Maps and find your business location.
  2. Right-click on the exact spot.
  3. The coordinates appear at the top of the context menu. Click to copy them.
  4. The first number is latitude, the second is longitude.
graph TD LB["LocalBusiness Schema"] --> OrgProps["All Organization
Properties
(name, url, sameAs, etc.)"] LB --> Hours["openingHoursSpecification
(per-day hours)"] LB --> Geo["geo
(lat/long coordinates)"] LB --> Price["priceRange +
paymentAccepted"] OrgProps --> Entity["Complete
Local Entity"] Hours --> Entity Geo --> Entity Price --> Entity Entity --> Maps["Google Maps
Integration"] Entity --> LP["Local Pack
Results"]

Organization vs. LocalBusiness: When to Use Which

If your business has a physical address where customers visit, use LocalBusiness (or a subtype). If your business is online-only, use Organization. If you have a physical headquarters but customers do not visit it, you can use either, but Organization is more accurate.

For multi-location businesses, use one Organization schema on the main homepage and separate LocalBusiness schemas on individual location pages.

Further Reading

Assignment

  1. Determine whether your business should use Organization or LocalBusiness schema. If LocalBusiness, identify the most specific subtype from the schema.org hierarchy.
  2. If LocalBusiness applies, get your exact geo coordinates from Google Maps.
  3. Write a complete LocalBusiness JSON-LD block including: all Organization properties from Session 5.3, plus openingHoursSpecification, geo, priceRange, and paymentAccepted.
  4. Validate at both jsonlint.com and the Rich Results Test.