What Is Paywalled Content Schema?

Published
14 min read

What Is Paywalled Content Schema?

Paywalled content schema is CreativeWork structured data that declares content requires payment, subscription or registration by setting isAccessibleForFree to false and identifying restricted page sections.

The approach helps distinguish intentionally restricted indexable content from cloaking. A compatible CreativeWork such as Article, NewsArticle, Course, Review or WebPage can declare its access state. WebPageElement nodes in hasPart identify the HTML sections covered by the access restriction.

This markup applies only when the publisher wants the content crawled and indexed. It is not a mechanism for granting crawler access to private SaaS dashboards, customer reports, account data or confidential documents. Access control remains a security decision outside schema.

  1. Identify the exact page, asset, entity or relationship described in this section.
  2. Inspect the live implementation and retain the observed evidence.
  3. Compare the observation with the intended meaning and its primary specification.
  4. Correct any mismatch, then retest the live result.
  5. Record the accountable owner and review date.
What Is Paywalled Content Schema? reference table
Property or nodeRepresentsEvidence source
CreativeWorkIndexable content itemCanonical content page
isAccessibleForFreeWhether access is unrestrictedEntitlement policy
hasPartRestricted page segmentRendered document structure
WebPageElementSpecific protected sectionHTML wrapper
cssSelectorClass selecting protected sectionRendered CSS class
Article or subtypeActual content typeEditorial template
mainEntityOfPageCanonical page relationshipPreferred URL
authorResponsible creatorEditorial record
  • Use markup only for content intended for indexing.
  • Identify the real restricted sections.
  • Keep app and customer data outside public search surfaces.

Primary specification: Google Search paywalled-content structured data documentation.

Paywall markup describes intentionally restricted public-facing content; it never replaces authentication, authorization or data-security controls.

How Does Paywalled Content Markup Work?

Paywalled content markup works by describing the CreativeWork, declaring that it is not freely accessible and mapping each restricted HTML section through a non-nested WebPageElement and class selector.

The page wraps protected content in a class such as paywall. The structured graph uses hasPart with a WebPageElement whose cssSelector points to .paywall and whose access flag is false. Multiple separate restricted sections can use several WebPageElement nodes.

The crawler still needs an implementation consistent with what authorized and unauthorized users receive. Markup does not excuse serving materially different content deceptively. If protected content must never reach an unauthorized browser, enforce that server-side rather than hiding it with JavaScript or CSS.

  • The exact page, asset, entity or relationship covered by this section
  • The live implementation rather than an editor-only preview
  • The primary specification or first-party record defining the expected behavior
  • The validation result, accountable owner and review date
How Does Paywalled Content Markup Work? reference table
StageActionFailure example
ClassifyChoose correct CreativeWork typeDashboard called Article
DeclareSet access flag falsePaid article marked free
WrapAdd class to restricted sectionSelector points nowhere
MapCreate WebPageElement in hasPartProtected content omitted
DeliverApply secure access designFull premium data sent to browser
RenderKeep public and crawler logic consistentCrawler receives unrelated full text
MaintainUpdate selectors with templatesCSS rename breaks mapping
  1. Confirm the content should be indexed.
  2. Select the truthful CreativeWork type.
  3. Wrap restricted sections with stable classes.
  4. Map them through hasPart.
  5. Test rendering and access boundaries.

The graph works when selectors match rendered restricted sections and the delivery model preserves both indexing intent and real access control.

Which Content Types Support Paywall Markup?

Paywall markup can be used with CreativeWork and supported subtypes such as Article, NewsArticle, Blog, Comment, Course, HowTo, Message, Review and WebPage when that content is intended for indexing.

The primary type should match the actual page. A subscription research article can be Article; a gated training curriculum may be Course; a members-only review can remain Review. Do not use a generic WebPage merely to avoid supplying required properties of a more specific type.

Private software screens are different. A backlink report, site crawl, billing page or customer project contains account-scoped data and should not become indexable because WebPage is technically a CreativeWork. Public product education can use Article schema; the application remains protected.

  1. Identify the exact page, asset, entity or relationship described in this section.
  2. Inspect the live implementation and retain the observed evidence.
  3. Compare the observation with the intended meaning and its primary specification.
  4. Correct any mismatch, then retest the live result.
  5. Record the accountable owner and review date.
Which Content Types Support Paywall Markup? reference table
SurfaceUse paywall markup?Reason
Subscription news articleYes when intended for indexingEditorial CreativeWork
Premium research guideYes when indexed under access policyRestricted content product
Registered course lessonPotentially when intended for indexingSupported Course or WebPage context
Members-only reviewPotentiallySupported Review context
SaaS marketing report previewOnly if it is a public content productEvaluate real indexing intent
Customer backlink reportNo public markupPrivate project data
Authenticated SEO dashboardNo public markupApplication surface
Billing or account pageNo public markupSensitive account data
  • Use the most specific truthful content type.
  • Require explicit indexing intent.
  • Exclude authenticated product and customer surfaces.

Choose paywall markup for indexable content products, never for private application surfaces or customer data.

Which Paywall Properties Matter Most?

The essential property is isAccessibleForFree set to false, while hasPart WebPageElement nodes with false access flags and class-only cssSelector values identify the restricted sections precisely.

The top-level access flag communicates that the CreativeWork includes restricted access. hasPart adds granularity for partial paywalls. Current technical guidance allows class selectors rather than IDs, complex selectors or element names, and protected sections should not be nested inside one another.

Keep the content type’s own required properties complete. An Article still needs accurate headline, author, dates and canonical relationships according to its use. Paywall fields do not replace the underlying schema.

  • The exact page, asset, entity or relationship covered by this section
  • The live implementation rather than an editor-only preview
  • The primary specification or first-party record defining the expected behavior
  • The validation result, accountable owner and review date
Which Paywall Properties Matter Most? reference table
PropertyValue or roleAudit question
isAccessibleForFreefalseDoes access require payment or registration?
hasPartOne or more WebPageElement nodesAre all protected sections represented?
hasPart.@typeWebPageElementIs the section type correct?
hasPart.isAccessibleForFreefalseIs that section actually restricted?
cssSelector.classNameDoes the class exist in rendered HTML?
CreativeWork @typeArticle, Course, Review or other supported typeDoes it match page purpose?
mainEntityOfPageCanonical page identityDoes it resolve to preferred URL?
author and datesContent provenanceDo editorial records match?
  1. Complete the primary CreativeWork schema.
  2. Set the content access flag to false.
  3. List each restricted WebPageElement.
  4. Use stable class-only selectors.
  5. Verify no protected sections are nested.

A correct implementation combines a complete CreativeWork graph with a false access flag and exact non-nested class-selected restricted sections.

How Do Hard, Metered and Registration Walls Differ?

Hard paywalls require payment before protected content, metered paywalls allow a limited number of reads and registration walls require an account; all can restrict content, but entitlement and preview behavior differ.

A hard paywall may show only a public introduction before subscription. A metered system changes access based on a user’s reading allowance. A registration wall can be price-free yet still mean the content is not accessible to everyone without sign-in. Therefore “no charge” is not the same as isAccessibleForFree: true under this content-access model.

The page should explain the access requirement before collecting personal or payment data. Consent, privacy and billing obligations depend on jurisdiction and product design; schema does not decide them. Maintain one canonical content URL rather than producing separate public and subscriber identities.

  1. Identify the exact page, asset, entity or relationship described in this section.
  2. Inspect the live implementation and retain the observed evidence.
  3. Compare the observation with the intended meaning and its primary specification.
  4. Correct any mismatch, then retest the live result.
  5. Record the accountable owner and review date.
How Do Hard, Metered and Registration Walls Differ? reference table
Access modelUser conditionMarkup consideration
Hard paywallPaid entitlement requiredRestricted content flagged false
Metered paywallAllowance exhausted after readsPage remains restricted by policy
Registration wallAccount required without paymentStill not accessible to everyone
Free previewIntro open, remainder restrictedMap protected section in hasPart
Institutional accessEntitlement through organizationRestriction remains real
Temporary free accessPolicy changes by dateUpdate page and markup together
Public articleNo access conditionisAccessibleForFree true or omit by design
Private app recordAuthenticated authorizationDo not seek public indexing
  • Separate price-free access from unrestricted access.
  • Explain the entitlement before conversion.
  • Keep one canonical URL across access states.

Access models differ commercially, but each should disclose the restriction clearly and preserve one truthful canonical content identity.

How Should CSS Selectors and Page Sections Be Built?

Paywalled sections should use stable, non-nested HTML classes that exactly match the class-only cssSelector values declared in hasPart.

If a page contains two separate protected regions, each can use its own WebPageElement or share a documented class where the output remains unambiguous. Avoid selectors tied to minified build hashes, experiment variants or presentation classes that change without the access policy.

Test the rendered DOM after consent banners, personalization and hydration. A selector that exists only in source code but disappears after rendering does not describe the final page. Nested restricted containers can double-count or confuse section boundaries, so flatten the access wrappers.

  • The exact page, asset, entity or relationship covered by this section
  • The live implementation rather than an editor-only preview
  • The primary specification or first-party record defining the expected behavior
  • The validation result, accountable owner and review date
How Should CSS Selectors and Page Sections Be Built? reference table
Selector patternUseReason
.paywallGoodSimple access-specific class
.premium-sectionGoodReadable stable boundary
#paywallDo not use for supported cssSelector guidanceID selector
article .lockedDo not useComplex selector rather than class only
divDo not useElement selector is too broad
.css-a8f92AvoidBuild-generated unstable class
Nested .paywall containersAvoidOverlapping restricted sections
Separate .section-a and .section-bUse as multiple hasPart nodesDistinct non-nested regions
  1. Create access-specific class names.
  2. Wrap each restricted region once.
  3. Declare matching WebPageElement nodes.
  4. Inspect the rendered DOM.
  5. Regression-test after frontend builds.

Stable access-specific classes should map one-to-one with the public rendered boundaries of restricted content.

How Can Paywalls Avoid Cloaking and Data Leaks?

Paywalls avoid cloaking by serving a consistent content purpose and accurately declaring restrictions, while data leaks are prevented through real authorization rather than client-side hiding.

A crawler may need to understand the content intended for indexing, but users should see a truthful preview and clear access requirement rather than unrelated teaser text. The markup exists to describe the restriction, not to permit deceptive content substitution.

If premium text, proprietary datasets or customer information must not reach an unauthorized browser, do not include those bytes in HTML, JSON, source maps or API responses. CSS blur, hidden DOM, disabled controls and JavaScript overlays are not security controls. Server-side authorization must gate every protected resource.

  1. Identify the exact page, asset, entity or relationship described in this section.
  2. Inspect the live implementation and retain the observed evidence.
  3. Compare the observation with the intended meaning and its primary specification.
  4. Correct any mismatch, then retest the live result.
  5. Record the accountable owner and review date.
How Can Paywalls Avoid Cloaking and Data Leaks? reference table
ImplementationSearch consistencySecurity outcome
Server-rendered preview plus declared restrictionClear public experienceProtected bytes withheld
Full premium HTML hidden by CSSPotentially misleadingContent leaks in source
Client API returns full content before checkUnreliable access storyNetwork response leaks
Crawler-only full unrelated versionCloaking riskNo user equivalence
Canonical page with honest excerptConsistent identityCan be secure
Authenticated API authorizationIndependent of markupCorrect app protection
robots block private appUseful discovery controlNot a substitute for login
Public schema on customer reportWrong indexing intentPotential data exposure
  • Never treat CSS or JavaScript as authorization.
  • Keep crawler and user content purpose consistent.
  • Exclude confidential app data from public markup.

Search transparency and application security are separate duties: declare indexable paywalls honestly and enforce confidential access on the server.

What Paywalled Content Schema Mistakes Are Common?

Common paywall-schema mistakes include marking private app pages for indexing, leaving access flags true, using broken or complex selectors, nesting restricted sections, exposing premium bytes and serving crawler-only content.

Template changes can rename paywall classes while JSON-LD retains old selectors. Metering experiments may render different wrappers and access flags. AMP, mobile and desktop versions can drift. Audit every production variant rather than one editor preview.

Commercial truth matters too. A page described as subscriber-only should not lead to a broken checkout or undisclosed plan requirement. Conversely, a newly free article should not remain marked restricted. Validation cannot test entitlement or leakage.

  • The exact page, asset, entity or relationship covered by this section
  • The live implementation rather than an editor-only preview
  • The primary specification or first-party record defining the expected behavior
  • The validation result, accountable owner and review date
What Paywalled Content Schema Mistakes Are Common? reference table
MistakeRiskCorrection
Private dashboard uses paywall markupWrong public indexing intentKeep app protected and nonpublic
isAccessibleForFree true on restricted pageAccess mismatchSet false
Selector class missingProtected section not identifiedSync template and JSON-LD
Complex or ID selectorUnsupported mapping patternUse class-only selector
Nested protected wrappersAmbiguous sectionsFlatten boundaries
Full content hidden client-sideData leakEnforce server authorization
Crawler receives unrelated full copyCloaking riskMaintain content equivalence
Checkout or registration brokenFailed conversionRepair entitlement flow
  1. Confirm public indexing intent.
  2. Compare access flag and rendered sections.
  3. Test selectors across variants.
  4. Inspect source and network responses for leaks.
  5. Complete registration or subscription flow.

Paywall markup fails when indexing intent, selector mapping, entitlement and security boundaries do not describe the same page.