A single-location business has it easy with structured data. One LocalBusiness block, one address, one set of hours. The schema validator says it's valid, and you move on.
Multi-location businesses are different. A franchise with 15 locations needs 15 separate schema entries, each with its own address, geo coordinates, phone number, and opening hours. And they need to be wired together with a parent Organization that references them as departments or sub-organizations. Most multi-location sites get this wrong.
The generic LocalBusiness trap
The most common mistake is using LocalBusiness as the schema type for every location. Google's documentation is clear: use the most specific subtype available. A dental office should be Dentist, not LocalBusiness. A restaurant should be Restaurant. A plumber should be Plumber. A storage facility should be SelfStorage.
The specific subtype signals to Google what kind of business it is, which affects how the listing appears in local pack results and Maps. A generic LocalBusiness tells Google nothing it can't already guess from the page content.
Missing geo coordinates
Google Maps uses latitude and longitude from your schema to place your business pin. Without geo.latitude and geo.longitude, Google has to geocode your street address, and that process isn't always accurate. I've seen businesses pinned a block away because the geocoder interpreted the address differently than intended.
The fix is straightforward: add a geo object with GeoCoordinates to each location's schema. The audit flags every location that's missing coordinates.
No parent-child relationship
When a franchise has a corporate entity and individual locations, Google expects to see an Organization schema for the parent with department or subOrganization linking to each location's LocalBusiness. Without that relationship, the locations look like independent businesses with no connection to each other.
This matters for brand authority. Google's knowledge graph uses these relationships to aggregate reviews, signals, and entity data across the whole organization. Without the parent link, each location starts from zero.
Shared @id values
Every schema entity should have a unique @id. When all 15 locations share the same @id (or worse, none of them have one), Google can't distinguish between them in the knowledge graph. The audit checks for duplicate and missing @id values across all locations found on the page.
What the tool checks
The Multi-Location Schema Audit parses all JSON-LD from your page and validates each location independently:
- Schema @type specificity (flags generic LocalBusiness)
- Complete address (streetAddress, city, region, postal code, country)
- Geo coordinates (latitude and longitude)
- Telephone number presence
- Opening hours specification
- Location-specific URL
- areaServed for service-area businesses
- Unique @id per location
- Parent Organization with department/subOrganization links
- All locations on one page vs. separate pages (separate is better for SEO)
Each finding gets a severity level. The AI fix prompt at the bottom generates corrected JSON-LD you can drop into your pages.
If you're building out a multi-location web presence from scratch, The $97 Launch covers the foundational decisions that make scaling to multiple locations easier later.
Fact-check notes and sources
- Google structured data guidelines for LocalBusiness: Google Search Central — Local Business
- Schema.org LocalBusiness type hierarchy: schema.org/LocalBusiness
- Google recommendation for specific business subtypes: Google Business Profile Help
- Schema.org department and subOrganization properties: schema.org/Organization
Related reading
- E-E-A-T, Schema, and Structured Data — What Actually Moves the Needle
- Why a Hotel / Motel Schema Audit Exists
- Why a Trades Audit Exists
- NAP Consistency and Local Citation Auditing
This post is informational, not SEO-consulting advice. No affiliation with any search engine mentioned is implied.