Local Business Schema Generator

Build the LocalBusiness JSON-LD for a single location: address, telephone, coordinates and opening hours. Coordinates that fall outside the map, hours in the wrong format and half-filled addresses are caught before you paste it in.

Address — as it appears on your business profile

Everything runs in your browser. Nothing is uploaded.

What this tool does

Local business markup describes one physical location: a name, an address broken into its parts, a telephone number, coordinates, opening hours and a price range. This tool builds that block and nests PostalAddress, GeoCoordinates and the opening hours the way the specification expects — which is the part hand-written versions usually get wrong, because a postal address is not one string.

It also checks the details that are format-correct but factually impossible: coordinates outside the range a map can hold, opening hours written in a format nothing reads, a city without a street, a longitude without a latitude. What it cannot check is whether any of it is true. The tool has no idea where your shop is, and an address that is internally consistent but wrong is exactly the failure that costs you local visibility rather than gaining it.

How to use it

  1. Choose the most specific type you can honestly justify. A bakery that is a Restaurant is a worse description than one that is a LocalBusiness, but a real bakery that could be a Bakery should say so.
  2. Copy the business name, address and telephone from your Google Business Profile character for character. The whole point of the markup is that it agrees with the listing.
  3. Get the coordinates by right-clicking the exact spot in Google Maps and copying the pair it shows — latitude first, negative for south and west.
  4. Write the opening hours one rule per line, as Mo-Fr 09:00-17:00. Two-letter day codes, a hyphen for ranges, 24-hour times, and no line for a day you are closed.
  5. Click Copy JSON-LD and paste it into a <script type="application/ld+json"> tag on the location or contact page — not on every page of the site.

Common use cases

  • A single-location business

    One shop, one address, one set of hours. The simplest case, and the one where the markup and the profile can be kept identical without effort.

  • A restaurant or café

    Hours and price range are the two properties people actually look for, and both are easy to state once and forget.

  • Several locations

    One page per location, one block per page. One block listing four addresses describes nothing, because a LocalBusiness is a place, not a chain.

  • Tracking down a NAP mismatch

    Build the block from the profile, then compare it against what the site says. The differences are usually in the postcode or the phone format.

  • A business with no premises

    If you go to customers rather than the other way round, use the address you genuinely trade from — and read the note about what the address fields imply before publishing.

Frequently asked questions

Will LocalBusiness schema get me into the map pack?

No, and no markup will. The map pack is driven by your Google Business Profile — the listing, its categories, its reviews and its proximity to the searcher. Structured data on your own site does not create that listing, claim it or influence it. What this markup does is make the business unambiguous to a crawler reading the page, and keep the name, address and phone on your site identical to the ones on the profile. Consistent details across both are worth having; the markup on its own is not a route into local results.

How should opening hours be written?

As schema.org opening hours strings, one per rule: Mo-Fr 09:00-17:00, Sa 10:00-14:00, and so on. Days are two-letter codes, ranges use a hyphen, times are 24-hour, and a day with no entry is a day you are closed. They must also match the hours shown on the page and the hours on your business profile — three different versions of your opening times is worse than not stating them at all.

Do I need latitude and longitude?

They are recommended rather than required, and they are worth setting for a physical location. Get them by right-clicking the exact spot in Google Maps and copying the pair it shows — decimal degrees, latitude first, and negative for south and west. Coordinates that point at the middle of a city rather than your door are worse than leaving the fields empty.

Related tools