Local Business Schema Generator

Generate valid LocalBusiness JSON-LD schema for your website in minutes. Add your business name, address, opening hours, geo coordinates, contact details, images, and departments — then copy clean structured data ready for your site.

LocalBusiness structured data helps search engines understand key details about a physical business, including location, opening hours, departments, reviews, and contact information. Google recommends validating structured data with the Rich Results Test before publishing.

Pick a category (e.g. FoodEstablishment, Store). Categories with more specific options let you choose an exact subtype below.

Image URLs

Postal Address *

Geo Coordinates

Use at least 5 decimal places (e.g. 37.42200, -122.08400).

LocalBusiness schema

Google validation

2 required fields missing
  • nameRequiredBusiness name
  • addressRequiredStreet, city & country
  • telephoneRecommended
  • urlRecommended
  • imageRecommended
  • priceRangeRecommended
  • geoRecommendedLat / long
  • openingHoursSpecificationRecommended

What is Local Business Schema?

Local Business Schema is a type of structured data that describes a business with a physical location. It helps search engines understand your business name, address, phone number, opening hours, website, images, departments, and geographic coordinates.

This markup is commonly added as JSON-LD to a homepage, contact page, or location page. For local SEO, it can support clearer business information in Google Search and Maps, especially when it matches your Google Business Profile and other local citations.

Where should you add LocalBusiness schema?

For a single-location business, add LocalBusiness schema to the homepage, contact page, or main location page.

For a multi-location business, create a dedicated page for each location and add unique LocalBusiness schema to each location page. Each page should include the correct address, phone number, opening hours, geo coordinates, and local details for that specific branch.

Avoid adding identical LocalBusiness schema across every page if the information is not relevant to each page.

Best practices for LocalBusiness schema

Match your Google Business Profile

Your LocalBusiness schema should match the core business information shown on your Google Business Profile. This helps create a consistent entity signal across your website, Google Business Profile, local citations, directories, and review platforms.

Pay close attention to your NAP details:

  • Name: Use the same real-world business name shown on your Google Business Profile. Avoid adding extra keywords, locations, or services unless they are part of the official business name.
  • Address: Use the same physical address, including suite number, floor, unit, postal code, region, and country.
  • Phone number: Use the same primary phone number customers should call.
  • Website URL: Link to the most relevant URL, such as your homepage or location-specific landing page.
  • Business category/type: Choose the most accurate schema type that reflects the business category used in your profile.
  • Opening hours: Keep your structured data aligned with the hours displayed on your Google Business Profile.

For example, if your Google Business Profile says your business is called “Central Dental Clinic”, your schema should not say “Central Dental Clinic | Best Dentist in London”. Keyword-stuffed names can create inconsistency and may look manipulative.

For multi-location businesses, each location page should match the corresponding Google Business Profile listing. The downtown branch, airport branch, and shopping mall branch should each have their own unique address, phone number, opening hours, geo coordinates, and LocalBusiness schema.

A good rule: the LocalBusiness schema on a page should describe the same business location that the page is about.

Use the most specific business type

Use the most accurate Schema.org subtype for your business. For example, a restaurant should use Restaurant, a dental clinic should use Dentist, and a law firm may use LegalService or a more relevant subtype.

Keep opening hours updated

Opening hours are one of the most useful parts of LocalBusiness schema because they tell search engines and users when the business is available.

Your opening hours should match the visible opening hours on the page and the hours shown on your Google Business Profile.

Update your schema whenever your hours change, including:

  • Regular opening hour changes
  • Seasonal schedules
  • Public holiday hours
  • Temporary closures
  • Renovation closures
  • Special event hours
  • Different hours for departments inside the same location

For example, if your main store is open from 9am to 6pm, but your pharmacy department is open from 10am to 4pm, define the pharmacy’s opening hours separately inside the department element.

Use accurate geo coordinates

Latitude and longitude should point to the actual business location, not the city center or an approximate area.

For best results:

  • Use at least 5 decimal places where possible.
  • Check that the latitude and longitude are in the correct order.
  • Use a negative longitude for many locations west of Greenwich, such as the United States.
  • Use a negative latitude for locations south of the equator.
  • Make sure the coordinates match the address on the page.
  • Use unique coordinates for each branch or location.

You can find geo coordinates by searching for your business or address in Google Maps, right-clicking the map pin, and copying the latitude and longitude.

Add departments only when useful

Use the department property when a business has departments inside the same physical location.

This is useful when parts of the same business have their own distinct details, such as different opening hours, telephone numbers, service areas, or names.

For example, a department store might have departments such as:

  • Pharmacy
  • Restaurant
  • PetStore

For a business with departments, add one department element for each department. Define only the properties that differ from the main business inside each department element.

For example, if the main store is open from 9am to 6pm, but the pharmacy inside the store is open from 10am to 4pm, the pharmacy department should have its own openingHoursSpecification.

If a department has a separate phone number, add its own telephone.

Do not use department for multiple business locations.

If your business has multiple branches, offices, clinics, stores, or service locations, create a separate LocalBusiness entity for each location instead. Each location should have its own address, phone number, opening hours, geo coordinates, and location page.

To connect multiple locations to the same parent brand or company, use parentOrganization. This helps show that each location belongs to the same wider organization without treating separate locations as departments of one store.

jsonld
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Example Business - Downtown",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "Los Angeles",
    "addressRegion": "CA",
    "postalCode": "90012",
    "addressCountry": "US"
  },
  "parentOrganization": {
    "@type": "Organization",
    "name": "Example Business",
    "url": "https://www.example.com/"
  }
}

What is NAP in local SEO?

NAP stands for Name, Address, and Phone number. These are the core business details that identify a local business online.

For local SEO, your NAP should be consistent across your website, Google Business Profile, business directories, social media profiles, review platforms, and structured data.

In LocalBusiness schema, your NAP details usually appear in these properties:

jsonld
{
  "name": "Example Business",
  "telephone": "+1-650-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1600 Amphitheatre Pkwy",
    "addressLocality": "Mountain View",
    "addressRegion": "CA",
    "postalCode": "94043",
    "addressCountry": "US"
  }
}

When your business name, address, and phone number are consistent, it reduces confusion and helps search engines connect your website, Google Business Profile, directory listings, and citations to the same entity.

If your NAP details are inconsistent, search engines may struggle to match everything together. For example, these variations can create confusion:

FieldInconsistent example
Business name“Lee Dental Clinic” vs “Lee Dental”
Address“12 Queen’s Road Central” vs “12 Queens Rd C.”
Phone+852 1234 5678” vs “12345678”
Suite/unit“Suite 8A” missing from some listings

Small formatting differences are usually not a big problem, but missing, outdated, or contradictory information can be.

Frequently Asked Questions

Does LocalBusiness schema help with Google Maps?

LocalBusiness schema can help Google understand your business information, but it does not replace your Google Business Profile. For Google Maps visibility, you should also claim and optimize your Google Business Profile, keep your NAP details consistent, and collect genuine customer reviews.

Where do I paste the generated JSON-LD?

Paste the generated JSON-LD inside a <script type="application/ld+json"> tag in the HTML of the relevant page. You can usually add it in the <head> section or near the end of the <body>.

Should I add LocalBusiness schema to every page?

For a single-location business, it is usually enough to add it to your homepage, contact page, or main location page. For multi-location businesses, add unique LocalBusiness schema to each location page.

What business type should I choose?

Choose the most specific type that accurately describes your business. For example, use Restaurant instead of the broader LocalBusiness type if you run a restaurant. Use the generic LocalBusiness type only when no more specific type fits.

How do I find my latitude and longitude?

You can get your geo coordinates from Google Maps. Search for your business or address, right-click the map pin, and copy the latitude and longitude values.

What is priceRange in LocalBusiness schema?

priceRange describes the general cost level of your business, such as $, $$, $$$, or a custom range. It is commonly used for restaurants, shops, and local services.