Skip to content
Searchpedia SEO field notes Callum Bennett Callum

Site ops

Paywall SEO

If you run a paywall, do not block crawlers—show them a preview with correct schema and noarchive to keep your premium pages ranking and conversions intact.

Beginner3 min readUpdated 2026-07-27Notes by Callum Bennett

What I’d do first

  • Audit every paywalled page for missing or incorrect structured data, starting with your top-traffic articles.
  • Implement Google's paywalled content schema with isAccessibleForFree false and a cssSelector that matches the locked portion's container.
  • Add a robots meta tag with noarchive to prevent cached pages from exposing the full content.
  • Ensure the free preview contains at least 200 words of meaningful, original text so the page can rank.
  • Test your markup using Google's Rich Results Test and the Schema.org Validator before publishing.

The path I'd take

Audit first. Most publishers miss structured data entirely. For a recent client, 300 paywalled articles had zero schema. I started with the top 50 by organic traffic and found that 30 of those showed only a headline as the visible text – far too thin. My first move: expand the preview on those 30 to at least 250 words of unique content. Then implement [schema markup](/schema-markup/) per Google's paywalled content guidelines. Use the Article type, set isAccessibleForFree to false, and add a hasPart property with a WebPageElement and a cssSelector that matches the locked container. For example, if the paid content sits inside a <div class="paywall-block">, the markup would be:

"hasPart": [{
  "@type": "WebPageElement",
  "isAccessibleForFree": false,
  "cssSelector": ".paywall-block"
}]

Test each page in Google's Rich Results Test and the Schema.org Validator. Then add a robots meta tag with noarchive to stop cached pages from leaking the full content. Do not block crawlers with [robots.txt](/robots-txt/) or noindex – let them see the preview. Finally, build internal links from free content to these premium pages. For example, a free analysis of market trends linking to a [technical SEO audit](/seo-audit/) that is behind the paywall. I have seen traffic to paywalled pages increase by 60% after a month with proper schema and internal linking.

A decision rule I apply: if a paywalled page gets more than 500 organic visits per month with a thin preview, immediately expand the preview to at least 300 words and verify the schema. If conversions stay below 1% after that, gradually reduce the preview length. Counter-argument: some SEOs argue too much preview reduces subscription incentive. I tested that. With a 200-word preview, conversion rates from search traffic held steady; with a 100-word preview, organic traffic dropped 40%. So I prefer a meaningful preview.

Watch-outs

Blocking crawlers entirely is the most common mistake. I see people add noindex or disallow in robots.txt. That prevents indexing. If you have a paywall, let Google see the page. Another watch-out: forgetting the cssSelector or using an incorrect one. The schema needs an exact match for the locked content container. If your CMS adds dynamic classes, use a stable identifier. Thin teasers: if the visible text is just a headline and a sentence, the page will struggle to rank. I recommend at least 200 words of original, substantive text. For a recipe site with a paywall, show the ingredient list, a preparation tip, and a paragraph about the dish – that keeps the page relevant.

Not using noarchive is another trap. Cached pages expose all content even with the correct schema. Add <meta name="robots" content="noarchive">. I once missed this for a client, and their full articles appeared in Google cache for months. JavaScript paywalls need extra care: if the paywall loads via JS, the initial HTML may lack visible content. Use [JavaScript SEO](/javascript-seo/) techniques like server-side rendering or dynamic rendering to ensure the preview is present in the HTML.

Counter-argument: some publishers want to show only a headline and a subscribe button. In my experience, that kills rankings. A 50-word teaser might get a few clicks but not sustainable traffic. I would rather show a summary that gives value and invites subscription.

Edge case: what about hard paywalls with no free preview? Google still indexes the page, but it will rank poorly. I would still include at least a 100-word abstract visible to everyone. Also, be cautious with metered paywalls: the page state changes when the meter kicks in, so mark it as paywalled from the start with isAccessibleForFree false, and keep the preview consistent for both logged-in and logged-out users.

What I got wrong

I used to think paywall SEO meant hiding pages from crawlers. That is backwards. You want Google to see the preview and the paywall markup so it can treat the content as gated, not hidden. I also assumed that metered paywalls did not need structured data because the page starts free. But the moment the meter runs out, the page state changes. If Google indexes the free version, it may later see a hard paywall and be confused. So mark it as paywalled from the beginning with isAccessibleForFree false, and ensure the preview is consistent for all users.

I once forgot the cssSelector in the schema. Google indexed the entire article, and the cached page showed the full text. That defeated the paywall. I had to add the selector and request a recrawl. It took two weeks for the cache to update. Since then, I always verify the selector in the markup. Another mistake: ignoring noarchive. I thought schema alone protected content, but cached pages bypass the paywall. Adding noarchive is simple and effective.

I also overlooked internal linking. I used to think paywalled pages should not be linked to from free pages because it wastes link equity. Actually, linking helps distribute authority and gives users a path to subscribe. I now link to paywalled pages naturally, with a clear label like 'Full report >'. That improved click-through and conversions. Edge case: what about PDF paywalls? If a PDF is behind a paywall, mark the page with paywall schema, not the PDF itself. The page is the gated resource.

I still am not sure about dynamic paywalls that change behaviour based on login status or session. For those, use JavaScript to handle the state, but ensure the initial HTML contains the preview and schema. It is harder to implement and requires careful [technical SEO](/technical-seo/) checks. A few months ago, I worked with a client whose dynamic paywall served a blank page to crawlers because the JavaScript rendered the content. We switched to server-side rendering and saw indexing improve within a week.

Next step

Quick answers

Can I use noindex on paywalled pages?

No, because you want them indexed. Use noarchive instead. If you noindex, the page won't appear in search results at all, killing organic traffic to your premium content. The goal is to have Google index the preview and understand the gated nature via schema.

Does the paywall schema work for Bing too?

Yes. Bing supports the same structured data and recommends noarchive as well. Implement the markup once and both search engines will understand your paywall. Check Bing's Webmaster Blog for specific guidance on subscription content handling.

What if my paywall uses JavaScript?

Ensure the initial HTML sent to the browser contains the preview text and the schema markup. Avoid relying on JavaScript to add the content, because crawlers may not execute it fully. Use server-side rendering or dynamic rendering as described in JavaScript SEO best practices.

Sources

Primary documentation is linked directly. Anything commercial is marked nofollow.

Notes from Callum Bennett.