Search code examples
webseoschema.orgjson-ld

JSON-LD Schema.org: Multiple video/image page


I can't figure out how you would define a bunch of videos on the same page. i.e. a search page. Let's say you've a site that returns 50 different videos. Then how are you supposed to define this with JSON-LD?


Solution

  • If you have multiple items as value of a property, you could use an array:

    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "WebPage",
      "video":
      [
        {
          "@type": "VideoObject"
        },
        {
          "@type": "VideoObject"
        }
      ]
    }
    </script>
    

    If you have multiple items on the top-level (not as value of a property), you could use a (named) graph and an array:

    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@graph": 
      [
        {
           "@type": "VideoObject"
        },
        {
           "@type": "VideoObject"
        }
      ]
    }
    </script>
    

    And you could of course use multiple script elements:

    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "WebPage",
      "video": 
      {
        "@type": "VideoObject"
      }
    }
    </script>
    
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "WebPage",
      "video": 
      {
        "@type": "VideoObject"
      }
    }
    </script>