Skip to main content

Advanced guide

Pre-rendering paywalled content — Flexible Sampling without cloaking

Pre-render paywalled content safely with Flexible Sampling, metering, and fair-access heuristics that keep you inside Google's guidelines.

14 min readProcedure: 30 min setupAdvancedUpdated

Introduction

Pre-rendering paywalled content is legitimate as long as you follow Google's Flexible Sampling policy and mark the structured data correctly. The common failure mode is serving full text to Googlebot while users see a locked preview — that is cloaking.

The five steps below implement the safe pattern.

Step-by-step

How to: Paywalled content

  1. 1

    Pick a Flexible Sampling model: metering or lead-in

    Metering gives users a fixed number of free articles per month. Lead-in gives all users the first paragraphs free. Either is acceptable to Google; choose based on user experience goals, not SEO.

  2. 2

    Serve full text to Googlebot and metered / lead-in to users

    Pre-rendered snapshots contain the full article. Human responses implement metering or lead-in via the same middleware layer that does bot detection.

  3. 3

    Mark CreativeWork.isAccessibleForFree = false

    Add isAccessibleForFree: false to the Article JSON-LD. Include hasPart with cssSelector pointing to the paywalled section. This is the "no cloaking" insurance policy.

    json
    {
    "@context": "https://schema.org",
    "@type": "NewsArticle",
    "isAccessibleForFree": false,
    "hasPart": {
    "@type": "WebPageElement",
    "isAccessibleForFree": false,
    "cssSelector": ".paywalled"
    }
    }
  4. 4

    Apply the .paywalled class to locked content

    The cssSelector referenced in hasPart must match real DOM in the pre-rendered snapshot. If you omit the class or strip it from the snapshot, Google treats the article as fully free and you drift into cloaking territory.

  5. 5

    Monitor Search Console for cloaking warnings

    If Google suspects cloaking, a manual action appears in Search Console. Check monthly. If a warning appears, audit the diff between the snapshot and the human response on 5 sample URLs.

FAQ

Questions engineers ask about this guide

Yes, under Flexible Sampling, provided the structured data marks the content as paywalled. Serving full text to bots and locked content to all users without that marking is cloaking.

Policy coverage is less clear. OpenAI and Anthropic do not document a Flexible Sampling equivalent. Many news publishers block AI crawlers on paywalled content via robots.txt while allowing Googlebot.

Use noindex on the paywalled page or return truncated content to all traffic including bots. You lose rich-result eligibility but avoid any cloaking risk.

Editorial trust

Written by ostr.io engineering team · Engineering Team. We build and run pre-rendering infrastructure for more than 200 engineering teams, which is where the numbers and code samples on this page come from.

Last updated . Editorial scope and review policy: About prerender.info.