Free local business schema generator

Fill in your details and copy LocalBusiness JSON-LD for your home page. It runs in your browser, so nothing you type reaches us.

Opening hours (optional)

Only 28% of local business home pages have valid LocalBusiness markup

Home page markupLocal business sitesLocusPilot sites
No JSON-LD at all28%3%
JSON-LD, but no LocalBusiness34%14%
LocalBusiness with errors10%4%
Valid LocalBusiness28%79%
Error found: No address3%3%
Error found: Missing or wrong @context3%0%

Source: LocusPilot scan of the home pages of 500 local business sites listed in LocusPilot directories and 121 live sites built with LocusPilot, run through the same validator this generator uses. Only JSON-LD is read, not microdata or RDFa. Valid means a schema.org @context, a LocalBusiness type, a name, an address (with a city when the address is split into parts) and no broken phone, website, hours or social links: Google's two required properties plus a few checks of our own. Shares are of all sites checked. Last checked: November 2026.

How to use it

  1. Pick the closest business type, then fill in the name, website, phone, street and city. The country starts as US. If you're elsewhere, change it to your two-letter code, such as GB or CA.
  2. Set your opening hours (Monday to Friday, 08:00 to 17:00 is filled in to start), then add the towns you cover and your social profile links, one per line.
  3. Click Generate schema and copy the code into the head of your home page. Once it is live, run the page through Google's Rich Results Test.

Where to put it

WordPress
  1. Check first: run your home page through Google's Rich Results Test. If it already shows a LocalBusiness item, often from an SEO plugin, keep that one or switch it off, so the page does not carry two.
  2. Install the free WPCode plugin, add a new HTML snippet and paste the code in. Set the insert location to Site Wide Header.
  3. Under Smart Conditional Logic, turn on Enable Logic, choose Show, then Type of page and Homepage. Activate the snippet and test your home page.
Wix
  1. Wix adds its own Local Business markup to your home page from your Business Info. Switch it off first: in the editor, open Pages & Menu, click More Actions next to your home page, then SEO basics, the Advanced SEO tab and Structured data markup. Click More Actions next to Local business and choose Exclude from page.
  2. Custom code only works on a published site with a connected domain.
  3. In the dashboard, go to Settings, then Custom Code under Development & integrations, and click Add Custom Code.
  4. Paste the code. Under Add Code to Pages, pick Choose specific pages and select your home page, set Place Code in to Head, then click Apply and test the live page.
Squarespace
  1. Code injection needs the Core plan or above, or some legacy plans. Basic doesn't include it.
  2. In the Pages panel, hover over your home page, click the gear icon, open Advanced, paste the code into Page Header Code Injection and save.
  3. Test the live home page. Squarespace adds its own Local business markup, which you can't edit or remove, so the test may show two LocalBusiness items. Keep the name, address and phone the same in both.
Shopify
  1. In your Shopify admin, go to Online Store, then Themes, and duplicate your live theme as a backup.
  2. On the live theme, open the three-dot menu, choose Edit code and open theme.liquid in the layout folder.
  3. Paste the code just before the closing </head> tag, with {% if request.page_type == 'index' %} on the line above it and {% endif %} on the line below, so it loads on the home page only. Save.
Static sites
  1. Paste the code inside the <head> of your home page file, usually index.html.
  2. Deploy the change.
  3. Test the live URL in the Rich Results Test, or paste the code into its code tab before you deploy.

Common questions

A block of JSON-LD in your page's head that states your business name, address, phone, opening hours and the towns you serve in a fixed format search engines read directly. It uses the LocalBusiness type from schema.org, or a narrower one such as Plumber or Dentist.
Two: name and address. Google's LocalBusiness guide lists phone, website, opening hours and price range as recommended. This form asks for more than Google does: phone, website, street, city and country are all required here, since a searcher who finds you needs a way to call or visit. The optional extras, such as areas served and social profiles, are standard schema.org properties outside Google's list. The code only includes them when you fill them in.
The most specific one in the list, such as Plumber or HVAC business. If yours is missing, pick the closest broader type, like Home and construction business or Professional service. Local business (general) is the fallback.
With one location, the home page is enough. With several, run the generator once per location and paste each block on that location's own page, with that location's address and phone. Google's guide allows the markup on any page, but says a page about the business makes the most sense.
That every required field is filled in (business type, name, website, phone, street, city and a two-letter country code), the phone has at least 7 digits and only phone characters, and the website, logo, social links and hours are in a valid format. The last step runs the finished code through the same validator we used on the sites in the table above. Opening hours rows with the same times are merged into one entry, and duplicate social links are dropped.
No. It saves search engines and AI tools from guessing your details. Where you rank still comes down to your pages and reviews, and for map results, your Google Business Profile.