This site is meant as a guidance on how you can implement markups from Schema.org with JSON-LD the best and/or the most detailed way. It contain complete examples which are already validated by Google's Structured Data Testing Tool
What is JSON-LD?
JSON-LD is a lightweight but powerful Linked Data format which is easy to read and understand for humans.
While it is unknown if it give you any ranking benefits as of today, Google recommend it Even if it don't give you any ranking benefits it DO give you:
- Rich Snippets
- Branding benefits such as logo next to name
- Social proofs such as reviews
- Looking better in SERP's with:
- Site Links
- Among more
How to JSON-LD?
You can put your JSON-LD code everywhere on the document, and it will still validate perfectly. Even outside of the HTML tags. If you use tools to automate it such as Google Tag Manager, it actually put it AFTER your closing html tag. That might be a indicator showing us it is the best practice, or it might just be the most convenient thing to do when they code the manager. Or they just don't want to disturb your own code for when you read the source at a loaded page.
There are other ways to markup your schema.org:
An open-community HTML specification used to nest structured data within HTML content. Like RDFa, it uses HTML tag attributes to name the properties you want to expose as structured data.
You put microdata in the actual HTML tags such as html, body, head, meta, div, span and basically everyone else. This is the second in line best practice if there are particular JSON-LD markups you don't manage to do.
An HTML5 extension that supports linked data by introducing HTML tag attributes that correspond to the user-visible content you want to describe for search engines.
Have no experience with it myself, but from what I've read, it is hard and tedious with a lot of possibilities for errors. JSON-LD is just a much easier and better way.