Content Protection
Content protection is the core feature of PaywallWP Pro. It allows you to restrict access to posts, pages, and custom post types based on subscription levels.
How It Works
- Access Levels — Each piece of content has an access level (0-10)
- Subscription Plans — Each plan grants an access level to subscribers
- Access Check — User's subscription level must meet or exceed content's level
Content Level: 2
User Level: 3
Result: ✅ Access granted (3 >= 2)
Content Level: 5
User Level: 3
Result: ❌ Paywall shown (3 < 5)
Access Levels Explained
| Level | Description | Use Case |
|---|---|---|
| 0 | Public | No restriction, anyone can view |
| 1 | Basic | Entry-level premium content |
| 2-3 | Standard | Mid-tier content |
| 4-5 | Premium | High-value content |
| 6-10 | VIP/Enterprise | Exclusive or specialized content |
Create 2-3 subscription tiers with different access levels. For example:
- Basic Plan: Level 2
- Premium Plan: Level 5
- VIP Plan: Level 10
Protecting Individual Posts
Using the Meta Box
- Edit any post or page
- Find the Content Protection meta box in the sidebar
- Select the Access Level required
- Update/Publish the post
Quick Edit
For bulk changes:
- Go to Posts → All Posts
- Hover over a post and click Quick Edit
- Set the Access Level
- Click Update
Protecting Post Types
Enable protection for different content types:
- Go to PaywallWP → Settings → Content
- Under Protected Post Types, enable:
- Posts
- Pages
- Custom post types (if available)
- Save Settings
Excluding Content
Exclude by Category
Always keep certain categories public:
- Go to PaywallWP → Settings → Content
- Under Exclude Categories, select categories to exclude
- Posts in these categories will always be public
Exclude Individual Posts
Set access level to 0 on any post to make it public.
Paywall Display
When a user can't access content, they see:
- Excerpt — A preview of the content
- Blur Effect — Remaining content is blurred
- Paywall Message — Customizable call-to-action
- Subscribe Button — Links to pricing page or opens checkout
- Login Link — For existing members
Customizing the Paywall
Go to PaywallWP → Settings → General:
| Setting | Description |
|---|---|
| Paywall Title | Headline (e.g., "Premium Content") |
| Paywall Message | Description text |
| Button Text | Subscribe button label |
| Excerpt Length | Words shown before paywall |
| Blur Intensity | 0-20 (0 = no blur) |
Partial Content Protection
Use shortcodes to protect specific sections within a post:
Protected Section
[paywp_protected level="2"]
This content is only visible to users with access level 2 or higher.
[/paywp_protected]
Users without access see a message prompting them to subscribe.
Member-Only Section
[paywp_member]
This content is completely hidden from non-members.
No message or subscribe prompt is shown.
[/paywp_member]
See Shortcodes Reference for all options.
Administrator Access
Administrators always have access to all content, regardless of access level. This allows you to:
- Preview protected content
- Test the paywall appearance
- Manage content without restrictions
To test as a non-admin:
- Use an incognito browser window
- Create a test subscriber account
- Use browser tools to log out
SEO Considerations
Search Engine Indexing
By default, search engines see your protected content to enable indexing. This is important for SEO but controlled by settings:
- Go to PaywallWP → Settings → Content
- Configure SEO Bot Access:
- Show Full Content — Search engines see everything
- Show Excerpt Only — Search engines see preview only
Schema Markup
PaywallWP Pro adds appropriate schema markup for paywalled content:
{
"@type": "WebPage",
"isAccessibleForFree": false,
"hasPart": {
"@type": "WebPageElement",
"isAccessibleForFree": false,
"cssSelector": ".paywall-content"
}
}
This tells Google the content is behind a paywall, following their guidelines.
Caching Compatibility
If you use a caching plugin, protected content might be cached incorrectly:
Enable Cache Compatibility
- Go to PaywallWP → Settings → Advanced
- Enable Cache Compatibility Mode
- Clear your cache
This loads protection via AJAX, bypassing cached pages.
Exclude from Cache
Alternatively, configure your caching plugin to exclude:
- Pages with logged-in users
- Pages with specific cookies (
paywp_*)
Best Practices
Content Strategy
- Teaser Content — Give enough preview to entice
- Clear Value — Make premium value obvious
- Consistent Levels — Use levels consistently across content
- Free Samples — Keep some content free to build trust
Technical Tips
- Test Regularly — Check paywall appearance in incognito
- Monitor Analytics — Track conversion from paywall
- Clear Cache — After changing settings, clear cache
- Mobile Testing — Verify paywall works on mobile
Troubleshooting
Content Not Protected
- Verify access level is greater than 0
- Check post type is enabled in settings
- Clear cache if using caching plugin
- Ensure you're not logged in as admin
Paywall Not Showing
- Check you're testing as a non-admin user
- Verify the protection settings are saved
- Enable cache compatibility mode
- Check for JavaScript errors in console
Protected Content Visible
- Enable cache compatibility mode
- Clear all caches (page, object, CDN)
- Check your CDN isn't caching protected pages
Next Steps
- Subscription Plans — Create plans with access levels
- Metered Access — Allow free articles
- Shortcodes Reference — Partial content protection