{"id":7658,"date":"2016-07-16T14:03:04","date_gmt":"2016-07-16T13:03:04","guid":{"rendered":"https:\/\/www.brainlabsdigital.com\/?p=7658"},"modified":"2025-06-20T18:26:11","modified_gmt":"2025-06-20T18:26:11","slug":"how-to-implement-structured-data-with-json-ld","status":"publish","type":"post","link":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/","title":{"rendered":"How to implement structured data with JSON-LD"},"content":{"rendered":"\n<p>Chances are, you\u2019ve already heard of JSON-LD \u2014 you might even be using it already. Kudos to you if that\u2019s the case. If you haven\u2019t heard of it, I\u2019d urgently recommend you to&nbsp;<a href=\"http:\/\/json-ld.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">read up<\/a>&nbsp;on what is becoming an ever-more important part of SEO. Its increasing importance is down to its selection as Google\u2019s structured data approach of choice, as it\u2019s more flexible than microdata and more easily maintainable in the long run.<\/p>\n\n\n\n<p>What do I mean by more flexible? Put simply, JSON-LD lets you place all your structured data between a special pair of &lt;script&gt; tags in the &lt;head&gt; of the HTML, much as you would with Google Analytics tracking snippets or canonical tags. No more bugging your developers to make simple changes. Compared to the old ways of adding structured data, that\u2019s a big improvement.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;head&gt;<br>...<br>&lt;script type=\"application\/ld+json\"&gt;<br>\/\/ your JSON-LD goes in here...<br>&lt;\/script&gt;<br>...<br>&lt;\/head&gt;<br><\/pre>\n\n\n\n<p>The flip side of that flexibility, though, is that JSON-LD is still a relatively new concept to most users, and it\u2019s easy to get the structure wrong. It\u2019s easy to believe that you can read JSON-LD, but not truly understand the structure.<\/p>\n\n\n\n<p>The good news is it isn\u2019t that hard to get right. By the end of this post, you\u2019ll understand enough to&nbsp;<em>understand<\/em>&nbsp;any JSON-LD you come across.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Plain old JSON<\/h2>\n\n\n\n<p>The &#8220;JSON&#8221; in JSON-LD stands for &#8220;JavaScript Object Notation&#8221;. Although it owes its name to Javascript, it came into its own as a flexible format for passing data around between all kinds of applications. When you call an API \u2014 the Google Analytics API, for example \u2014 the results often come back in the JSON format. And you might also have heard of mongoDB \u2014 a so-called NoSQL database&nbsp;<a href=\"https:\/\/www.mongodb.com\/customers\/expedia\" target=\"_blank\" rel=\"noreferrer noopener\">used by some of the biggest companies on the web<\/a>&nbsp;to organise huge amounts of data. JSON is all over the web, but it\u2019s usually behind the scenes. To learn it by example, let&#8217;s make some JSON to describe a person:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code> \"@type\" : \"Person\",<br>\n \"first name\" : \"Mark\",<br>\n \"last name\" : \"Zuckerberg\",<br>\n \"age\" : 32<br>\n}<br><\/code><\/pre>\n\n\n\n<p>Remember, this is just JSON \u2014 not JSON-LD \u2014 so don&#8217;t add it to any web pages! We haven&#8217;t gone very far with our model of a person, but that doesn&#8217;t matter. We used curly braces to surround the object, and within it, we&#8217;ve defined three properties. In each case, we put the name of the property and its value, separated by a colon. Wherever we used non-numeric characters, we enclosed the name or value with quotation marks. So &#8220;age&#8221;: 32, for example, shows that this person is 32.<\/p>\n\n\n\n<p>But 32 what? Days, months, or years? Of course, in this case, we know it to be years, but a computer wouldn&#8217;t necessarily know that. So let&#8217;s expand our model slightly:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br>\n \"@type\" : \"Person\",<br>\n \"first name\" : \"Mark\",<br>\n \"last name\" : \"Zuckerberg\",<br>\n \"age\" :{<br>\n         \"value\" : 32,<br>\n         \"units\" : \"years\"<br>\n        }<br>\n}<br><\/code><\/pre>\n\n\n\n<p>Instead of just using a value and hoping a computer can guess what we mean, we&#8217;ve gone further and used another JSON object to represent this person&#8217;s age. We can now say his age is 32 years. Probably the most common schema mistake I see on e-commerce sites is defining prices incorrectly, because money, like time, can be measured in different units. We&#8217;ll get to a practical example in just a moment.<\/p>\n\n\n\n<p>Before we move on, though, let&#8217;s create another person to sit alongside the one we already have:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br>\n \"@type\" : \"Person\",<br>\n \"first name\" : \"Mark\",<br>\n \"last name\" : \"Zuckerberg\",<br>\n \"age\" : {<br>\n          \"value\" : 32,<br>\n          \"units\" : \"years\"<br>\n         },<br>\n \"children\" : &#91;]<br>\n}<br>\n{<br>\n \"@type\" : \"Person\",<br>\n \"first name\" : \"Maxima\",<br>\n \"last name\" : \"Zuckerberg\",<br>\n \"age\" : {<br>\n          \"value\" : 0,<br>\n          \"units\" : \"years\"<br>\n         }<br>\n}<br><br><\/code><\/pre>\n\n\n\n<p>This is perfectly valid JSON. But what we don&#8217;t have is any sense of how the two people relate to one another. As far as a computer is concerned, they are independent. We could think of many ways to show the relationship, but I&#8217;ve created a &#8216;children&#8217; property for our first person and put an empty list as its value. In JSON we can use square brackets to store a list. We can put nearly anything in a list, including JSON objects. The list can be empty &#8212; as it is right now &#8212; or it could have only one item in it, or it could have very many.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br>\n \"@type\" : \"Person\",<br>\n \"first name\" : \"Mark\",<br>\n \"last name\" : \"Zuckerberg\",<br>\n \"age\" : {<br>\n           \"value\" : 32,<br>\n           \"units\" : \"years\"<br>\n         },<br>\n \"children\" : &#91;{<br>\n \"@type\" : \"Person\",<br>\n \"first name\" : \"Maxima\",<br>\n \"last name\" : \"Zuckerberg\",<br>\n \"age\" : {<br>\n           \"value\" : 0,<br>\n           \"units\" : \"years\"<br>\n         }<br>\n }]<br>\n}<\/code><\/pre>\n\n\n\n<p>Now our list of children has one person object &nbsp;in it. We could add more the usual way: by putting a comma between each of them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Making the jump from JSON to JSON-LD<\/h2>\n\n\n\n<p>LD stands for Linked Data. For SEO we care about using JSON objects to represent data linked to the page. The kinds of objects we want to create are all those laid out in&nbsp;<a href=\"http:\/\/schema.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Schema<\/a>. Think of Schema as a vocabulary that major search engines have agreed upon. And JSON-LD is the grammar \u2014 the way we structure the object and add it to the page. When we use Schema, search engines know how to interpret our JSON objects.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Schema.org<\/h3>\n\n\n\n<p>In the example above, I just made up the rules as I went along. First, the people we created had names; then they had separate properties for first and last names. Then we changed the age property from a single number to a JSON object with a value and a unit. Then we added an optional list of children. I was defining my own schema as I went along. Of course, left to their own devices, everybody would do this in a slightly different way. Enter Schema.org, which is more or less a rulebook on how we should structure certain objects on our own websites. By sticking with the Schema.org rulebook, we can be consistent with all the other sites out there; Google will then be able to understand what we mean.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Building a Product<\/h3>\n\n\n\n<p>One of the most common uses for JSON-LD is defining a product. It\u2019s also where people tend to make the most mistakes. Getting price data right is especially important if you\u2019re looking for products to show up in product feeds.<\/p>\n\n\n\n<p>We&#8217;ll now make some JSON-LD to represent a product. Start with empty braces:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n}<br><\/code><\/pre>\n\n\n\n<p>Add a property called @context. Its value will be the schema.org website. This property says: &#8220;this object follows the rules laid out at http:\/\/schema.org&#8221;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n @context: \"http:\/\/schema.org\"\n\n}<br><\/code><\/pre>\n\n\n\n<p>Schema.org defines various types. A type tells us how to structure an object: which properties we should use and what values we\u2019re allowed to put in them. There are loads of examples on schema.org, representing all kinds of things, like a&nbsp;<a href=\"https:\/\/schema.org\/Person\" target=\"_blank\" rel=\"noreferrer noopener\">Person<\/a>, an&nbsp;<a href=\"https:\/\/schema.org\/Event\" target=\"_blank\" rel=\"noreferrer noopener\">Event<\/a>, and even a&nbsp;<a href=\"https:\/\/schema.org\/TaxiReservation\" target=\"_blank\" rel=\"noreferrer noopener\">Taxi Reservation<\/a>.<\/p>\n\n\n\n<p>The type we\u2019re going to use is called &#8220;<a href=\"https:\/\/schema.org\/Product\" target=\"_blank\" rel=\"noreferrer noopener\">Product<\/a>&#8220;. Add that as the value of our @type property:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n @context : \"http:\/\/schema.org\",\n\n @type : \"Product\"\n\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing<\/h3>\n\n\n\n<p>This is where it often seems to go wrong. Once you\u2019ve created a product, it\u2019s natural to want to add a price to it straightaway \u2014 after all, the price is one of the most important facts about a product. But schema.org doesn\u2019t allow you to add prices directly to products. There\u2019s an important middle step: creating&nbsp;<em>offers<\/em>.<\/p>\n\n\n\n<p>To see why this is necessary, take a look at the chart below (taken from Amazon price tracker&nbsp;<a rel=\"noreferrer noopener\" href=\"http:\/\/uk.camelcamelcamel.com\/Moleskine-Ruled-Notebook-13-21cm\/product\/8883701127\" target=\"_blank\">camelcamelcamel<\/a>). It shows the price of a notebook on Amazon over time. But at any given point, the notebook \u2014 the same&nbsp;<em>product<\/em>&nbsp;\u2014 is on offer from more than one seller. Amazon sells it directly at one price, and third-party sellers at a range of other prices.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"490\" src=\"https:\/\/brainlabdev.wpenginepowered.com\/wp-content\/uploads\/2020\/11\/image-14.png\" alt=\"amazon price history\" class=\"wp-image-7659\" srcset=\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/image-14.png 722w, https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/image-14-300x204.png 300w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><figcaption><em><sub>A graph showing the price change of a single item on Amazon.<\/sub><\/em><\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>So we have to add&nbsp;<em>offers<\/em>&nbsp;to our product. Each offer can have one or more&nbsp;<em>prices<\/em>. Prices have a&nbsp;<em>currency<\/em>&nbsp;and a&nbsp;<em>value<\/em>. It\u2019s easiest to begin with the price and work your way up. Here\u2019s how we\u2019d represent the &#8220;Sold by Amazon&#8221; price:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n \"@type\" : \"PriceSpecification\",\n\n \"currency\"  : \"GBP\",\n\n \"value\" : 9.88\n\n}<\/code><\/pre>\n\n\n\n<p>That\u2019s simple enough. We then need to wrap it up in a slightly larger object that will represent the offer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n \"@type\" : \"Offer\",\n\n \"description\" : \"Sold By Amazon\",\n\n \"price Specification\" :\n\n {\n\n       \"@type\" : \"PriceSpecification\",\n\n       \"currency\" : \"GBP\",\n\n       \"value\" : 9.88\n\n   }\n\n}<\/code><\/pre>\n\n\n\n<p>Here we put the price into a property called&nbsp;<a href=\"http:\/\/schema.org\/PriceSpecification\" target=\"_blank\" rel=\"noreferrer noopener\">PriceSpecification<\/a>&nbsp;and put that into an&nbsp;<a href=\"http:\/\/schema.org\/Offer\" target=\"_blank\" rel=\"noreferrer noopener\">Offer<\/a>, which is the entire object you see above. The offer has a description, where we identify it as &#8220;Sold by Amazon&#8221;. Having packaged all that up, we need to put it in a property called &#8220;Offers&#8221;, on the product:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.distilled.net\/uploads\/json_ld_image_2.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Your JSON-LD should now look like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n   \"@context\" : \"http:\/\/schema.org\",\n\n   \"@type\": \"Product\",\n\n   \"name\": \"Moleskine Notebook\",\n\n   \"offers\" : &#91;\n\n      {\n\n       \"@type\" : \"Offer\",\n\n       \"description\": \"Sold By Amazon\",\n\n       \"priceSpecification\" :\n\n            {\n\n             \"@type\" : \"PriceSpecification\",\n\n             \"currency\": \"GBP\",\n\n             \"value\": 9.88\n\n            }\n\n       }]\n<br>}<\/code><\/pre>\n\n\n\n<p>That might seem like a lot of hassle just to add a price, but the advantage of it is that it\u2019s very flexible. If your company starts selling different variants of the same product at different price points, adding refurbished or open-box products, or even starts allowing marketplace sellers as Amazon does, it\u2019ll be easy to add new price information. Just make a new&nbsp;<strong>Offer<\/strong>&nbsp;object and add it to the list. In our example \u2014 the Moleskine Notebook on Amazon \u2014 we can easily add a marketplace offer at \u00a35.07:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\n \"@context\" : \"http:\/\/schema.org\",\n\n \"@type\": \"Product\",\n\n \"name\": \"Moleskine Notebook\",\n\n \"offers\" : &#91;\n\n    {\n\n     \"@type\" : \"Offer\",\n\n     \"description\": \"Sold By Amazon\",\n\n     \"priceSpecification\" :\n\n          {\n\n            \"@type\" : \"PriceSpecification\",\n\n            \"currency\": \"GBP\",\n\n            \"value\": 9.88\n\n          }\n\n     },\n\n {\n\n     \"@type\" : \"Offer\",\n\n     \"description\": \"3rd Party Marketplace Seller\",\n\n     \"priceSpecification\" :\n\n          {\n\n            \"@type\" : \"PriceSpecification\",\n\n            \"currency\": \"GBP\",\n\n            \"value\": 5.07\n\n          }\n\n     }\n\n]\n\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Multiple Objects<\/h3>\n\n\n\n<p>Another common mistake is more subtle, because there are no mistakes in the syntax, so it won\u2019t trigger any errors or warnings in the Structured Data Testing Tool. Let\u2019s say we have two videos on a page, and we\u2019ve marked them both up with JSON-LD like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n<br> \"@context\": \"http:\/\/schema.org\/\",\n\n \"@id\": \"https:\/\/mydomain.com\/boring-5-second-video\",\n\n \"@type\": \"VideoObject\",\n\n \"duration\": \"PT5S\",\n\n \"name\": \"Boring video\",\n\n \"thumbnailUrl\": \"https:\/\/mydomain.com\/boring-video-thumbnail.jpg\",\n\n \"description\": \"A short and boring video\",\n\n \"uploadDate\": \"20160727\"\n\n}\n\n{\n\n \"@context\": \"http:\/\/schema.org\/\",\n\n \"@id\": \"https:\/\/mydomain.com\/interesting-30-minute-video\",\n\n \"@type\": \"VideoObject\",\n\n \"duration\": \"PT30M\",\n\n \"name\": \"Interesting video\",\n\n \"thumbnailUrl\": \"https:\/\/mydomain.com\/long-video-thumbnail.jpg\",\n\n \"description\": \"An interesting video with a cool thumbnail image\",\n\n \"uploadDate\": \"20160727\"\n\n}<br><\/code><\/pre>\n\n\n\n<p>This is more common than you might think, especially when we\u2019re relying on some kind of automation to generate the JSON-LD (and we usually are). Put the above snippet into the&nbsp;<a href=\"https:\/\/search.google.com\/structured-data\/testing-tool\" target=\"_blank\" rel=\"noreferrer noopener\">Structured Data Testing Tool&nbsp;<\/a>and you\u2019ll find it just silently ignores the second video altogether. It\u2019s a bit like the &#8220;Person&#8221; object we invented earlier \u2014 a computer just doesn\u2019t have any way of understanding the relationships unless you tell it what they are. Given a bunch of objects that look the same, Google doesn\u2019t know which one is the most important. So they just take the first one. In this example, that would mean the wrong thumbnail showing up in video SERPs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next steps<\/h2>\n\n\n\n<p>There\u2019s no substitute for actually understanding the structure of your JSON-LD. Once you\u2019ve grasped these basic concepts, you can go a lot further than we have here. Thinking back to the Moleskine Notebook, for example, we could have added lots of relevant information:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sales Taxes on each offer<\/li><li>Delivery methods for each offer<\/li><li>Delivery costs for each offer<\/li><li>Descriptions of the product condition (new, used, etc.)<\/li><li>Reviews<\/li><\/ul>\n\n\n\n<p>Even though it\u2019s been available for quite some time now, very few sites take advantage of all JSON has to offer. And when they do, they often tack new features onto their existing objects without really understanding the syntax. Surf the net and you\u2019ll see reviews that aren\u2019t attached to any products; prices incorrectly configured, and objects of all kinds sitting next to one another instead of in a hierarchy (like the video thumbnails we looked at a moment ago).<\/p>\n\n\n\n<p>This stuff isn\u2019t that hard \u2014 it\u2019s almost unfair that there\u2019s still a competitive advantage in understanding it and getting it right.&nbsp;<a href=\"http:\/\/schema.org\/docs\/full.html\" target=\"_blank\" rel=\"noreferrer noopener\">Check out the docs<\/a>&nbsp;on schema.org, and&nbsp;<a href=\"https:\/\/search.google.com\/structured-data\/testing-tool\" target=\"_blank\" rel=\"noreferrer noopener\">test<\/a>&nbsp;your pages regularly. But don\u2019t stop there. It isn\u2019t enough to see &#8220;0 Errors&#8221; in the testing tool \u2014 make sure that your JSON-LD fully reflects the whole structure: objects, reviews, prices, and how they relate to one another.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chances are, you\u2019ve already heard of JSON-LD \u2014 you might even be using it already. Kudos to you if that\u2019s the case. If you haven\u2019t heard of it, I\u2019d urgently recommend you to&nbsp;read up&nbsp;on what is becoming an ever-more important part of SEO. Its increasing importance is down to its selection as Google\u2019s structured data [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":7433,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":true,"footnotes":""},"categories":[44],"tags":[],"class_list":["post-7658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-analytics"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to implement structured data with JSON-LD - Brainlabs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement structured data with JSON-LD - Brainlabs\" \/>\n<meta property=\"og:description\" content=\"Chances are, you\u2019ve already heard of JSON-LD \u2014 you might even be using it already. Kudos to you if that\u2019s the case. If you haven\u2019t heard of it, I\u2019d urgently recommend you to&nbsp;read up&nbsp;on what is becoming an ever-more important part of SEO. Its increasing importance is down to its selection as Google\u2019s structured data [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/\" \/>\n<meta property=\"og:site_name\" content=\"Brainlabs\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-16T13:03:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-20T18:26:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1136\" \/>\n\t<meta property=\"og:image:height\" content=\"445\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"claudiu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Brainlabs\" \/>\n<meta name=\"twitter:site\" content=\"@Brainlabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"claudiu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/\"},\"author\":{\"name\":\"claudiu\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/#\/schema\/person\/d2633d055821dd28cb40492b806e23ff\"},\"headline\":\"How to implement structured data with JSON-LD\",\"datePublished\":\"2016-07-16T13:03:04+00:00\",\"dateModified\":\"2025-06-20T18:26:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/\"},\"wordCount\":1842,\"publisher\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png\",\"articleSection\":[\"Data Analytics\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/\",\"url\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/\",\"name\":\"How to implement structured data with JSON-LD - Brainlabs\",\"isPartOf\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png\",\"datePublished\":\"2016-07-16T13:03:04+00:00\",\"dateModified\":\"2025-06-20T18:26:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage\",\"url\":\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png\",\"contentUrl\":\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png\",\"width\":1136,\"height\":445},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.brainlabsdigital.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement structured data with JSON-LD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/#website\",\"url\":\"https:\/\/www.brainlabsdigital.com\/\",\"name\":\"Brainlabs\",\"description\":\"High-Performance Media Agency\",\"publisher\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.brainlabsdigital.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/#organization\",\"name\":\"Brainlabs\",\"url\":\"https:\/\/www.brainlabsdigital.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2025\/04\/cropped-25-Brainlabs-Color-Logo-Icon-1-300x300.png\",\"contentUrl\":\"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2025\/04\/cropped-25-Brainlabs-Color-Logo-Icon-1-300x300.png\",\"width\":300,\"height\":300,\"caption\":\"Brainlabs\"},\"image\":{\"@id\":\"https:\/\/www.brainlabsdigital.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/Brainlabs\",\"https:\/\/www.linkedin.com\/company\/brainlabs-digital\/\",\"https:\/\/www.instagram.com\/brainlabs\/\",\"https:\/\/www.youtube.com\/@brainlabsmedia\/featured\",\"https:\/\/www.tiktok.com\/@brainlabsglobal?lang=en\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/#\/schema\/person\/d2633d055821dd28cb40492b806e23ff\",\"name\":\"claudiu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.brainlabsdigital.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4814cc0c790a1d2fe26b7690b22344dfde27b79d9ac47148e73322e9553a795b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4814cc0c790a1d2fe26b7690b22344dfde27b79d9ac47148e73322e9553a795b?s=96&d=mm&r=g\",\"caption\":\"claudiu\"},\"url\":\"https:\/\/www.brainlabsdigital.com\/author\/claudiu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to implement structured data with JSON-LD - Brainlabs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/","og_locale":"en_US","og_type":"article","og_title":"How to implement structured data with JSON-LD - Brainlabs","og_description":"Chances are, you\u2019ve already heard of JSON-LD \u2014 you might even be using it already. Kudos to you if that\u2019s the case. If you haven\u2019t heard of it, I\u2019d urgently recommend you to&nbsp;read up&nbsp;on what is becoming an ever-more important part of SEO. Its increasing importance is down to its selection as Google\u2019s structured data [&hellip;]","og_url":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/","og_site_name":"Brainlabs","article_published_time":"2016-07-16T13:03:04+00:00","article_modified_time":"2025-06-20T18:26:11+00:00","og_image":[{"width":1136,"height":445,"url":"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png","type":"image\/png"}],"author":"claudiu","twitter_card":"summary_large_image","twitter_creator":"@Brainlabs","twitter_site":"@Brainlabs","twitter_misc":{"Written by":"claudiu","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#article","isPartOf":{"@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/"},"author":{"name":"claudiu","@id":"https:\/\/www.brainlabsdigital.com\/#\/schema\/person\/d2633d055821dd28cb40492b806e23ff"},"headline":"How to implement structured data with JSON-LD","datePublished":"2016-07-16T13:03:04+00:00","dateModified":"2025-06-20T18:26:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/"},"wordCount":1842,"publisher":{"@id":"https:\/\/www.brainlabsdigital.com\/#organization"},"image":{"@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage"},"thumbnailUrl":"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png","articleSection":["Data Analytics"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/","url":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/","name":"How to implement structured data with JSON-LD - Brainlabs","isPartOf":{"@id":"https:\/\/www.brainlabsdigital.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage"},"image":{"@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage"},"thumbnailUrl":"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png","datePublished":"2016-07-16T13:03:04+00:00","dateModified":"2025-06-20T18:26:11+00:00","breadcrumb":{"@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#primaryimage","url":"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png","contentUrl":"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2020\/11\/BL-Blog-Placeholder-V2.png","width":1136,"height":445},{"@type":"BreadcrumbList","@id":"https:\/\/www.brainlabsdigital.com\/how-to-implement-structured-data-with-json-ld\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.brainlabsdigital.com\/"},{"@type":"ListItem","position":2,"name":"How to implement structured data with JSON-LD"}]},{"@type":"WebSite","@id":"https:\/\/www.brainlabsdigital.com\/#website","url":"https:\/\/www.brainlabsdigital.com\/","name":"Brainlabs","description":"High-Performance Media Agency","publisher":{"@id":"https:\/\/www.brainlabsdigital.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.brainlabsdigital.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.brainlabsdigital.com\/#organization","name":"Brainlabs","url":"https:\/\/www.brainlabsdigital.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.brainlabsdigital.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2025\/04\/cropped-25-Brainlabs-Color-Logo-Icon-1-300x300.png","contentUrl":"https:\/\/www.brainlabsdigital.com\/wp-content\/uploads\/2025\/04\/cropped-25-Brainlabs-Color-Logo-Icon-1-300x300.png","width":300,"height":300,"caption":"Brainlabs"},"image":{"@id":"https:\/\/www.brainlabsdigital.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/Brainlabs","https:\/\/www.linkedin.com\/company\/brainlabs-digital\/","https:\/\/www.instagram.com\/brainlabs\/","https:\/\/www.youtube.com\/@brainlabsmedia\/featured","https:\/\/www.tiktok.com\/@brainlabsglobal?lang=en"]},{"@type":"Person","@id":"https:\/\/www.brainlabsdigital.com\/#\/schema\/person\/d2633d055821dd28cb40492b806e23ff","name":"claudiu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.brainlabsdigital.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4814cc0c790a1d2fe26b7690b22344dfde27b79d9ac47148e73322e9553a795b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4814cc0c790a1d2fe26b7690b22344dfde27b79d9ac47148e73322e9553a795b?s=96&d=mm&r=g","caption":"claudiu"},"url":"https:\/\/www.brainlabsdigital.com\/author\/claudiu\/"}]}},"lang":"en","translations":{"en":7658},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/posts\/7658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/comments?post=7658"}],"version-history":[{"count":0,"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/posts\/7658\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/media\/7433"}],"wp:attachment":[{"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/media?parent=7658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/categories?post=7658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.brainlabsdigital.com\/wp-json\/wp\/v2\/tags?post=7658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}