JSON-LD LocalBusiness Schema Builder

Generate LocalBusiness structured data for Google Maps rich results

Build a complete LocalBusiness JSON-LD schema with name, postal address, phone, opening hours, geo coordinates, price range and accepted currencies. Copy the script tag straight into your contact or home page. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What does LocalBusiness schema do?

It gives search engines the structured details of a physical business — address, hours, phone and location. This powers richer Google Maps and knowledge-panel listings and helps local-pack ranking signals.

A complete LocalBusiness block in one form

The JSON-LD LocalBusiness Schema Builder assembles the structured data search engines need to understand a physical business. Filling in your address, hours and contact details produces a valid schema.org/LocalBusiness block that can enrich your Google Maps and local-pack listings.

How it works

The tool creates a root object with a configurable @type (LocalBusiness or a specific subtype). The address is nested as a PostalAddress object with streetAddress, addressLocality, addressRegion, postalCode and addressCountry. Latitude and longitude, when supplied, form a GeoCoordinates object. Opening hours are emitted as an array of OpeningHoursSpecification entries, each carrying a dayOfWeek URL value plus opens and closes times; any day left closed is omitted. Phone, URL, image, price range and accepted currencies are added as plain properties when filled.

Choosing the right business type

Schema.org has many subtypes that inherit from LocalBusiness and provide more specific signals to search engines. Specifying the narrowest type that fits your business gives the richest potential results:

Business typeUse @type
General local businessLocalBusiness
Restaurant, cafe, barRestaurant, CafeOrCoffeeShop, BarOrPub
Medical clinicMedicalClinic, Dentist, Physician
Trade & home servicesPlumber, Electrician, HVACBusiness
Fitness & wellnessHealthClub, BeautySalon, SpaResort
Retail shopClothingStore, BookStore, GroceryStore

Subtypes are nested in the schema.org hierarchy, so a Restaurant is automatically also a FoodEstablishment and a LocalBusiness — using the specific type gets you all the parent signals.

NAP consistency matters

NAP stands for Name, Address, Phone. These three fields should be exactly identical across your Google Business Profile, Yelp listing, and your website’s LocalBusiness markup. Even small variations — “St.” vs “Street”, “(020)” vs “020” — can reduce confidence in which business these sources describe. Use the same formatting throughout.

A complete worked example

A plumber with Monday-to-Friday hours might produce output like this:

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "City Plumbing Services",
  "telephone": "+44-20-7946-0000",
  "url": "https://cityplumbing.example.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 Trade Street",
    "addressLocality": "London",
    "postalCode": "EC1A 1BB",
    "addressCountry": "GB"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 51.5174,
    "longitude": -0.1032
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["https://schema.org/Monday", "https://schema.org/Tuesday",
                    "https://schema.org/Wednesday", "https://schema.org/Thursday",
                    "https://schema.org/Friday"],
      "opens": "08:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "££"
}

Tips and example

Use the same name, address and phone (NAP) here as everywhere else online — inconsistency hurts local ranking. Times use 24-hour HH:MM. Use a two-letter ISO country code such as US or GB. One opening-hours entry looks like this:

{
  "@type": "OpeningHoursSpecification",
  "dayOfWeek": "https://schema.org/Monday",
  "opens": "09:00",
  "closes": "17:30"
}