Skip to main content

Local Business Schema Generator

Build valid LocalBusiness JSON-LD for any of 131 business types, with opening hours, geo coordinates, and instant checks against Google's rules.

  • Free
  • No sign-up
  • Runs in your browser
  • Updated
Jump to the JSON-LD output ↓

Business details

Fields marked * are required by Google. Everything updates the code instantly.

Business type and name

Pick the most specific type that fits. Google recommends a specific subtype over the generic LocalBusiness.

Use the exact name customers see on your signage and Google Business Profile.

Address and location

Tip: in Google Maps, right-click your pin (or long-press it on a phone), copy the coordinates, and paste both into Latitude. They'll be split automatically. Google needs at least 5 decimal places.

Contact, website, and images

The page about this specific location. For a single-location business, that's usually your homepage.

Opening hours

Monday hours
Closed
Tuesday hours
Closed
Wednesday hours
Closed
Thursday hours
Closed
Friday hours
Closed
Saturday hours
Closed
Sunday hours
Closed

Closing after midnight? Enter it as is (for example 18:00 to 02:00). Use + Split for a lunch break.

Holiday and seasonal hours

Add closures or different hours for specific dates, such as public holidays or a winter break.

Advanced: entity IDs

A stable identifier so other schema on your site can reference this location. Leave empty to generate it from the location URL.

For chains and multi-location brands: links this location to your main Organization entity.

Your JSON-LD



      

How useful was this tool?

Your rating helps other users find the right tool.

How to use the Local Business Schema Generator

  1. Choose your business type

    Pick the most specific type from the list, such as Dentist or Plumber. Add a second or third type only if the business genuinely does more than one thing.

  2. Add your name, address, and contact details

    Enter the business name and address exactly as they appear on your Google Business Profile, then add the phone number with its country code, the location page URL, and coordinates from Google Maps.

  3. Set your opening hours

    Tick each open day and enter its hours. Use the quick-fill buttons for common schedules, + Split for lunch breaks, and holiday hours for closures on specific dates.

  4. Fix anything the checks flag

    The panel under the code lists errors and suggestions. Click any item to jump to the field that needs attention.

  5. Copy the code and test it

    Copy the script tag and paste it into the page for this location, then use Copy and open Rich Results Test to confirm Google can read it.

Example: LocalBusiness schema for a café

A café in Portland, Oregon, open on weekdays and Saturday, closed on Sundays and over Christmas. This is the exact input and the JSON-LD the local business schema generator produces for it.

What was entered
Business type:   Café or coffee shop (CafeOrCoffeeShop)
Business name:   Cedar & Salt Café
Description:     Neighborhood café in the Pearl District serving
                 specialty coffee, breakfast, and sandwiches.
Street address:  1220 NW Glisan St, Suite 4
City / Region:   Portland, OR 97209
Country:         United States (US)
Coordinates:     45.52653, -122.68461
Location URL:    https://www.example.com/
Phone:           +1 503 555 0148
Price range:     $$
Logo:            https://www.example.com/images/logo.png
Photos:          storefront.jpg, interior.jpg
Profiles:        Instagram, Facebook
Hours:           Mon–Fri 07:00–15:00, Sat 08:00–14:00, Sun closed
Special hours:   Closed 25–26 December 2026
Cuisine:         Coffee, Breakfast, Sandwiches
Menu:            https://www.example.com/menu/
Reservations:    No
Generated LocalBusiness JSON-LD
{
  "@context": "https://schema.org",
  "@type": "CafeOrCoffeeShop",
  "@id": "https://www.example.com/#localbusiness",
  "name": "Cedar & Salt Café",
  "description": "Neighborhood café in the Pearl District serving specialty coffee, breakfast, and sandwiches.",
  "url": "https://www.example.com/",
  "image": [
    "https://www.example.com/images/storefront.jpg",
    "https://www.example.com/images/interior.jpg"
  ],
  "logo": "https://www.example.com/images/logo.png",
  "telephone": "+15035550148",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1220 NW Glisan St, Suite 4",
    "addressLocality": "Portland",
    "addressRegion": "OR",
    "postalCode": "97209",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 45.52653,
    "longitude": -122.68461
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "07:00",
      "closes": "15:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "08:00",
      "closes": "14:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "opens": "00:00",
      "closes": "00:00",
      "validFrom": "2026-12-25",
      "validThrough": "2026-12-26"
    }
  ],
  "servesCuisine": [
    "Coffee",
    "Breakfast",
    "Sandwiches"
  ],
  "menu": "https://www.example.com/menu/",
  "acceptsReservations": false,
  "sameAs": [
    "https://www.instagram.com/example",
    "https://www.facebook.com/example"
  ]
}

Monday to Friday share the same hours, so they're grouped into one entry. The Christmas closure uses 00:00 to 00:00 with validFrom and validThrough, and the phone number is converted to the compact international format Google uses in its examples.

This local business schema generator creates LocalBusiness JSON-LD that follows Google’s local business structured data documentation and the schema.org vocabulary. Pick from all 131 LocalBusiness types, add your address, hours, and contact details, and the tool writes valid schema markup as you type, checks it against Google’s required and recommended properties, and tells you exactly what to fix.

What is LocalBusiness schema?

LocalBusiness schema is structured data that describes a business customers can visit or call: its name, address, phone number, opening hours, location, and the kind of business it is. It’s written in JSON-LD, a small block of code that sits in the page’s HTML. Visitors don’t see it, but search engines and AI systems read it to understand which real-world business a page is about.

LocalBusiness is a subtype of Organization in schema.org, with more specific subtypes underneath it, such as Dentist, Plumber, or CafeOrCoffeeShop. Using the most specific type tells Google precisely what you do, which is why the local business schema generator above lists every subtype instead of a handful of popular ones.

Anatomy of LocalBusiness schema: required, recommended, and properties to leave out
The parts of LocalBusiness schema markup: two required properties, Google’s recommended ones, and ratings to leave out.

Does LocalBusiness schema help local SEO?

It helps, but not the way it’s often sold. Google has said many times that structured data isn’t a ranking boost on its own, and the local map pack is driven mainly by your Google Business Profile, relevance, distance, and prominence. What LocalBusiness schema does is remove ambiguity. It confirms your name, address, and phone number in a machine-readable format, ties your website to the same entity as your Business Profile and social profiles, and gives Google, Bing, and AI assistants clean facts to quote, such as whether you’re open on Sunday.

For a local business, that consistency is worth the ten minutes it takes. Treat the markup as a precise summary of information that’s already visible on your page, not as a ranking trick.

Google requires only two properties for LocalBusiness schema, but recommends several more. The local business schema generator marks each one and counts how many you’ve completed.

PropertyGoogle’s statusWhat to know
nameRequiredThe business name exactly as it appears on signage and your Business Profile.
addressRequiredA PostalAddress. Include as many parts as possible: street, city, region, postal code, and a two-letter country code.
telephoneRecommendedThe main customer phone number, including the country code, such as +1 for the US.
urlRecommendedThe full URL of the page for this specific location. It must be a working link.
geoRecommendedLatitude and longitude with at least 5 decimal places.
openingHoursSpecificationRecommendedRegular hours, plus optional seasonal or holiday hours.
priceRangeRecommendedFor example $$ or $10–25. Must be under 100 characters.
servesCuisine, menuRecommended for food businessesThe cuisine and a link to the menu.
aggregateRating, reviewOnly for review sitesOnly recommended for sites that review other businesses. Leave them out for your own business.

Because LocalBusiness inherits from Organization, Google also recommends Organization fields such as logo and sameAs links to your official profiles. The tool includes both.

How to choose the right business type

Pick the most specific type that genuinely describes the business. A family dentist is Dentist, not MedicalBusiness; a bakery is Bakery, not FoodEstablishment. If you choose a broad type, the generator flags it and suggests going one level deeper.

If the business really does several things, such as a company that offers plumbing and electrical work, add up to three types. They’re written as an array, for example ["Plumber", "Electrician"], which is the format Google documents. Don’t use additionalType for this: Google doesn’t support it for local businesses.

Getting opening hours right

Opening hours are where most LocalBusiness schema goes wrong, and they’re the details people check most often. The local business schema generator groups days with identical hours into one entry, like Google’s own examples, and handles the edge cases for you:

  • Open past midnight: enter the times as they are, for example 18:00 to 02:00. A closing time earlier than the opening time means the next day.
  • Open 24 hours: tick 24 hours and the tool writes 00:00 to 23:59, the format Google specifies.
  • Lunch breaks: use Split to add a second period for the same day.
  • Holidays and seasonal closures: add special hours with a start and end date. A full-day closure is written as 00:00 to 00:00 with validFrom and validThrough.
  • Closed days: simply leave them unticked. A day that isn’t listed is treated as closed.

Whatever you enter, keep it identical to the hours on your Google Business Profile and on the page itself. Conflicting hours are a worse signal than no hours at all.

Service-area businesses and multiple locations

If you travel to customers and hide your street address on Google, tick the service-area option. The generator leaves the street address out, keeps the city, region, and country that Google still needs, and asks for the areas you serve.

For a business with several branches, create one LocalBusiness block per location and place each one on that location’s own page. Give every location its own url and @id, and link them to your brand with parentOrganization in the advanced section. Don’t put every branch on the homepage; Google needs to know which page represents which location.

Where to add LocalBusiness schema

For a single-location business, add the JSON-LD to your homepage, or to the page that best represents the business, such as a contact page with your address and hours. It can go in the <head> or the <body>; Google reads both.

On WordPress, check your SEO plugin first. Rank Math, Yoast Local SEO, and similar plugins can output their own LocalBusiness markup, and two different versions of the same business on one page send mixed signals. Either configure the plugin’s local SEO settings using the details from this generator, or turn its local markup off and paste the generated code instead.

Common mistakes to avoid

  • Marking up your own reviews. Self-serving ratings aren’t eligible for review stars, and Google can issue a manual action for misleading markup.
  • Details that don’t match the page. The name, address, phone number, and hours in your schema markup should match what visitors can see.
  • Phone numbers without a country code. Use the international format, starting with +.
  • Imprecise coordinates. Google needs at least 5 decimal places for latitude and longitude.
  • Relative or broken URLs. Every URL must be complete, starting with https://, and must load.
  • Using LocalBusiness for an online-only company. If customers can’t visit or call a local location, use Organization schema instead.

How to test your markup

Before publishing, use Copy and open Rich Results Test in the tool, choose Code, and paste. The Rich Results Test shows how Google reads your business details, and the Schema Markup Validator checks the code against the full schema.org vocabulary. After the page is live, inspect it with the URL Inspection tool in Search Console to confirm Google sees the markup.

Already have LocalBusiness markup on a site? Use Import existing JSON-LD to load it into the generator. You’ll see every error and gap immediately, and you can fix them without rewriting the code by hand. For more structured data tools, browse the schema tools.

Local Business Schema Generator FAQ

Where should I put LocalBusiness schema on my website?

Put it on the page that represents the business location. For a single-location business, that's usually the homepage or the contact page. For multiple locations, add one LocalBusiness block to each location's own page. The code can go in the head or the body of the page.

Is LocalBusiness schema a ranking factor?

Not directly. Google has said structured data doesn't boost rankings on its own, and local map results depend mostly on your Google Business Profile, relevance, distance, and prominence. LocalBusiness schema helps search engines and AI systems understand and confirm your business details.

Can I add star ratings to my own LocalBusiness schema?

No. Google only recommends aggregateRating and review for sites that capture reviews about other businesses. Ratings a business shows about itself are self-serving and aren't eligible for review stars, so this generator leaves them out on purpose.

What's the difference between LocalBusiness and Organization schema?

Organization describes any company or brand. LocalBusiness is a more specific subtype for businesses with a physical location or service area that customers can visit or call. Online-only companies should use Organization schema instead.

How do I mark up a business that's open 24 hours or after midnight?

For 24 hours, set opens to 00:00 and closes to 23:59. For hours that run past midnight, use one entry with the later closing time, such as opens 18:00 and closes 02:00. The generator writes both formats for you.

Do I still need LocalBusiness schema if I have a Google Business Profile?

Yes. Your Business Profile lives on Google, while LocalBusiness schema confirms the same details on your own website, where every search engine and AI assistant can read them. Keep the two identical.

Built and reviewed by Devansh Thakkar

WordPress developer and technical SEO specialist with 250+ client projects delivered since 2019. This tool and guide were last updated on .

More about Devansh Thakkar
  • Organization Schema Generator

    Create Organization and WebSite JSON-LD for your homepage, with logo checks, profile links, contact points, and validated business identifiers.

  • Schema @graph Combiner

    Merge separate JSON-LD blocks into one connected @graph: duplicates removed, stable @id values added, and conflicts flagged for review.

  • Restaurant Schema Generator

    Create Restaurant JSON-LD with cuisine, menu, reservations, and opening hours.

  • Hotel Schema Generator

    Generate Hotel JSON-LD with check-in times, amenities, and star rating.

  • Breadcrumb Schema Generator

    Build BreadcrumbList JSON-LD from a URL or your page's HTML, with multiple trails, Google checks, and matching breadcrumb HTML.