I've got a site with some paywalled articles. We want to ensure that Googlebots can index the paywalled content, but we don't want to be accused of cloaking.
I've got two types of articles:
Premium articles, which use a backend paywall. If the user has a subscription, the paid contents will be rendered serverside. If the user doesn't have a subscription, the server will just render an article with a paywall and no paid contents.
Standard articles, which use a frontend paywall. The full article is always rendered serverside. Then some clientside code is responsible for determening if the user is a subscriber, or if you get this article as a freebie (everyone gets 3 free Standard articles per week). If you're not allowed to read the article, the DOM-nodes containing paid contents will be removed by javascript, and replaced with a paywall element.
I want to ensure that Googlebots can index the paid contents in all my articles. We will basically treat the Googlebot as a subscribed user. (by checking user-agent and validating IP adress using reverse DNS-lookups)
But I don't wanna be accused of cloaking.
The question is: What should my json-LD look like?
I would imagine this is what I should be using (for both types of articles)
"hasPart":[
{
"@type":"WebPageElement",
"isAccessibleForFree":false,
"cssSelector":".paid-content"
}
],
"isAccessibleForFree":false
Would this work in my case?
All the examples I've found on Google related to cloaking deal with situations where you hide the paid contents with CSS.
My situation is a bit different, since I remove the .paid-content
element completely. (Either serverside or clientside)