Search code examples
schema.orgjson-ld

Multiple restaurants in Schema.org


We have some restaurants with multiple locations, or branches. I want to include the correct Schema.org markup, but have not been able to find anything that allows for multiple restaurants to be listed.

Each restaurant would have its own address, email, telephone and opening times, possibly even a 'branch name'.

Both the branches are listed on the same website.

Here is an example of the single restaurant schema we would normally use:

<script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "Restaurant",
      "name": "Resty name",
      "openingHours": [
        "Tu-Sa 18:00-21:30",
        "Fr-Sa 12:00-14:30"
      ],
      "address": {
        "@type": "PostalAddress",
        "addressRegion": "addy region",
        "postalCode": "POST CODE",
        "streetAddress": "street addy"
      },
      "servesCuisine": [
        "type",
        "another type"
      ],
      "email" : "[email protected]",
      "telephone": "0123",
      "url": "http://website.address.com",
      "logo" : "http://website.address.com/logo.png"
    }
</script>

Solution

  • I have come across the Department spec and i think this is the way i should be marking up multiple locations of the same Organization;

    <script type="application/ld+json">
        {
            "@context": "http://schema.org",
            "@type": "Organization",
            "name": "Orga name",
            "url": "http://orga-url.com",
            "logo": "http://orga-url/img/logo.png",
            "telephone": "01234567890",
            "email": "[email protected]",
            "department": 
            [
              {
                  "@type": "Restaurant",
                  "name": "Resta name",
                  "address": {
                    "@type": "PostalAddress",
                    "addressRegion": "region",
                    "postalCode": "POST",
                    "streetAddress": "Street addy"
                  },
                  "openingHours": [
                    "Tu-Fr 17:00-00:00",
                    "Sa 12:00-00:00",
                    "Su 12:00-21:00"
                  ],
                  "email" : "[email protected]"
              },
              {
                  "@type": "Restaurant",
                  "name": "Resta name",
                  "address": {
                    "@type": "PostalAddress",
                    "addressRegion": "region",
                    "postalCode": "POST",
                    "streetAddress": "Street addy"
                  },
                  "openingHours": [
                    "Mo-Th 11:00-00:00",
                    "Fr-Sa 11:00-00:30",
                    "Su 11:00-23:00"
                  ],
                  "email" : "[email protected]"
              }
            ]    
        }
      </script>
    

    I have run this through the Google validator (https://developers.google.com/structured-data/testing-tool/) and everything came back good. If anyone has any suggestions to better optimise the above, i would be interested to hear! Thanks.