I've read several answers as to what mainEntityOfPage is and how to use it, and each one was more confusing than the last.
So my question is specific; I have a website which contains a blog section. On the blog details page I want to use structured data in JSON-LD format.
My question: would my mainEntityOfPage be WebPage or BlogPosting?
Should I use this:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"mainEntityOfPage": {
"@type": "BlogPosting",
}
}
</script>
or this:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
}
}
</script>
I'm thinking the mainEntityOfPage is BlogPosting, so first example, yes? Or do I still have it all wrong?
The definition of mainEntityOfPage is:
Indicates a page (or other CreativeWork) for which this thing is the main entity being described.
The main entity on a blog post page is the blog post, not the page. So, the second snippet is correct:
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage"
}
}
If you want to use the first snippet (so that WebPage is the top-level item), you have to use mainEntity instead of mainEntityOfPage:
{
"@context": "http://schema.org",
"@type": "WebPage",
"mainEntity": {
"@type": "BlogPosting"
}
}
Note 1: mainEntity and mainEntityOfPage are inverse properties, so these two snippets mean the same.
Note 2: Maybe it helps to read it as "is the mainEntityOfPage", and "has mainEntity".
Note 3: You can use ItemPage (instead of WebPage) on the blog post pages.
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