Skip to main content
7BBusyBoss

LocalBusiness Schema Generator — JSON-LD for Local SEO

Build a LocalBusiness JSON-LD block from your name, type, address, hours and phone — with 10 business types and an optional aggregate rating.

No limitsZero data leaksSuper fast

LocalBusiness JSON-LD Schema Generator

output

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Acme Plumbing",
  "telephone": "+91-9999999999",
  "url": "https://acme-plumbing.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "Mumbai",
    "addressRegion": "MH",
    "postalCode": "400001",
    "addressCountry": "IN"
  },
  "openingHours": "Mo-Sa 09:00-19:00",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128"
  }
}
</script>

Paste into the <head> of your homepage or contact page. This describes your business to search engines in a machine-readable form; it does not by itself produce a local listing or a panel, which come from your Google Business Profile. Pick the most specific @type that genuinely fits — not because specificity ranks better, but because a wrong type describes you incorrectly. Every detail here must match your Business Profile and your website exactly.

You're on 7BusyBoss — 300+ free tools that run instantly in your browser. No signup, nothing uploaded.

Browse all Local SEO
About this tool

Structured data restates facts, it does not create them

JSON-LD is a description of your business written in a vocabulary search engines already understand, sitting in a <script type="application/ld+json"> block in the page head — invisible to visitors, readable by crawlers.

The rule that governs everything else: it does not create facts, it restates them. Its value comes entirely from agreeing with what you have already published — your Google Business Profile, your website, your directory listings. Markup that says one thing while your Business Profile says another does not settle the disagreement in your favour. It adds a third version of the story.

Worth being clear on what it will not do: it does not produce a map listing, a local pack entry or a panel. Those come from a Google Business Profile. This describes; it does not register you anywhere.

What it builds

  • Business name and type
  • Telephone and website
  • Street, city, region, postal code and an ISO two-letter country code, emitted as a nested PostalAddress
  • Opening hours in schema.org shorthand — Mo-Sa 09:00-19:00 for Monday to Saturday, nine until seven
  • Optionally an average rating and review count, as a nested AggregateRating

Ten types are offered: LocalBusiness, Restaurant, Store, MedicalClinic, LegalService, Plumber, Electrician, HairSalon, Dentist and HomeAndConstructionBusiness.

Choosing a type

Pick the one that genuinely describes the business. To be explicit, since a lot of advice implies otherwise: type is not a ranking factor, and a specific type does not outrank a generic one. A restaurant marked as a generic business is simply described incorrectly, and that is the only reason to care.

Which also means that if nothing on the list fits, the generic LocalBusiness is the right answer rather than a compromise. Reaching for the nearest-sounding specific type describes you as something you are not.

The rating fields deserve a warning

Rating and review count describe reviews collected and shown on the page the markup sits on. That is the whole of their meaning.

Copying a star rating across from a third-party profile therefore misrepresents what your page contains, and inventing one outright is a direct route to a manual action. Neither is a grey area.

Leave both fields blank unless you actually display reviews on that page. The markup is complete and valid without them.

Hours are the field that goes stale

Everything else here changes rarely. Hours change for holidays, for seasons, for a temporary closure — and the markup sits in your code untouched while they do.

The habit that prevents it: treat hours as one edit in three places. When they change, update the Business Profile, the page itself and the markup in the same sitting. Leaving the markup behind is worse than not having it, because you have now published a specific, confident, wrong answer.

Consistency is the whole game

Every fact here should match your Business Profile, your website and your listings exactly. That is harder than it sounds and more valuable than the markup itself, since the markup is only worth as much as its agreement with everything else.

To compare the same details across the places you are listed, use the NAP consistency checker.

How to use the LocalBusiness JSON-LD Schema Generator

Takes about a minute. No signup, no download, your data stays in your browser.

  1. 1
    Open the tool. Scroll up to the LocalBusiness JSON-LD Schema Generator above — it loads instantly in your browser, no install needed.
  2. 2
    Enter your values. The fields come pre-filled with realistic defaults so you can see how it works — replace them with your own numbers.
  3. 3
    Read the result. The output updates instantly. Copy or share it — nothing is uploaded to a server, everything stays on your device.

Frequently asked questions

Common questions about the LocalBusiness JSON-LD Schema Generator.

Will this get my business into the local map results?

No. Map listings and local panels come from a Google Business Profile, not from markup on your site. This describes your business in a machine-readable form so search engines can confirm what they already know from elsewhere — useful, but it does not register you anywhere or create a listing.

Does a more specific type rank better?

No. Schema type is not a ranking factor, so choosing Plumber over the generic LocalBusiness gains nothing in position. The reason to be specific is accuracy — describing a restaurant as a generic business is simply wrong. If nothing on the list fits, the generic type is the correct answer rather than a compromise.

Can I use my Google rating in the aggregateRating field?

No. Those fields describe reviews collected and displayed on the page the markup sits on. Copying a rating from a third-party profile misrepresents what your page contains, and inventing one is a direct route to a manual action. Leave both blank unless you genuinely show reviews there — the markup is valid without them.

How do I write the opening hours?

In schema.org shorthand, so Mo-Sa 09:00-19:00 means Monday to Saturday, nine until seven. Hours are the field most likely to go stale, since they shift for holidays and seasons while the markup sits untouched. Treat a change as one edit in three places: the Business Profile, the page, and this block.

What happens if my schema disagrees with my Business Profile?

You have published a third version of the story rather than corrected anything. Structured data restates facts; it does not settle which one is true. Get the Business Profile and the website agreeing first, then generate markup that matches them both.

Where exactly does the block go?

Inside the head of the page, usually your homepage or contact page — wherever the details it describes are actually shown. It is invisible to visitors. Adding it to every page of a site is unnecessary and makes it more work to keep the details in step when something changes.

Community rating

Discussion (0)

No comments yet. Start the discussion.