Local SEO for Multi-Location Businesses: The Right JSON-LD Architecture


The Problem: Why Multi-Location Businesses Are a Special Case

When you have a company with only one store, schema markup implementation is relatively straightforward: one entity, one address, one phone number.

But what happens when you have more than one store and the company grows by opening new locations? How do you link the company to each individual store?

If you create a separate schema markup for each store without connecting them, you’re telling Google that there are N independent entities. You lose the group context entirely. The brand history, the authority, the trust signals built over time.

On the other hand, if you create only one schema markup on the home page without linking it to the individual store pages, Google has no way of associating local information: address, opening hours, reviews, to the correct entity.

In both cases the result is the same: the information is there, but it’s not connected.

The best approach (in my opinion) is to build a coherent semantic graph: an architecture where the Organization lives on the home page and the individual locations (Opticians, in my case) live on their own pages. Different entities, but linked to each other.


Why Optician and not Store or LocalBusiness?

The deeper you go into Schema.org’s type hierarchy, the more semantically precise your markup will be.

LocalBusiness is a good starting point for almost any business, but it doesn’t tell Google anything specific, it’s too generic.

Optician belongs to the MedicalBusiness → LocalBusiness branch, which makes it the perfect fit for optical stores.

Thanks to this, Google can use that information to associate the store with specific queries like “opticians near me” or “eye exam in [city]”.

This doesn’t mean gaining more visibility directly — it means reducing semantic ambiguity: you’re helping search engines understand that this is not just a generic store, but an optical specialist.

The downside is that Optician is less documented than LocalBusiness or Store, but semantically it’s the right choice.


The Home Page Schema

This is the home page schema.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.bottegaotticacolombini.com/#organization",
      "name": "Gruppo BOC - Bottega Ottica Colombini",
      "url": "https://www.bottegaotticacolombini.com",
      "logo": "https://www.bottegaotticacolombini.com/wp-content/uploads/2024/11/Risorsa-1.webp",
      "description": "Gruppo di centri ottici con 13 punti vendita in Italia.",
      "slogan": "Insieme vediamo il futuro",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139497154"
      ],
      "department": [
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/colombini-arcidosso/#optician", "name": "Bottega Ottica Colombini Arcidosso", "url": "https://www.bottegaotticacolombini.com/colombini-arcidosso/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-montalcino/#optician", "name": "Bottega Ottica Colombini Montalcino", "url": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-montalcino/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-genova/#optician", "name": "Bottega Ottica Colombini Genova", "url": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-genova/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-nepi/#optician", "name": "Bottega Ottica Colombini Nepi", "url": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-nepi/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-montecatini/#optician", "name": "Bottega Ottica Colombini Montecatini", "url": "https://www.bottegaotticacolombini.com/bottega-ottica-colombini-montecatini/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/ottica-ricasoli/#optician", "name": "Bottega Ottica Ricasoli", "url": "https://www.bottegaotticacolombini.com/ottica-ricasoli/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/ottica-provvedi/#optician", "name": "Ottica Provvedi", "url": "https://www.bottegaotticacolombini.com/ottica-provvedi/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/officina-ottica/#optician", "name": "Officina Ottica Firenze", "url": "https://www.bottegaotticacolombini.com/officina-ottica/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/centro-ottico-soratte/#optician", "name": "Centro Ottico Soratte", "url": "https://www.bottegaotticacolombini.com/centro-ottico-soratte/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/occhio-al-tempo/#optician", "name": "Occhio al Tempo", "url": "https://www.bottegaotticacolombini.com/occhio-al-tempo/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/centro-ottico-versiliese/#optician", "name": "Bottega Ottica Versiliese", "url": "https://www.bottegaotticacolombini.com/centro-ottico-versiliese/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/ottica-nebbiai-bibbiena/#optician", "name": "Ottica Nebbiai Bibbiena", "url": "https://www.bottegaotticacolombini.com/ottica-nebbiai-bibbiena/" },
        { "@type": "Optician", "@id": "https://www.bottegaotticacolombini.com/ottica-nebbiai-poppi/#optician", "name": "Ottica Nebbiai Poppi", "url": "https://www.bottegaotticacolombini.com/ottica-nebbiai-poppi/" }
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://www.bottegaotticacolombini.com/#website",
      "name": "Bottega Ottica Colombini",
      "url": "https://www.bottegaotticacolombini.com",
      "potentialAction": {
        "@type": "SearchAction",
        "target": "https://www.bottegaotticacolombini.com/?s={search_term_string}",
        "query-input": "required name=search_term_string"
      }
    }
  ]
}

The Store Page Schema

This is an example of one store schema.

{
  "@context": "https://schema.org",
  "@type": "Optician",
  "@id": "https://www.bottegaotticacolombini.com/colombini-arcidosso/#optician",
  "name": "Bottega Ottica Colombini Arcidosso",
  "url": "https://www.bottegaotticacolombini.com/colombini-arcidosso/",
  "telephone": "+390564967440",
  "email": "colombiniarcidosso@gmail.com",
  "image": "https://www.bottegaotticacolombini.com/wp-content/uploads/2023/10/Arcidosso_Banco.webp",
  "description": "Bottega Ottica Colombini Arcidosso è un centro ottico professionale situato sul Monte Amiata.",
  "priceRange": "€€",
  "hasMap": "https://www.google.com/maps/place/Bottega+Ottica+Colombini+Arcidosso",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Piazza Indipendenza, 5",
    "addressLocality": "Arcidosso",
    "postalCode": "58031",
    "addressRegion": "GR",
    "addressCountry": "IT"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "42.8698",
    "longitude": "11.5408"
  },
  "openingHours": [
    "Mo 16:00-19:30",
    "Tu-Sa 09:00-13:00",
    "Tu-Sa 16:00-19:30"
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "5.0",
    "reviewCount": "24",
    "bestRating": "5",
    "worstRating": "1"
  },
  "sameAs": [
    "https://www.facebook.com/bocarcidosso",
    "https://www.instagram.com/boc_arcidosso/"
  ],
  "parentOrganization": {
    "@id": "https://www.bottegaotticacolombini.com/#organization"
  }
}

The Connection: @id and parentOrganization

This is the part that makes the whole architecture work.

In the home page schema, each store is listed inside the department array with its own @id . A unique identifier that acts as a reference point across the entire site.

In each store page schema, parentOrganization points back to that same @id, declaring explicitly: “this store belongs to that organization”.

This creates a two-way link: the Organization knows its departments, and each department knows its parent. Google can navigate the graph in both directions — from the group to a single store, and from a single store back to the group.

Without this connection, you have valid markup but isolated entities. With it, you have a coherent semantic graph.

Conclusion

These changes won’t skyrocket your visibility overnight, but they represent a solid Local SEO best practice — especially for businesses with more than one physical location, where the relationship between the brand and each store makes the difference.

My example is based on an optical chain, and this is real work I actually did for a client. But you can apply the same approach to any multi-location business: restaurants, franchises, and so on.

If you need help, feel free to reach out: niccolombini1@gmail.com