Local Business schema is Schema.org structured data—almost always published as JSON-LD—that tells search engines exactly which real-world place your webpage represents: the trading name users see in Maps, the postal address where they can visit or mail you, phone and email contact paths, opening hours, geo coordinates, and optional signals such as price range, accepted payments, and aggregate star ratings. It is a subtype of Organization, tuned for storefronts, clinics, restaurants, salons, dealerships, and any brand where geography and hours materially affect the customer journey.
Search engines already ingest business facts from many sources; when your own site publishes consistent, machine-readable NAP (name, address, phone) alongside visible copy, you reduce ambiguity between similarly named entities and give crawlers a canonical statement aligned with your landing page. Google may use LocalBusiness signals when assembling local pack results, Maps listings, and knowledge-style panels—though rich treatments are never guaranteed and depend on relevance, guidelines, and entity strength. For multi-location brands, placing accurate LocalBusiness (or a more specific subtype such as Restaurant or Dentist) on each location URL is a standard technical SEO practice that complements—not replaces—your Google Business Profile and citation ecosystem.
This SynthQuery Local Business Schema Generator runs entirely in your browser. You choose a business subtype, complete basic and address fields, build a weekly hours grid with closed, 24-hour, or custom intervals, optionally geocode coordinates from the address using the free Open-Meteo search API, paste social profile URLs into sameAs (one HTTPS link per line), and preview valid JSON-LD with live syntax highlighting. Validate checks required fields and common mistakes before you ship; Copy JSON-LD and Download help you hand markup to engineering or paste into your CMS. Browse related utilities from the hub at /free-tools or explore the full product catalog at https://synthquery.com/tools.
What this tool does
The business type selector lists dozens of Schema.org LocalBusiness subtypes—Restaurant, FoodEstablishment, MedicalBusiness, Dentist, LegalService, RealEstateAgent, FinancialService, AutomotiveBusiness, BeautySalon, DayCare, Store, Hotel, Gym, and many retail and trade-specialist types—so you can mirror how Google’s documentation describes your vertical without manually typing @type strings. Basic fields cover name, description, canonical url, image URL, telephone, email, and priceRange (often expressed as $, $$, or textual bands). The address card emits a nested PostalAddress with streetAddress, addressLocality, addressRegion, postalCode, and addressCountry; use ISO 3166-1 alpha-2 for country whenever possible.
The geo card accepts decimal latitude and longitude and includes a Get from Address control that concatenates your address lines, queries Open-Meteo’s public geocoding endpoint, and fills coordinates when a match is returned—handy when you do not already have a pin from Search Console or Maps. Opening hours use an interactive Monday-through-Sunday grid: each day can be Closed, Open 24 hours, or Custom with HTML time pickers; the generator merges consecutive days that share identical opens/closes into compact OpeningHoursSpecification objects with schema.org dayOfWeek URIs, which keeps JSON readable while staying valid.
Social profiles are captured as sameAs: paste one absolute URL per line (Facebook, Instagram, LinkedIn, X, YouTube, TikTok, and so on); invalid lines are skipped with validation warnings. Additional fields include paymentAccepted and currenciesAccepted as comma-separated lists that become arrays in JSON-LD, free-text or comma-separated areaServed for service footprints, and hasMap for a Google Maps (or other) URL. Optional aggregateRating captures ratingValue, reviewCount, and best/worst bounds when you publish truthful summary statistics that also appear on the page. The preview uses the same Atom One Dark–style highlighting and line numbers as our Organization and Product schema tools, and export actions match that workflow for teams already trained on SynthQuery.
Technical details
LocalBusiness extends Organization: you still have name, url, logo/image, and sameAs patterns, but you add location primitives—PostalAddress, GeoCoordinates, openingHoursSpecification, telephone—that tie the entity to a place. Google consumes JSON-LD alongside HTML, GBP feeds, and third-party citations; contradictions weaken trust signals. OpeningHoursSpecification pairs dayOfWeek (Schema.org Monday–Sunday URIs in our output) with opens and closes in 24-hour HH:MM form; all-day locations use 00:00–23:59 in the generator’s 24-hour mode.
GeoCoordinates use WGS84 decimal degrees as Google expects for Maps alignment. hasMap should point to a stable map URL users can open. priceRange is a rough cost signal ($–$$$$ or textual) when you already show similar guidance to humans. LocalBusiness schema does not replace Google Business Profile: GBP remains the primary surface for reviews, Q&A, and many local UI features, while on-page JSON-LD reinforces crawlable facts on your domain.
Use cases
Restaurants, cafés, and food halls use Restaurant or FoodEstablishment markup with precise openingHoursSpecification blocks so weekend brunch or late-night slices match what hosts see on the door. Pair the generator with our FAQ Schema Generator for menus and dietary policies, and keep GBP hours in sync when holidays differ from the regular grid.
Medical and dental practices choose MedicalBusiness, Dentist, Physician, or MedicalClinic as appropriate, emphasizing telephone, address, and geo for appointment-driven queries. Legal and professional services map to LegalService, Attorney, AccountingService, or RealEstateAgent when the office is client-facing; ensure areaServed reflects jurisdictions you actually serve.
Retail chains and independents benefit from Store and specific retail subtypes (ClothingStore, ElectronicsStore, BookStore) on individual storefront URLs, especially when each location has its own page. Use Organization schema on the corporate homepage and LocalBusiness on each shop URL for a clean parent/location story.
Service-area businesses without a public lobby can still publish LocalBusiness when policy allows, often with a service-area description in visible copy and areaServed in schema; consult Google’s guidelines for your category before implying a walk-in address you do not operate.
Multi-location operators generate JSON per template, varying only NAP, hours, and geo while keeping @type and payment constants—then batch-test representative URLs after deployment. Agencies can download snippets for client deliverables alongside Meta Checker and SERP preview passes.
How SynthQuery compares
Many free schema generators stop at name, address, and phone, or they hard-code LocalBusiness without subtypes, hours, or geo helpers. SynthQuery bundles a broad subtype list, a visual weekly hours builder with merged OpeningHoursSpecification output, optional aggregateRating, payment and currency lists, sameAs textarea import, client-side geocoding via Open-Meteo, validation tuned to common local SEO mistakes, and exports that match our Organization and Product tools—so one interface covers realistic storefront markup without hand-editing JSON arrays.
Processing stays in the browser: you are not uploading proprietary store lists to a third-party formatter just to pretty-print JSON. The dark responsive UI follows SynthQuery tokens, internal links point to adjacent generators, and the comparison table below summarizes how this depth differs from minimal snippet sites—not to dismiss them, but to set expectations when you need more than three fields.
Often a single LocalBusiness type or static example without vertical-specific @type.
Hours & geo
Interactive Mon–Sun grid with closed/24h/custom modes, merged OpeningHoursSpecification; geo fields plus Get from Address geocoding.
Plain text openingHours strings or manual JSON editing for each day; coordinates typed by hand only.
Social & extras
sameAs one URL per line; paymentAccepted, currenciesAccepted, areaServed, hasMap; optional AggregateRating block.
Limited or no sameAs editor; sparse support for payments and maps URLs.
Validation & export
Required-field checks, URL and coordinate validation, warnings for thin signals, copy, download, Rich Results handoff.
Copy-only output without structured preflight guidance.
How to use this tool effectively
1) Choose the business subtype that best matches how customers think about your location—Restaurant for dine-in concepts, Dentist for dental practices, AutoRepair for garages—rather than defaulting to generic LocalBusiness when a precise type fits.
2) Complete Basic: name and url are required for a confident entity. Add an absolute HTTPS image URL (storefront photo, interior, or logo) and telephone in a format users recognize locally or internationally. Email and priceRange are optional but useful when shown visibly on the page.
3) Fill Address with the same NAP users see in your footer and Google Business Profile. Include addressCountry (e.g. US, GB) and pair streetAddress with locality and postalCode when you have them; inconsistent addresses across GBP, schema, and HTML confuse crawlers.
4) Set Geo either manually (decimal degrees) or click Get from Address after the postal fields look complete. If geocoding misses, adjust the query or paste coordinates from Maps; leave both blank if you intentionally omit geo.
5) Configure Opening hours per day: Closed for non-trading days, Open 24 hours for always-on facilities, or Custom with opens/closes times. The visual preview table mirrors the grid so stakeholders can sanity-check hours before JSON is copied.
6) Add sameAs lines for official social URLs only—one https URL per line. Skip networks you do not control. Optional: paymentAccepted (e.g. Cash, Credit Card, Apple Pay), currenciesAccepted (e.g. USD, EUR), areaServed for cities or regions, and hasMap linking to your public Maps listing.
7) If you display aggregate star summaries on the page, fill aggregateRating fields truthfully; otherwise leave them empty. Misleading ratings violate Google’s spam policies.
8) Watch the Live JSON-LD preview update as you type, then click Validate to surface blocking errors and warnings.
9) Copy JSON-LD or Download, inject a single application/ld+json script on the location URL (or template), and test with Google’s Rich Results Test. Re-validate after hour changes, moves, or rebrands.
Limitations and best practices
Structured data must reflect content users can see. Do not fabricate addresses, hours, ratings, or payments to chase rankings—Google may ignore markup or apply manual actions. When you operate both Organization and LocalBusiness, keep brand naming and URLs coherent across templates, and avoid duplicate conflicting JSON-LD blocks on the same URL.
Re-test in the Rich Results Test after CMS migrations, plugin updates, or international expansions. Continue investing in crawlability, performance, reviews, and GBP accuracy; LocalBusiness JSON-LD supports clarity but does not replace those fundamentals. For the broader SynthQuery suite, visit https://synthquery.com/tools; for more lightweight utilities, bookmark /free-tools.
AI detection, readability, grammar, plagiarism, and the full marketing suite beyond free SEO utilities.
Frequently asked questions
Local Business schema is Schema.org structured data—almost always published as JSON-LD—that uses @type LocalBusiness or a more specific subtype (for example Restaurant, Dentist, or Store) to describe a business tied to geography. Typical properties include name, url, image, telephone, email, PostalAddress, GeoCoordinates, openingHoursSpecification, sameAs social URLs, priceRange, paymentAccepted, and optional aggregateRating when you publish truthful summary stars on the page. Search engines read this block alongside visible HTML to understand which URL represents which storefront or office. It does not replace human-readable contact information; it mirrors facts users can already verify so crawlers can parse them reliably.
Schema on your website does not log into or edit your Google Business Profile; Maps listings are still primarily driven by GBP data, user behavior, and broader entity signals. Where LocalBusiness JSON-LD helps is consistency: when your landing page, footer NAP, and JSON-LD all agree on address, phone, and hours, Google has fewer conflicting clues when reconciling your site with your Maps presence. That alignment can support clearer understanding of your entity, especially after site migrations or multi-brand structures. Always keep holiday exceptions updated in both GBP and on-page markup when they differ from your regular weekly template.
Choose the Schema.org subtype that matches how you describe the business to customers in ordinary language, not the broadest type that might feel “safer” for keywords. A pizzeria with table service fits Restaurant; a dental clinic fits Dentist or MedicalClinic; a law firm with a walk-in office often fits LegalService or Attorney; a salon fits BeautySalon or HairSalon. Generic LocalBusiness is appropriate when no listed subtype fits cleanly or when you are a mixed-use venue still standardizing messaging. The @type should agree with visible category labels and, where applicable, your GBP primary category, so humans and machines see the same story.
For most location-based businesses you want both: GBP is the operational surface for reviews, Q&A, photos, and many Maps UI features, while on-page JSON-LD documents authoritative facts on a domain you control. Think of GBP as the profile consumers interact with in Google surfaces, and LocalBusiness schema as machine-readable reinforcement on your own URLs. Skipping GBP where you are eligible leaves a major gap; skipping schema means crawlers rely only on unstructured HTML parsing for NAP and hours. Together they reduce mismatches that confuse users who compare your site to your listing.
Model hours with one or more OpeningHoursSpecification objects. Each spec lists dayOfWeek (Monday through Sunday) and opens/closes in 24-hour HH:MM notation. Closed days are simply omitted rather than marked with fake times. All-day operations can use a full span such as 00:00 to 23:59. In this generator you pick Closed, Open 24 hours, or Custom per weekday; identical adjacent ranges are merged so JSON stays short. After publishing, revalidate whenever daylight-saving rules, seasonal schedules, or holiday closures change, and mirror those exceptions in GBP when they affect customer visits.
Geo coordinates are decimal latitude and longitude in WGS84, nested under a GeoCoordinates object. They tell search engines exactly where a pin should fall relative to street geometry, which matters in dense cities, shopping centers, and rural routes where postal codes cover large areas. You can paste coordinates from a trusted map product or use our Get from Address helper (Open-Meteo search) and then verify visually. Never guess coordinates to rank in another town—that is spam. If you genuinely have no public pin (some virtual models), leave geo empty rather than fabricating a location.
Service-area businesses sometimes qualify for LocalBusiness-style markup when their visible content and Google’s category guidelines honestly describe how customers engage—often with areaServed text, clear service regions, and accurate phone channels. If you do not operate a walk-in lobby, do not invent a fake street address just to emit PostalAddress. Many SABs still list a legitimate office or headquarters; others emphasize regions. Pair schema decisions with how you configured GBP (service areas versus storefront) and keep both aligned. When unsure, prioritize truthful NAP over aggressive markup.
Use one primary JSON-LD LocalBusiness object per canonical location URL, each with that branch’s unique name (if branded differently), address, phone, hours, geo, and map link. Avoid spraying identical blocks across every page of the site, which can look templated and unhelpful. A corporate homepage might carry Organization markup while /locations/chicago and /locations/austin each carry their own LocalBusiness. If locations share one URL with JavaScript tabs, ensure the HTML users and crawlers receive without interaction still matches the JSON-LD you output, or use separate URLs per store when possible.
It can strengthen entity clarity, but the local pack ranks on a blend of relevance to the query, proximity, prominence (reviews, links, citations), and behavioral signals—not structured data alone. Accurate LocalBusiness JSON-LD reduces contradictory NAP signals that might indirectly hurt trust, yet it will not overcome weak relevance or a distant address for a hyper-local intent. Treat schema as part of a broader local SEO program: GBP hygiene, reviews, on-page content, internal linking between locations, and performance. Measure outcomes in Search Console, Maps insights, and conversions, not only Rich Results eligibility.
priceRange is an optional rough cost signal, commonly expressed with dollar signs ($ through $$$$) or short phrases like “Inexpensive” that already appear in your UI. It helps set expectations before a click when consistent with visible copy. Do not use it to imply luxury you do not deliver or to understate pricing in a misleading way—Google’s spam policies apply to structured data the same as to visible text. If you do not show price guidance to users, leaving priceRange blank is perfectly fine; optional fields should only ship when they reflect real messaging.