Membership for Your Own Site: Roles, Content Gating, and Paid Tiers
1. WordPress roles: what ships out of the box isn’t enough
WordPress has 6 default roles: Subscriber, Contributor, Author, Editor, Administrator, Super Admin. This system is meant for internal teams, not for building memberships for outside visitors.
Outside visitors who register get the Subscriber role by default and can’t do anything but change their password. To let registered users see exclusive content, you have to add custom roles: Free Member (sees every blog post) and Paid Member (sees paid content). Build this extension with a plugin, don’t write it into functions.php yourself, or you’ll lose it the next time you update your theme.
Decision framework: if your only two visitor types are “reads content” and “manages the site,” the default roles are enough. If you have paid content, exclusive downloads, or client quotes, you must add custom roles. B2B sites selling overseas commonly use three tiers: visitor, registered member (leaves an email), paid member (annual subscription). For how to write your trust page, see Trust pages and AI credibility.
| Role | Default capability | Membership extension | Who it covers |
|---|---|---|---|
| Visitor (not logged in) | Sees public content | Sees headline + first two paragraphs, rest locked | Source of SEO traffic |
| Subscriber | Changes own password | Upgraded to Free Member | Visitor who registers and leaves an email |
| Free Member (custom) | None | Sees every blog post + basic downloads | Lead who left an email |
| Paid Member (custom) | None | Sees paid content + tools + community | Paying subscriber |
| Author/Editor | Writes/manages posts | Leave as is, internal use | You and your editors |
| Administrator | Manages the whole site | Leave as is | Yourself |
2. Content gating: three ways to lock, pick by conversion goal
The core of a membership system is deciding “what content goes to whom.” Each of the three protection models fits a different use case. First, fully private: the whole article is locked until login, good for white papers and industry reports. Second, partially visible: show the title and first two paragraphs, then block the rest with “Log in to read the full article.” This works well for blogs, because Google can crawl the content for SEO while users register to finish reading. Third, content drip: unlock chapter one on day 1 after signup, chapter two on day 3, and so on, good for tutorial series.
How to implement partial visibility: add a “more” tag to the article. Everything before the tag stays public; everything after it goes inside the shortcode [memb]. Logged-out users see a blurred overlay with a “Sign up free to read the full article” button. This approach is the most SEO-friendly, since Google can crawl the first two paragraphs for indexing. To learn how to keep a landing page from being flagged as a doorway page, see Build landing pages by country.
Example: you run a SaaS company going global and you’ve written a “2026 SaaS Pricing Benchmark Report.” Make the first two paragraphs public (data sources and sample size), lock the middle tables and conclusions, and let registered free members read the full report. Paid members can download the raw Excel data. Google indexes your keywords, visitors read the first two paragraphs and see real value, and your signup rate lands between 5% and 8%. To learn how to build a white paper, see White Papers from Scratch.
| Protection model | SEO friendliness | Conversion strength | Best for |
|---|---|---|---|
| Fully private | Low (not indexed) | High | White papers, reports, tools |
| Partially visible (teaser) | High (first two paragraphs indexed) | Medium | Blog posts, tutorials |
| Content drip | Medium | Medium-high | Course series, serialized tutorials |
| Visible by role | High | Low | Customer-only price lists |
| Visible by time | High | Low | Auto-unpublish when membership expires |
3. Paid memberships: choosing a plugin and setting your price
There are three main WordPress plugins for paid memberships: MemberPress (the most full-featured, with content drip, membership tiers, and coupons, from $149 per year), Restrict Content Pro (lightweight, $99 per year, good for simple subscriptions), and WooCommerce Memberships (tightly tied to WooCommerce, but weak membership management logic, not recommended). Pick one of the first two, not the third.
Pricing makes or breaks a membership business. The sweet spot for B2B content memberships is $19 to $49 per month. Below $9, users assume “this cheap, the content can’t be any good.” Above $99, conversion drops sharply. Offering 20% off for annual billing is standard: $29 per month, or $279 per year (about $23.25 per month). Aim for an annual plan share above 60%, because annual subscribers renew at 3 times the rate of monthly ones, since switching costs are higher.
A counterintuitive take:The less you give away in the free tier, the higher your paid conversion. Many site owners worry that locking content will drive users away, so they leave 80% of it free. The result: free users make up 90% of traffic, paying users see roughly the same content as everyone else, decide it isn’t worth it, and renewal rates fall to 30%. The right split is 30% free content to bring people in and 70% paid content to deliver value. When paying users open their dashboard and see “this is mine alone,” they’re far more likely to renew.
| Plugins | Annual | Content drip | Best for |
|---|---|---|---|
| MemberPress | From $149 | Native support | Monthly revenue over $5,000 |
| Restrict Content Pro | From $99 | Paid add-on support | Monthly revenue $1,000 to $5,000 |
| WooCommerce Memberships | $149 | Weak | Stores already on WooCommerce |
| Paid Memberships Pro | Free version available | Free version supported | Just starting out and testing |
| Custom code | 0 | Build it yourself | Teams with development resources |
4. Payments and renewals: connect with WooCommerce
Your paid membership payment flow needs to connect to Stripe or PayPal. MemberPress and RCP both support these two gateways natively, with no extra code required. The key is configuring webhooks: when a Stripe payment succeeds, automatically upgrade the user to the Paid Member role; when a renewal fails, automatically downgrade them back to Free Member and trigger a win-back email. To learn how to set up webhooks, see Standalone site API integration.
Failed renewals are the biggest source of leakage in any membership business. Expired cards, bank risk checks, and users canceling on their own all cause renewals to fail. The standard approach: send the first reminder email the day the renewal fails, a second after 3 days, a third after 7 days, and automatically cancel the membership after 14 days. This cadence can recover 20% to 30% of failed payments. To learn how to design the email follow-up sequence, see Inquiry Email Follow-Up Sequence.
Example: a paid membership at $29 per month with 200 active members brings in about $5,800 a month. Roughly 8% of renewals fail each month, meaning 16 people can’t pay. With no reminders, those 16 are lost outright, costing $464 a month. With three reminder emails recovering 30%, you collect an extra $145 a month, or $1,740 a year.
| Stage | Trigger time | Action | Expected recovery rate |
|---|---|---|---|
| First failure | Day of failed payment | Send a reminder email with a card-update link | 10%–15% |
| Second reminder | Day 3 | Emphasize that the membership is about to pause | Adds another 5% to 8% |
| Third reminder | Day 7 | Limited-time retention discount (renew at 10% off) | Adds another 3% to 5% |
| Downgrade | Day 14 | Downgrade to Free Member, content goes offline | — |
| Win-back | 30 days after downgrade | Send a “we miss you” return offer | Adds another 2% to 3% |
5. Compliance and data: GDPR and member data
A membership system collects user emails, company names, and payment information, all of which fall under GDPR. Your signup page must have: a privacy policy link, a cookie consent banner, and an “agree to receive emails” checkbox (unchecked by default). Don’t store payment information in your own database. Let Stripe or PayPal handle it and store only the customer ID. To learn how to build your compliance foundation, see Compliance foundation for global sites.
Back up your member data regularly. Member roles, subscription statuses, and payment records all live in the WordPress database, and if the database goes down, they’re gone. Do a full backup at least once a week and store it off-site. To learn how to rehearse a backup restore, see Backup and recovery drills for your site. One more thing people overlook: when a user closes their account, you need to be able to delete all their data (GDPR right to erasure). MemberPress and RCP both have this feature, but it’s off by default, so you have to turn it on manually.
| Compliance item | Requirement | Implementation method |
|---|---|---|
| Privacy policy link | Required at the bottom of the signup page | Added automatically by the plugin |
| Cookie consent | Show a banner on first visit | CookieYes / Cookiebot |
| Email opt-in default | Unchecked by default | Turn off in form settings |
| Credit card storage | Don’t store in your own database | Use the Stripe Customer ID |
| Account deletion | Users can delete their own accounts | Turn on in plugin settings |
| Data export | Users can download their own data | Built into WordPress |
FAQ
Can’t I just use WordPress’s built-in Subscriber role to run a membership site?
How much content should I lock, all of it or none of it?
What’s a reasonable price for a paid membership?
How do I choose between MemberPress and Restrict Content Pro?
What happens if a renewal payment fails? Will members be dropped automatically?
What GDPR requirements apply to a membership site?
Final thoughts
A membership site isn’t “install a plugin and you’re done.” The core is content tiering: what’s free to draw people in, what you keep behind the paywall, and how to give free users a reason to upgrade. The technical side is the easy part — install MemberPress or RCP, connect Stripe, and you’re up and running in an afternoon. The hard part is consistently producing content that paying users are willing to pay for.
Three steps to launch: plan your content ratio around three roles (visitor / free / paid), with 30% free and 70% paid; pick MemberPress or RCP and connect Stripe at $29 a month or $279 a year; set up the three renewal-failure reminder emails to recover 30% of the 8% monthly failure rate.
One line worth remembering: a membership isn’t “lock up your content and charge for it” — it’s “let free users see the value, and make paying users feel they get something exclusive.” Get the ratio wrong and you please no one.
