How to use more than 1 schema.org schema on a web page

In JSON-LD (instead of Microdata/RDFa) you have to repeat the property and its value for each node.

Instead of using a separate script element for each node, you could also use a single script element that contains all your nodes as value of @graph. That way you only have to define the @context (and possibly custom properties) one time.

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

The order of the script elements (or the nodes in @graph) shouldn’t matter


Not looking to be a necromancer, but there was a recent article from someone at Yoast that details problems that arise with using the @Graph type when trying to get Google search to "report" the subsequent types, especially with Organization data: link

I would recommend breaking out each type into its own "node" for now instead of using @graph as an array, especially since I can't find a single mention of using @graph with JSON-LD in any of Google's Developer documentation.