My Tool Studio
Schema Markup·3 min read

Local Business Schema and Map Pack Visibility

Search for a plumber and Google answers with three pinned businesses on a map before any normal result appears. Understanding local business schema and map pack dynamics starts with an honest statement: 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

The honest link between local business schema and map pack results

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 selling vapor.

The markup still earns its place. It ties your website to the same entity your profile describes, confirms the details your citations repeat, and can feed knowledge panel data such as hours and price range. Think of it as notarizing your NAP on the one property you fully control.

Choosing a LocalBusiness subtype that actually fits

Specific beats generic.

Choosing a localbusiness subtype is the first real decision. Schema.org defines dozens, and the generator surfaces 32 of them: Dentist, Restaurant, HVAC Business, Legal Service, Real Estate Agent, and more. 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.

A LocalBusiness example with openingHours inline

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, social profiles under sameAs, and, if you complete the founder card, a second Person node linked through worksFor inside a @graph wrapper. Every Add time slot row becomes another openingHoursSpecification object, so split shifts are simply two rows for the same day.

NAP consistency in schema and your LocalBusiness profile

One business, one spelling.

NAP consistency in schema means the name, address, and phone in your markup 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 entity resolution.

The generator helps by crawling your homepage plus contact, about, and locations pages during auto-fill, so the values it proposes come from your own site rather than from memory. 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 worth the name.

  • 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, no lunch closure, 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.
  • Aggregate ratings invented for the markup with no reviews shown anywhere on the page, which risks a structured data penalty rather than stars.

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 in 10 to 20 seconds, 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 human entity to attach expertise to.

Third, service-area businesses shouldn't pretend to have a storefront. Add rows under Areas served, or set a latitude, longitude, and radius in meters so the output carries a GeoCircle instead of a misleading street address.

LocalBusiness schema, Organization markup, or Service markup

Three tools, three questions.

The Organization Schema Generator answers the question of who owns this brand, and it suits companies without a walk-in location: remote software shops, 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, emergency call-outs, consultations, installations, and can point back at your business as the provider. Many local sites end up with both: LocalBusiness on the homepage, Service markup on each service page, generated here and then double-checked with the Schema Extractor.

Try it now

Open LocalBusiness Schema

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

Open LocalBusiness Schema