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:


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"

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?


@unor posted detailed answers here:

It would be much easier to understand if Google's structured data testing tool would remove the warning if you don't specify mainEntityOfPage.@id but specify mainEntity. This is how I currently have it.

| improve this answer | |
  • The second link is clear and comprehensive without saying too much. A++ – Josh Habdas Feb 9 '19 at 11:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.