---
title: Free LocalBusiness Schema Generator
slug: local-business-schema-generator
last_reviewed: 2026-08-09
author: editorial
source: LemAudit Free Tools
---

## Intro

`LocalBusiness` schema is structured data that states, in machine-readable form, who you are, where you are, when you are open and where else you exist online. For a business with a physical location or a defined service area, it is the single most useful block of markup you can add, because it connects the pages on your own site to the entity search engines already hold in their local index.

This generator builds that block from a form: name, type, address, coordinates, opening hours and profile links. It runs entirely in your browser, and it flags the inconsistencies that stop the markup being trusted.

## Why the markup matters more locally

Local search is entity resolution before it is ranking. Before an engine can decide whether to show you for "dentist near me", it has to be confident that the business on your website, the profile in its own index, the listing on a directory and the reviews on a third-party site are all the same organisation.

Every consistent signal makes that match more confident. Structured data is the cleanest signal you control outright, because it removes the parsing step: instead of inferring an address from a footer, the engine reads a labelled `PostalAddress`.

This is also why an inconsistent address does real damage. A markup block that disagrees with your Business Profile does not simply get ignored; it introduces doubt into a matching process that was previously certain.

## Choosing the right type

`LocalBusiness` is the generic parent. Where a specific subtype exists — `Dentist`, `Restaurant`, `Plumber`, `LegalService`, `AutoRepair`, `HealthAndBeautyBusiness` — use it. The subtype inherits everything the parent supports and tells the engine what category of thing you are without requiring it to guess from your copy.

Check the subtype exists in the schema.org vocabulary before using it. An invented type such as `SEOAgency` silently degrades to `Thing` and loses the local properties entirely.

If you serve customers at their location rather than yours, the address is still needed for the entity, but you should also express a service area. A mobile business publishing a street address as its public location while hiding it in the Business Profile creates exactly the kind of contradiction to avoid.

## NAP consistency in practice

Name, address, phone. The three fields that must be byte-identical across your website, your Google Business Profile, your Bing Places listing and the major directories.

"Suite 4" and "Ste 4" are not the same string. Neither are "Street" and "St", a local number and its international form, or a name with and without "Ltd". None of these will break anything on their own, and all of them add friction to matching.

Pick one canonical form, write it down somewhere your team can find, and use it everywhere. Then use the phone number in the markup that also appears as visible text on the page — a tracking number in the markup and a different one in the footer is a contradiction the engine can see.

## Opening hours

Hours belong in `openingHoursSpecification`, with 24-hour times and full day names. The generator parses shorthand such as `Mon-Fri 09:00-17:30` and normalises it.

Split shifts get two entries for the same day, which is correct and valid. Days you are closed are simply omitted rather than marked closed. Seasonal exceptions and public holidays use a separate specification with `validFrom` and `validThrough` dates, which is worth adding only if your hours genuinely vary.

Wrong hours are worse than absent hours. A customer who arrives at a closed shop because your markup said otherwise leaves a review about it.

## Coordinates, images and profiles

Coordinates via `geo` help when your address is ambiguous — a unit in a large complex, a rural address, a new-build street. Take them from the exact point a customer should walk to, not the centre of the postcode.

`image` should be a real photograph of the premises or storefront, hosted on your domain, at a reasonable resolution. Stock photography here helps nothing.

`sameAs` is the underrated field. Every URL you list is a claim that this business is that profile: your Business Profile short link, Facebook page, LinkedIn company page, industry directory listings, review-site profile. This is how a disconnected set of listings becomes one recognised entity. Only list profiles you actually control and that actually resolve.

## Multiple locations

One page per location, one markup block per page, each with its own address and hours. A single page listing six branches with six markup blocks is ambiguous about which entity the page describes.

Where the locations share a parent brand, mark up the parent as `Organization` on the homepage and each branch as a `LocalBusiness` on its own page, linking the branch to the parent with `parentOrganization`. That structure reflects reality and is read correctly by every consumer of the data.

## Validating and maintaining

Run the output through Google's Rich Results Test and the schema.org validator, then check the rendered page source to confirm the script tag actually shipped.

Then diary a review. Hours change, phone numbers change, businesses move, and stale structured data is a slow leak: nothing breaks visibly, the entity match just quietly weakens. A quarterly check against your Business Profile takes five minutes and catches all of it.

## FAQ

### Do I need this if I already have a Google Business Profile?

Yes. The profile is Google's record of you. The markup is your own site confirming it independently, and it is the only version Bing, Apple and answer engines can read from your domain.

### Can I use LocalBusiness without a public address?

If you serve customers at their premises, publish the service area and keep the address hidden in your Business Profile. Do not publish a home address you are hiding elsewhere — the contradiction is worse than the omission.

### Where should the script tag go?

In the head of the location page, one block per page. The homepage should carry `Organization` markup instead unless you trade from a single location.

### Does this markup improve map pack rankings?

Not directly. It improves the confidence of the entity match that has to happen before ranking is considered, and it makes your details harder to get wrong.

### Should the phone number include the country code?

Yes. International format is unambiguous, works as a click-to-call link on every device, and matches how most directories store it.

### What if my business type is not in schema.org?

Use the closest existing subtype, or the generic `LocalBusiness`. Never invent a type name — unrecognised types are discarded along with their properties.
