Loading tutorials…
Loading tutorials…
Webflow Memberships is the cleanest way to gate content on a Webflow site without leaving the platform. This walks the full setup: user accounts, role-based access, paid plans via Stripe, and the integration realities to plan for.
Who this is forWebflow site owners launching a gated-content product — a paid newsletter, online course, community area, or member-only resource library. Up to ~5,000 members works well on Webflow Memberships; past that, evaluate alternatives.
What you'll need
Step 1
Webflow Site Settings → Memberships → Enable. Then define User Groups (Free, Paid, etc.) and Access Groups for content gating.
Webflow Dashboard → your project → Site Settings → Memberships tab.
Click 'Enable Memberships' — this is a one-way toggle once configured. Take 5 minutes to think about your plan structure before enabling.
Choose plan structure: free-only, free + paid, paid-only, multiple paid tiers. Webflow Memberships supports up to 10 plans per project.
Create User Groups: Webflow Designer → Memberships panel (left sidebar) → Access Groups. Add an Access Group for each tier (Free, Paid Monthly, Paid Annual, VIP). Each Group can be assigned to multiple plans.
Note: User Groups are the access-control mechanism. Plans assign users to Groups. Content gates check Group membership, not Plan directly.
Step 2
Site Settings → Memberships → Plans → New Paid Plan. Webflow walks you through Stripe Connect — your Stripe account in your name, not Webflow's.
Site Settings → Memberships → Plans → click 'Add Plan' → choose 'Paid Plan.'
Webflow prompts you to connect a Stripe account via Stripe Connect. This is your business Stripe account, not a Webflow-pooled account — payments flow directly to your bank.
Complete Stripe KYC if not already done (business name, tax ID, bank account). Webflow does not let you go live with paid plans until Stripe verification is complete.
For each paid plan, set: price (one-time or recurring), billing cycle (monthly, quarterly, annual), free trial period (optional), and the Access Group assigned upon successful payment.
Plans go live immediately once Stripe is connected and the project is published. No staging environment for paid plans — test with a real $1 plan, then update price.
Step 3
Webflow auto-generates /log-in, /sign-up, /account, /forgot-password pages. Style them to match your brand and add them to navigation.
Webflow Designer → Pages panel → System Pages. You will see auto-generated pages: Log In, Sign Up, Account, Forgot Password, Reset Password, Update Password.
Style each page to match your brand. The forms inside have specific Webflow Element types (Log In Form, Sign Up Form) that you cannot replace, but you can restyle freely.
Add login/signup links to your global Navbar. For logged-in users, you typically want a different navbar (Profile dropdown, Logout link). Use Conditional Visibility (covered in step 5) to show different nav states.
Customize signup confirmation: Memberships Settings → Email Templates → customize the verification email Webflow sends after signup. Webflow ships a default template — replace the subject line and body with your brand voice.
Webflow does NOT support social login (Google, Apple, Facebook) on Memberships natively. If social login is required, you need to build a workaround via Webflow Logic + a custom auth handler, or use a third-party member tool like Memberstack instead.
Step 4
On any element, Settings panel → Conditional Visibility → show/hide based on User logged-in status and User Group membership.
Click any element on a page. Right sidebar → Element Settings → Conditional Visibility.
Conditions available: 'Visitor is logged in,' 'Visitor is not logged in,' 'Visitor is in Access Group X,' 'Visitor is not in Access Group X.'
Common patterns: free preview of a paid article — show the first 2 paragraphs to everyone, hide the rest behind an 'Access Group = Paid' condition. Below it, show a 'Upgrade to read more' CTA to non-paid users.
Build a member-only page: Page Settings → Access → restrict to specific Access Group(s). Non-members hitting the URL get redirected to a configurable page (typically /sign-up).
Test by viewing the live site in two browsers: one logged in as a Paid user, one logged in as Free. Confirm content shows/hides correctly.
Step 5
Webflow Memberships → Access Groups → User Settings. Add fields for first name, last name, custom attributes (industry, role, etc.).
Webflow Designer → Memberships panel → User Settings → Custom Fields.
Add fields you want to collect at signup: First Name, Last Name, Company, Industry, Role, etc. Each field becomes part of the signup form.
Mark fields as Required or Optional. Required fields gate signup — user must provide them to create an account.
For content gating based on user attributes (e.g., show different content to "Marketing" vs "Sales" roles): unfortunately, Webflow Memberships does not natively support attribute-based Conditional Visibility — only Group-based. For attribute-based gating, you need a custom JavaScript check against the User object in the page.
Update existing user data via Account page — users can edit their own custom fields. As admin you can edit any user's data in Memberships → Users → click user.
Step 6
Stripe Dashboard → Webhooks → add Webflow's webhook endpoint. This is what triggers 'Payment Failed' status to flow back into Webflow.
Webflow handles Stripe webhooks for happy-path events (successful payment, recurring renewal) automatically via Stripe Connect.
For billing-failure scenarios — failed renewal payment, expired card — Webflow tries to retry the payment 3 times over 7 days via Stripe Smart Retries (enabled by default in Stripe).
If retries fail: Webflow moves the user from the paid Access Group to a "Past Due" state (still logged in, but content gated as Free).
Critical: set up an email notification when this happens. Memberships → Email Templates → customize the "Payment Failed" email. By default Webflow sends a generic message. Personalize it with a clear "Update payment method" CTA linking to /account.
Monitor billing failures: Webflow Dashboard → Memberships → Users → filter by status 'Past Due.' Reach out manually if the volume is small. For larger member bases, hook this into HubSpot or Klaviyo via Zapier for automated dunning campaigns.
Step 7
End-to-end: signup as a new user, pay, access gated content, cancel from /account, confirm content re-gates. Run this monthly.
Open an incognito window. Visit /sign-up.
Create a new test user with a real email you control. Fill custom fields.
After verification email, log in. You should be in the Free Access Group by default.
Visit a paid-only page — should redirect or show gated content.
Navigate to /account → Upgrade → select a paid plan → enter Stripe test card 4242 4242 4242 4242 (in test mode) or real card (in live mode, then refund).
After successful payment, you should be moved to the Paid Access Group. Re-visit the paid page — content should now show.
Cancel: /account → Manage Plan → Cancel. Confirm immediate or end-of-period cancellation per your plan settings. Refresh the paid page — should re-gate (immediately for immediate-cancel plans, at period end for end-of-period plans).
All 8 steps pass = system is working. Any failure = debug immediately.
Common mistakes
Enabling Memberships before defining the plan structure
What goes wrong: Memberships is a one-way toggle — once enabled, you cannot easily reverse it without consequences for already-signed-up users. Many sites enable it 'to see how it works,' realize they have the structure wrong, and end up with messy plan/group mappings to clean up.
How to avoid: Before enabling Memberships: write out your plan structure on paper. Define Free, Paid Tier 1, Paid Tier 2 with prices, billing cycles, and content access. Then enable.
Not adding the 5% effective fee into pricing
What goes wrong: You set a $10/mo plan thinking you net $10. Actual net after Webflow's 2% fee + Stripe's 2.9% + 30¢ is ~$9.20. Multiply across 1,000 members and you lose ~$800/mo to fees you didn't account for. Margin shock on launch.
How to avoid: Set prices that account for total ~5% cost. $9.99/mo plan should probably be $10.49 or $10.99 to net the same as the napkin math.
Using element-level Conditional Visibility for sensitive content
What goes wrong: You hide a 'paid PDF' link behind element-level visibility. The URL itself is in the page source HTML — anyone who Views Source can find it and access without paying. Lost revenue, security issue.
How to avoid: For sensitive content (paid PDFs, video URLs, gated data), use Page-level Access on a dedicated download page. Page-level Access hard-redirects unauthorized users at the server level — content is never sent.
No email integration — relying on Webflow default emails
What goes wrong: Webflow's default transactional emails (signup confirm, payment receipt, password reset) come from a Webflow-branded sender and end up in spam frequently. Member experience feels third-rate; signups don't convert.
How to avoid: Memberships → Email Settings → use a custom From address on your verified domain. Or integrate with Klaviyo/HubSpot/Postmark for transactional sends.
Not handling the "Past Due" billing-failure state
What goes wrong: Renewal payment fails. Webflow retries 3x, then moves user to Past Due. User loses access silently. They get one auto-email from Webflow (often in spam). 30 days later they have churned permanently without ever knowing they could just update their card.
How to avoid: Set up a Zapier trigger on "Payment Failed" Webhook → personalized email via your CRM with a clear "Update payment method" link. Follow up at 3, 7, 14 days. Recovers 40-60% of involuntary churn.
Trying to use Webflow Memberships for 10,000+ members
What goes wrong: Webflow Memberships works well up to ~5,000 active members. Past that, the User list panel becomes sluggish, search is slow, bulk operations become painful. The platform was not designed for community-scale.
How to avoid: For 10K+ members, use a dedicated member platform (Memberstack, Outseta, MemberSpace, Circle for communities). Keep Webflow as the marketing-site front end; integrate via embed or single sign-on.
Recap
Done — what's next
Webflow CMS SEO basics — dynamic meta, schema, and sitemap config
Read the next tutorial
Hand it off
A bare-bones Memberships setup is a 4-hour project. A production-grade setup with custom branding, dunning flow, email integration, and Stripe webhook handling is 12-20 hours. A vetted Webflow + Memberships specialist on EverestX ships the production version in one week — typically $400-600 at $14-16/hr.
See specialist rates
Webflow Memberships is native — built into Webflow, simpler setup, included in Site plan, but limited customization. Memberstack is a third-party tool that overlays on Webflow — more flexible (social login, custom auth flows, complex tier rules), but adds $29-99/mo on top of Webflow and requires more setup. For simple paid-content gating, Webflow Memberships wins. For complex member experiences, Memberstack wins.
Yes, via CSV import — Memberships → Users → Import CSV. Webflow accepts email, custom fields, and Access Group assignment. Stripe subscription state cannot be imported — paid members need to re-subscribe through Webflow's Stripe Connect. This makes migration from existing paid platforms painful.
Yes. Plan settings → Free Trial → number of days. Stripe charges $0 during trial, then auto-charges at trial end. Cancel anytime before trial end = no charge. Standard SaaS-style trial flow.
Yes for membership-style access (gated pages with embedded content). No for one-time-purchase digital products with file delivery — for that, use Webflow Ecommerce + a digital-download integration, or a dedicated platform like Gumroad or Lemon Squeezy.
All gated content becomes accessible to everyone. Access Groups are deleted. All user accounts are deactivated. This is destructive and largely irreversible — Webflow keeps user records for compliance but the relationship to Memberships is severed. Treat Memberships enable as a one-way decision.
Yes — you can run both on the same site. Use cases: paid Memberships for ongoing access + Ecommerce for one-time purchases (courses, ebooks, physical goods). Each uses its own Stripe Connect setup, so plan for that complexity.
Webflow
Webflow CMS is one of the best content tools on the market — until you realize your blog posts all share the same generic meta description because no one wired up dynamic SEO fields. This walks the Collection-level SEO setup that fixes it.
Webflow
Webflow Ecommerce is the design-led alternative to Shopify — beautiful checkout, full template control, no theme-bloat. Trade-off: smaller app ecosystem and a 500-SKU sweet spot. This walks the full setup.
Webflow
Webflow Forms work great until you realize submissions are going nowhere — notification email mis-configured, no CRM sync, no tracking event fired. This walks the full setup: form, redirect, tracking, and CRM integration.
Webflow
DIY Webflow is great for the first 6 months — the visual editor really is that good. After that, the math usually flips. This is the honest framework: when self-managing costs more than hiring help.