I am still having difficulty in trying to understand what the mainEntityOfPage.@id is and why it is recommended by Google. I am referring specifically to articles, blog posts and similar schemas. Here is the article that I read:
https://developers.google.com/structured-data/rich-snippets/articles
I currently have my blog post page setup like this (I have left out most of the required fields otherwise this post gets too long):
<script type="application/ld+json">
{
"@@context": "http://schema.org",
"@@type": "WebPage",
"breadcrumb": {
"@@type": "BreadcrumbList",
"itemListElement": [{
"@@type": "ListItem",
"item": {
"@@id": "http://www.example.com",
"name": "My Website"
},
"position": 1
}, {
"@@type": "ListItem",
"item": {
"@@id": "http://www,example.com/blog",
"name": "Blog"
},
"position": 2
}, {
"@@type": "ListItem",
"item": {
"@@id": "http://www.example.com/blog/1001/test-blog-post",
"name": "Test Blog Post"
},
"position": 3
}]
},
"mainEntity": {
"@@type": "BlogPosting",
"headline": "Test Blog Post",
"url": "http://www.example.com/blog/1001/test-blog-post"
}
}
</script>
Using mainEntity the way I did, is this the same thing as using mainEntityOfPage.@id? If it is not, how do I change my code to fit in with Google's requirements?