I am looking to use JSON-LD for schema on a website. (Schema meaning schema.org data.) I know how to write the data but my question is is there a prefered location in my code to insert this data? In other words, should the JSON-LD always be in the head
, body
, etc.?
Google recommends adding JSON-LD to the <head> section of the HTML document; however, it's okay if the JSON-LD is within the <body> section. Google can also grasp dynamically generated tags in the DOM.
The schema markup should only be added to the pages where the content that you used to create the schema is represented. Adding schema to every page of the site can confuse search engines as to what the schema is actually representing.
But for the most part, you will want to place the schema markup HTML in the footer of every page of your website. We are going to do that by clicking on Appearance, then Customize, then Widgets, and then the footer section in which we want to place the code.
The answer. Yes, you can insert JSON structured data either in the body or the head.
The data can be placed anywhere. From Google's documentation:
The data, enclosed within the
<script type="application/ld+json">
...</script>
tags as shown in the examples below, may be placed in either the<HEAD>
or<BODY>
region of the page that displays that event.
You can also use data dynamically fetched using AJAX:
JSON-LD markup inserted by Javascript that runs upon initial page load can be recognized.
Update (as pointed by Antony in the comments)
The latest documentation says:
[JSON-LD is a] JavaScript notation embedded in a tag in the page head or body... Google can read JSON-LD data when it is dynamically injected into the page's contents, such as by JavaScript code or embedded widgets in your content management system.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With