Paywall Hosting

Paywall hosting that still caches the article.

A metered paywall has to count what each reader has already seen without turning every article into an uncacheable page. Those two requirements together are what make it a hosting problem.

Meter evaluated at the edgeArticles stay cacheableFree migration
Edge-evaluated meteringEntitlement-varied cacheSubscriber session tuningDaily backupsFree SSL24/7 support
Built for metered access

Everything a paywall asks of a host.

Three audiences read the same URL — anonymous, metered and subscribed — and only one of them can be sent the full article.

The meter runs before WordPress does

The free-article count is read and incremented at the edge, so an anonymous reader's third article of the month is decided in a few milliseconds rather than by booting WordPress to ask.

Counted at the edgeNo origin request

Articles still come from cache

Rather than marking every article uncacheable, the cache key carries an entitlement class, so each piece is stored once per access tier instead of once per reader.

Vary on entitlementNot per-visitor

Subscriber sessions that hold under load

Signed-in entitlement lookups run against the object cache, so a spike on a free article does not slow the site down for the people who are actually paying for it.

The full text is not in the page

Gated content is withheld at the server rather than hidden with styling, so the paywall is not defeated by opening the page source or disabling JavaScript.

Conversions recorded reliably

Subscription signups and upgrades bypass cache entirely and get their own write capacity, because they arrive inside the same spike as the article that prompted them.

Operations

See who is hitting the wall.

A metered paywall is a tuning exercise: set it too tight and you lose the traffic, too loose and nobody subscribes. That decision needs numbers rather than an instinct.

  • Meter hits and conversion rate
  • Cache hit ratio by entitlement tier
  • One-click admin login for the editorial team
  • Restore any daily backup from the dashboard
Meter evaluations
At the edge
1.2M today
Article cache
Varied by tier
94% hit
Subscriber lookups
Object-cached
healthy
Nightly backup
Replicated offsite
running
Performance

An article three readers see differently.

The naive implementation makes every article dynamic and the publication collapses under its own paywall. Varying the cache instead keeps almost all of it cacheable.

3
entitlement tiers, not one per reader
Edge
meter evaluation
NVMe
storage on every plan
MagicWP70 ms
Typical shared host880 ms
Untuned VPS340 ms

Illustrative comparison of an article served to a metered reader. Your numbers depend on tier count and article weight.

Configuration

What we change for a metered paywall

These are the settings that differ from a standard WordPress site on the same plan. Each follows from one URL having to produce different content for different readers without becoming uncacheable.

SettingWhat we doWhy
Cache keyCarries an entitlement class rather than a session identifierKeying on the reader turns the cache into a per-visitor store with a hit rate near zero; keying on the tier keeps three copies of an article rather than a hundred thousand.
Meter countingEvaluated and incremented at the edgeAsking WordPress how many articles somebody has read makes the paywall itself the slowest component of the page it is protecting.
Gated contentWithheld server-side, never sent and then hiddenA paywall implemented in styling is one keystroke from being bypassed, and the full text sits in the HTML for anybody scraping the site.
Entitlement lookupsHeld in the object cache with a short lifetimeEntitlement is checked on every single request a subscriber makes, which makes it the most repeated query on the whole publication.
Signup endpointsUncached with dedicated write capacityConversions arrive inside the same spike as the article that caused them, which is precisely when write capacity is scarcest.
Plans

Simple, transparent pricing.

Every plan includes free migration, daily backups, SSL and 24/7 support.

MonthlyYearly 2 months free
Starter
For personal sites, blogs, and portfolios.
$20/mo
  • 1 WordPress site
  • 10 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Support tickets
Start free trial
Pro★ Most popular
For growing businesses and busy stores.
$80/mo
  • 5 WordPress sites
  • 50 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Priority support tickets
Start free trial
Enterprise
For agencies and high-traffic platforms.
$250/mo
  • 20 WordPress sites
  • 200 GB NVMe disk
  • Free SSL
  • Daily backups
  • One-click deployment
  • Dedicated support
Start free trial
FAQ

Questions, answered.

Does a paywall stop the site being cached?
Not if the cache varies on entitlement rather than on the individual reader. An article is stored once per access tier, so the overwhelming majority of requests are still answered from cache.
Where is the free-article count kept?
At the edge, in the reader's own request context, so it is evaluated without an origin request at all. WordPress only becomes involved once somebody has actually hit the wall.
Can readers get past the wall by clearing cookies?
Some will, and no client-side meter prevents that entirely. What matters is that the gated text is never sent to the browser in the first place, so the article cannot simply be read out of the page source.
Do you support the common membership plugins?
Yes. The plugin decides who is entitled to what; the platform makes that decision cheap by evaluating the meter at the edge and caching by tier rather than by person.
What happens during a spike on a free article?
Free articles are the most cacheable thing you publish, so a spike on one is largely absorbed at the edge, and entitlement lookups keep running against a cache the spike never touches.

Move your publication to a host that caches behind the wall.

Free migration, metering at the edge, and articles that stay cacheable for every tier.