My Tool Studio
Schema Markup·4 min read

Local Business Schema and the Google Map Pack

Search for a plumber and Google answers with three pinned businesses on a map before any normal result appears. Any honest guide to local markup starts here: the markup doesn't rank you in that box, your Google Business Profile does. What LocalBusiness JSON-LD adds is confirmation: your name, address, phone and hours stated on your own site in machine-readable form, consistent with everything else Google knows about you. This guide covers subtype selection, a worked example, NAP discipline, and the errors that make local markup worthless.

{"@type": "LocalBusiness","name": "…","url": "…"}RICH RESULTLocalBusiness

How LocalBusiness markup relates to the map pack

Support signal, not ranking hack.

Map pack ordering is driven by relevance, distance and prominence, fed heavily by your Business Profile, reviews and citations. Nothing in Google's documentation lists LocalBusiness markup as a direct factor there, and anyone guaranteeing map placement from a script tag is overselling.

The markup still earns its place. It ties your website to the same business your profile describes, confirms the details your citations repeat, and gives Google structured hours, coordinates and price range to work with. Think of it as putting your NAP on record on the one property you fully control.

Choosing a LocalBusiness subtype that fits

Specific beats generic.

The subtype is the first real decision. Schema.org defines dozens, and the generator's Business type dropdown offers 32 common ones, from Dentist and Restaurant to HVAC Business, Legal Service and Real Estate Agent. A subtype inherits everything from LocalBusiness while telling Google precisely which category you belong in.

Pick the narrowest honest match. A sushi bar is a Restaurant, not a FoodEstablishment; a family dental practice is a Dentist, not a MedicalBusiness. Keep the generic LocalBusiness type for genuinely hard-to-classify operations, and never claim a flattering category you don't belong to. The subtype only changes the @type in the output, so you can switch it at any time without losing what you've typed.

A LocalBusiness example with opening hours

The shape of a clean listing.

Here's the skeleton for a dental clinic: { "@type": "Dentist", "name": "Harbor Dental", "telephone": "+14155550132", "openingHoursSpecification": { "dayOfWeek": "Monday", "opens": "09:00", "closes": "17:00" } }. The subtype does the classifying, the phone uses full international format, and the hours are structured objects rather than a text blurb like Mon to Fri, 9 to 5.

The full block adds a PostalAddress, GeoCoordinates, payment methods and social profiles under sameAs. If you complete the Founder card, a second Person node is linked through worksFor inside an @graph wrapper. Hours presets such as Monday to Friday, 9 to 5, or Open 24/7 fill the week in one click, and each Add time slot row becomes another openingHoursSpecification object, so a lunch break is simply two rows for the same day.

NAP consistency across your markup and profiles

One business, one spelling.

The name, address and phone in your markup should match your Business Profile, your site footer and your citations, character for character where possible. Suite 204 in one place and #204 in another won't sink you, but a different phone number or an outdated address genuinely confuses Google about which business is which.

The generator helps by crawling your homepage plus contact, about and locations pages when you press Auto-fill, so the values it proposes come from your own site rather than from memory. For coordinates, paste your Google Maps link under Geo and media and press Read link: it fills latitude and longitude from the pin, so you never type them by hand. Audit once a year regardless. Businesses move, numbers change, and stale markup outlives both.

Where LocalBusiness markup usually goes wrong

Four recurring failures.

These four problems turn up in almost every local audit.

  • One block copied onto every location page, so five branches all claim the same address and phone number.
  • Hours in the markup that ignore reality, with no lunch closure and no weekend difference, because someone typed 9 to 5 across the board once.
  • A geo point sitting in the wrong city because latitude and longitude were pasted in reverse order.
  • Ratings added to the markup with no reviews shown on the page. Google does not show review stars for ratings a business publishes about itself, so these add risk and no benefit.

Habits that keep LocalBusiness schema accurate

Three routines worth keeping.

First, let the crawler go before you type. Auto-fill reads tel: and mailto: links, meta tags and any existing markup, and it never overwrites what you've already entered. Second, complete the Founder card for owner-led businesses; the resulting Person node with worksFor gives Google a named person connected to the business.

Third, service-area businesses shouldn't pretend to have a storefront. Press Add area for each city or region you cover, or set a latitude, longitude and service area radius in meters so the output carries a GeoCircle. The form also takes a list of services as an offer catalog, a contact point and a call-to-action such as a booking link, which are worth filling if they apply to you.

LocalBusiness, Organization or Service markup

Three tools, three questions.

The Organization Schema Generator answers who owns this brand, and it suits companies without a walk-in location: remote software firms, holding companies, online-only brands. LocalBusiness answers where customers can find you, so a physical or service-area presence is the deciding factor between the two.

The Service Schema Generator describes individual offerings, such as emergency call-outs, consultations and installations, and can point back at your business as the provider. Many local sites end up with both: LocalBusiness on the homepage and Service markup on each service page, generated here and then double-checked with the Schema Markup Extractor. Multi-location businesses should run the generator once per branch and paste each block on the matching location page.

Try it now

Open Local Business Schema Generator

The tool is one click away. No sign up, no upload, no payment.

Open Local Business Schema Generator