Sites that gate content behind subscriptions or registration often let Googlebot see the full text so it can be indexed. Without context, showing crawlers more than users looks like cloaking. Google's paywalled content structured data uses isAccessibleForFree set to false and a hasPart WebPageElement with a cssSelector to mark which sections are gated.
The markup
Set isAccessibleForFree to false on the Article or other CreativeWork, then describe the gated section with a WebPageElement whose cssSelector matches a class on the paywalled HTML. Google supports class selectors for this.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Annual state of usage-based pricing",
"isAccessibleForFree": false,
"hasPart": {
"@type": "WebPageElement",
"isAccessibleForFree": false,
"cssSelector": ".gated-report"
}
}When SaaS companies need it
The common case is gated content: a research report or template library that asks for an email before showing the full piece. If the full text is in the HTML for crawlers while users see a form, mark it up. If crawlers see the same form as users, there is nothing hidden and no markup is needed, though the gated part then cannot be indexed.
Choosing a gating approach
Many teams show a substantial ungated section, such as the summary and key charts, with the form below. That gives search engines and readers something useful without relying on serving different content to crawlers.
Example
A gated benchmark report
Larkholm publishes a benchmark report behind an email form. Its page renders the full report in HTML inside a div with the class gated-report, hidden by a client-side gate until the form is submitted. Article markup marks that section as not free, so Google can index the text while understanding why users see a form.
Common mistakes
Selector mismatch
If the cssSelector does not match an element on the page, the markup does not describe anything.
Questions
No. Content in the HTML can be read by anyone who views the source. Use it only for content where that is acceptable.