Multistead / Local business schema

Guide and generator

Local business schema: a guide and a free JSON-LD generator

Local business schema is structured data, usually JSON-LD in the page's code, that tells search engines exactly what a location is: its name, type, address, coordinates, phone, hours and the brand it belongs to. It doesn't rank a page by itself, but it removes guesswork, and for brands with many locations it is how Google ties each location page to the right business. Below: which type to use, which properties matter, how to mark up multiple locations, and a generator that writes the code for you.

What LocalBusiness schema does, and what it doesn't

LocalBusiness is a schema.org type for "a particular physical business or branch of an organization." Adding it to a location page:

  • confirms the page is about one specific place, which helps on sites with many similar location pages;
  • gives Google machine-readable hours, address and coordinates that should match the Business Profile;
  • links the location to its parent brand, so the brand and its branches are understood as one entity.

What it won't do: Google's map pack ranks Business Profiles, not web pages, so schema won't lift a location in Maps on its own. Treat it as hygiene that supports the page and profile, not as a ranking trick. Google documents the markup in its local business structured data guide.

Which LocalBusiness subtype to use, by vertical

Always use the most specific type that is true. Each subtype inherits every LocalBusiness property, so you lose nothing by being specific.

BusinessSchema typeNotes
Medical clinic, urgent care, med spa with medical oversightMedicalClinicAlso a MedicalOrganization. A med spa without medical services fits DaySpa or HealthAndBeautyBusiness better.
Dental practiceDentistMark up individual dentists separately with Person if you show bios.
Physical therapyPhysiotherapyA MedicalBusiness subtype.
Gym, fitness studioHealthClub or ExerciseGymHealthClub is both a health and beauty business and a sports location.
Day spa, IV or wellness loungeDaySpa or HealthAndBeautyBusinessThere is no IV-therapy type; use MedicalClinic if clinicians treat patients on site.
Hair salonHairSalonBeautySalon and NailSalon also exist.
Plumbing, HVAC, electrical, roofingPlumber, HVACBusiness, Electrician, RoofingContractorAll are HomeAndConstructionBusiness subtypes. Use areaServed for the service area.
General contractorGeneralContractorAlso under HomeAndConstructionBusiness.
Restaurant, cafeRestaurant, CafeOrCoffeeShopFoodEstablishment subtypes support servesCuisine and menu.
Auto repairAutoRepairAn AutomotiveBusiness subtype.
ChildcareChildCare
Real estate officeRealEstateAgent
Retail storeStore or a subtypeFor example PetStore, HealthAndBeautyBusiness.
Nothing fitsLocalBusinessCorrect and valid; just less specific.

Required and recommended properties

Google's local business documentation lists two required properties and a longer recommended set. In practice, a location page should carry all of the following, and every value must match what's visible on the page and on the Business Profile.

PropertyStatusWhat to put in it
nameRequiredThe location's name exactly as on its signage and Business Profile
addressRequiredA PostalAddress with street, city, region, postal code and country
urlRecommendedThis location page's URL, not the home page
telephoneRecommendedThe location's number, with country code
geoRecommendedGeoCoordinates; Google asks for at least five decimal places
openingHoursSpecificationRecommendedDays with opening and closing times; add special hours for holidays
priceRangeRecommendedA short range such as $$ or $40–$150
imageRecommendedA real photo of the location
@idBest practiceA stable identifier such as the page URL plus #location
parentOrganizationBest practice for brandsA reference to the brand's Organization
areaServedOptionalTowns or ZIP codes for service-area businesses
sameAsOptionalThe location's own social or directory profiles

Local schema markup for multiple locations

Brands with many locations should use one pattern everywhere:

  1. One Organization, once. On the home page, describe the brand as an Organization with a stable @id, for example https://brand.com/#organization, plus its name, logo and URL.
  2. One LocalBusiness per location page. Each location page carries its own LocalBusiness (or subtype) with its own @id, such as https://brand.com/locations/austin-south/#location.
  3. Connect them. Each location points to the brand with parentOrganization referencing the Organization's @id. You'll also see branchOf in older examples; schema.org now marks it as superseded by parentOrganization, so use the latter.
  4. Don't list every location on the home page. A locations page can link to them, but the full LocalBusiness markup belongs on each location's own page.

A minimal example for one location of a physiotherapy group:

{
  "@context": "https://schema.org",
  "@type": "Physiotherapy",
  "@id": "https://example.com/locations/austin-south/#location",
  "name": "Example Physio Austin South",
  "url": "https://example.com/locations/austin-south/",
  "telephone": "+1-512-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example Rd",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78745",
    "addressCountry": "US"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 30.21001, "longitude": -97.79102 },
  "parentOrganization": { "@id": "https://example.com/#organization" }
}

The address and phone above are placeholders; use your own.

Common local business schema mistakes

  • The same LocalBusiness block on every page. Site-wide footer markup with the head office's address tells Google every page is about one place.
  • Data that doesn't match the page or profile. Old hours or a different phone number in the schema than on the page undermine trust in both.
  • Self-serving review markup. Adding aggregateRating with your own reviews to your own LocalBusiness won't earn star snippets; Google doesn't show review rich results for businesses reviewing themselves.
  • Marking up content that isn't on the page. Schema should describe what visitors can see.
  • A generic type when a specific one exists, such as LocalBusiness for a dental practice.
  • Coordinates with too few decimals, or copied from the city center rather than the entrance.
  • Hand-edited JSON that breaks. One missing comma invalidates the whole block. Test every template change in Google's Rich Results Test or the Schema Markup Validator.

Local business schema generator

Fill in one location. The JSON-LD updates as you type, and nothing is sent anywhere.

Opening hours (leave blank if closed)

Paste the whole block, including the <script> tags, into the location page's <head>.

Schema across 50 or 500 locations

Writing one block is easy. Keeping 200 blocks correct while hours, phones and addresses change is not. The reliable approach is to generate schema from the same data that fills the visible page, so a change to the hours updates both at once and they can never disagree. That's how Multistead does it: every location page gets titles, descriptions, LocalBusiness schema and a sitemap entry generated from the location's real details, with the brand linked as the parent organization, and a per-location checklist score flags pages that are missing data. See the local SEO checklist for everything else a page needs, and SEO for multiple locations for site structure.

Pricing is published: $249, $449 or $649 per location per month, billed annually. If you only have one or two locations, the generator above is all you need.

Questions

Does local business schema help rankings?

Not directly in the map pack, which ranks Google Business Profiles. It helps search engines understand and trust each location page, which supports the page in regular results and keeps details consistent with the profile.

Where should LocalBusiness schema go on a multi-location site?

On each location's own page, describing only that location. The brand's Organization markup goes on the home page, and each location links to it with parentOrganization.

Should I use branchOf or parentOrganization?

Use parentOrganization. schema.org marks branchOf as superseded by parentOrganization, although older examples still use it.

Is JSON-LD better than microdata for local schema?

Google supports both, but recommends JSON-LD because it sits in one block, separate from the page's HTML, which makes it easier to generate and maintain across many pages.

How do I test my local business schema?

Paste the page URL or the code into Google's Rich Results Test or the Schema Markup Validator. Both are free and show errors and warnings property by property.

Free consultation

See Multistead with your own locations.

Book a free consultation. We'll look at your locations, show you their sites inside the hub, and walk through your rollout and what it would cost.

  • Completely free
  • No obligation, no card needed
  • Video call at a time that suits you

Partner, investor or press? Book a 1:1 business meeting instead.

Calendar not loading? Open the booking page.