5

To avoid cloaking, I'm planing to indicate paywalled content on reviews, but I'm struggling how to format both JSON-LD and HTML:

  • Should I add hasPart and isAccessibleForFree keywords for each Review? (apparently LocalBusiness doesn't accept hasPart according to the testing tool)
  • Do I need to add the paywalled property description for search engines?
  • In the HTML, I'm generating a "Lorem ipsum" description instead to the actual text and blurring it using CSS. The blurred text has the class paywall, will Google and other SE penalize the site because of the arbitrary nonsense text? will description be considered as cloaking in this case (since search engines and users have different content)?

Below is a small example to test, there may be hundreds of reviews.

{  
  "@context": "http://www.schema.org",
  "@type": "LocalBusiness",
  "@id": "http://localBusiness.example.com",
  "name": "Example",
  "image": "http://localBusiness.example.com/image.jpg",
  "aggregateRating":{  
     "@type":"AggregateRating",
     "ratingValue":"3.75",
     "reviewCount":"2"
  },
  "review":[  
     {  
        "@type":"Review",
        "@id":"http://localBusiness.example.com/Review/1",
        "author":"Anonym",
        "name":"Review 1",
        "description":"Lorem ipsum dolor sit amet",
        "datePublished":"2017-07-19",
        "reviewRating":{  
           "@type":"Rating",
           "ratingValue":"4"
        },
        "isAccessibleForFree": "False",
        "hasPart": {
           "@type": "WebPageElement",
           "isAccessibleForFree": "False",
           "cssSelector" : ".paywall"
        }
     },
     {  
        "@type":"Review",
        "@id":"http://localBusiness.example.com/Review/2",
        "author":"Anonym",
        "name":"Review 2",
        "description":"Excepteur sint occaecat cupidatat non",
        "datePublished":"2017-10-19",
        "reviewRating":{  
           "@type":"Rating",
           "ratingValue":"3.5"
        },
        "isAccessibleForFree": "False",
        "hasPart": {
           "@type": "WebPageElement",
           "isAccessibleForFree": "False",
           "cssSelector" : ".paywall"
        }
     }
  ]
}
unor
  • 21,919
  • 3
  • 47
  • 121
Razor
  • 151
  • 4

1 Answers1

1
  • Google notes in the cited documentation, this implementation is only possible for the type CreativeWork. I don't know, whether this kind of markup, even if validated errorfree by testing tool, is correct by design,
  • Not a LocalBusiness should be divided into hasPart-parts,
  • Your review should be marked up as having hasPart, and than as containing an array of multiple reviews,
  • loremIpsum in HTML would be in my opinion definitely harmful - it is a sign of a website, which isn't finally ready for publishing.

Correct, means valide, markup would be:

<script type="application/ld+json">
{  
"@context": "http://www.schema.org",
"@type": "LocalBusiness",
"name": "Example",
"image": "http://localBusiness.example.com/image.jpg",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "http://localBusiness.example.com",
"hasPart":    
{
"@type": "WebPageElement",
"aggregateRating":{  
"@type":"AggregateRating",
"ratingValue":"3.75",
"reviewCount":"2"
},
"isAccessibleForFree": "False",
"cssSelector" : ".paywall",
"review":[
{
"@type": "Review",
"author": "John Doe",
"datePublished": "2006-05-04",
"name": "A masterpiece of literature",
"reviewBody": "I really enjoyed this book. It captures the essential challenge people face as they try make sense of their lives and grow to adulthood.",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
}
},
{
"@type": "Review",
"author": "Bob Smith",
"datePublished": "2006-06-15",
"name": "A good read.",
"reviewBody": "Catcher in the Rye is a fun book. It's a good book to read.",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
}
}
]
}
}
}
</script>
Evgeniy
  • 10,195
  • 1
  • 18
  • 49