2 Awesome JSON-LD Schema Hacks for Multiple Locations

JSON-LD is pretty sweet. It makes encoding schema onto websites super simple. As opposed to squeezing microdata manually into a website’s code, JSON-LD can be placed pretty much anywhere on a page and be totally invisible. And the cherry on top: it can be implemented straight from Google Tag Manager.

Writing proper schema in JSON-LD, however, is another story.

Creating schema for a business with one address is pretty straightforward (and this generator will even create the JSON-LD for you). But what if a business has multiple locations? Things can get even trickier when those locations have separate telephone numbers or names.

Depending on what information needs to be differentiated, you can build JSON-LD schema for businesses with multiple locations in 2 ways.

1. Same Contact Information with Different Locations

Universities and campgrounds, for example, often have multiple locations controlled by one main hub. To provide addresses for those extra locations while keeping only one set of contact details, use the Organization framework and build an array for the “address” property.

Here’s an example for the new school I just founded, The School for Gluten-Free Baking:

[js]
“@context”: “http://schema.org”,
“@type”: “CollegeOrUniversity”,
“name”: “The School for Gluten-Free Baking”,
“telephone”: “(503) 123-4567”,
“alumni”: {
“@type”: “OrganizationRole”,
“alumni”: {
“@type”: “Person”,
“name”: “Founder”,
“sameAs”: “www.url.com”
},
“startDate”: “2016”
},
“sameAs”: “URL for The School for Gluten-Free Baking”,
“email”: “theschoolforglutenfreebaking@url.com”,
“foundingDate”: “2002”,
“address”:
[
{
“@type”: “PostalAddress”,
“addressLocality”: “Portland”,
“addressRegion”: “OR”,
“postalCode”: “97214”,
“streetAddress”: “Address 1 for The School for Gluten-Free Baking”
},
{
“@type”: “PostalAddress”,
“addressLocality”: “Vancouver”,
“addressRegion”: “WA”,
“postalCode”: “98662”,
“streetAddress”: “Address 2 for The School for Gluten-Free Baking”
}
]
[/js]

2. Entirely Separate Contact Information for Each Location

This solution works best for businesses with separate locations that work independently of each other, such as chain restaurants or branches of a large organization. Again, use schema’s Organization framework, but this time create an array for the “location” property and reference the “parentOrganization”:

In this example, I’ll use my favorite fake business, The Gluten-Free Donut Place (who I made a Yelp business account for in a previous post).

[js]
“@context”: “http://schema.org”,
“@type”: “Organization”,
“name”: “The Gluten-Free Donut Place”,
“url”: “https://yoururl.com/”,
“logo”: “https://yoururl.com/yourlogo.png”,
“location”:
[
{
“@type”: “Bakery”,
“parentOrganization”: {
“name”: “The Gluten-Free Donut Place”
},
“name” : “The Gluten-Free Donut Place – SE Portland”,
“image”: “https://yoururl.com/se-portland-location.jpg”,
“address”: {
“@type”: “PostalAddress”,
“addressLocality”: “Portland”,
“addressRegion”: “Oregon”,
“postalCode”: “97202”,
“streetAddress”: “Address 1 for The Gluten-Free Donut Place”
},
“openingHours”: [
“Mo-Su 08:00-22:00”
],
“telephone” : “+1(503) 123-4567”
},
{
“@type”: “Bakery”,
“parentOrganization”: {
“name”: “The Gluten-Free Donut Place”
},
“name” : “The Gluten-Free Donut Place – North Portland”,
“image”: “https://yoururl.com/north-portland-location.jpg”,
“address”: {
“@type”: “PostalAddress”,
“addressLocality”: “Portland”,
“addressRegion”: “Oregon”,
“postalCode”: “97203”,
“streetAddress”: “Address 2 The Gluten-Free Donut Place”
},
“openingHours”: [
“Mo-Su 08:00-22:00”
],
“telephone” : “+1(503) 654-4321”
}
],
“image”: “https://yoururl.com/gluten-free-donut-place.jpg”,
“email”: “theglutenfreedonutplace@url.com”,
“description”: “We make gluten-free donuts so tasty, you’ll question
everything you thought you knew. Check out our flavor of the day as
well as our award-winning menu of triple chocolate goodies.”
[/js]

 

**Update March 2018: We’ve updated our second example! We’ve shifted to using location and parentOrganization properties to differentiate from businesses that have departments within their single building location.

These tend to be the two most frequent cases I run into. Are there any other common variations I’m missing? Or do you know of any other hacks to make JSON-LD schema for businesses with multiple locations? Leave a comment below!

More Articles

The Yin and Yang of an Integrated SEO and PPC Strategy

by Intuitive Digital | Sep 14th, 2020

How to Perform a Comprehensive Digital Marketing Audit

by Intuitive Digital | Sep 9th, 2020

In Memory of Max Hoffman 1989 – 2019

by Alysha Schultz | Sep 2nd, 2020

Practical Ecommerce PPC & Paid Media for Everyone

by Alysha Schultz | Aug 28th, 2020

7 Ecommerce SEO Tips to Grow Your Online Presence

by Alysha Schultz | Aug 17th, 2020

Craft A Deliberate LinkedIn B2B Strategy

by Alysha Schultz | Jul 27th, 2020

Intuitive Digital Turns 8! A Reflection

by Alysha Schultz | Jul 23rd, 2020

Social Media Strategy for Instagram

by Kelly Miller | Jul 20th, 2020

Beginner’s Guide to Facebook Ads

by Kelly Knowles | Jul 13th, 2020

How to Create An Effective Social Media Strategy

by Kelly Knowles | Jul 6th, 2020
See all articles