Self-hosting

Cloudflare free plan and analytics: what fits

Ownlytics team · · 6 min read

Our docs say Cloudflare's free plan comfortably handles self-hosted Ownlytics for sites up to roughly 20,000 pageviews a day across all your websites. Past that, or if your database nears its size cap, the $5 Workers Paid plan is the next step. Cloudflare sets its own limits and can change them, so check Cloudflare's current pricing page before you plan around any number below.

yourapp.comToday7d30d9 online
Visitors3,619+42.1%
Revenue$2,226+67.0%
Conversion0.41%+8.4%
Revenue/visitor$0.11+17.6%
1.4k7000
SourceVisitorsSalesRevenue
Xx.com6,2479$441
Ggoogle.com4,43314$686
@newsletter1,1307$343
Ynews.ycombinator.com2,0153$147
Cchatgpt.com1,4114$196
↗Direct · typed or bookmark1,2092$98

Fig.A small site on a free Cloudflare plan. Sample data, not a real site.

What does the Cloudflare free plan limit?

Ownlytics self-hosted uses a Worker (dashboard, API and tracking) and a D1 database, both in your account. Cloudflare bills you directly, not us. The limits listed in our docs at the time of writing are:

FreeWorkers Paid ($5/month)
Worker requests100,000 a day10 million a month included, then $0.30 per million
D1 rows read5 million a day25 billion a month included
D1 rows written100,000 a day50 million a month included
Database size500 MB per database10 GB per database

Treat this as a snapshot, not a promise. Cloudflare's pricing page is the source of truth.

What counts toward those limits?

More than pageviews. The things that use your allowance:

Our docs state the 20,000 pageviews a day figure as a rule of thumb rather than the raw 100,000 requests in the table, and the extras above all draw on the same allowance. Treat it as a rough guide, not a guarantee.

What happens if you go over?

On the free plan, requests above the daily limit fail until midnight UTC. For analytics that means you lose tracking for the rest of that day. Events that arrive while requests are failing are not recorded, so the gap in your data stays a gap.

That is the real risk, and it is why we suggest moving up before a big day rather than after. If you are planning a launch, a newsletter feature or anything that could multiply your traffic, treat the paid plan as insurance. Upgrading is one click in the Cloudflare dashboard under Workers & Pages, then Plans. Nothing changes in Ownlytics.

Example (made-up numbers for illustration)

Imagine a founder with two sites averaging 4,000 and 2,500 pageviews a day. That is 6,500 pageviews against a comfort ceiling of roughly 20,000. She has about three times headroom.

Now she is featured somewhere and one day sees 45,000 pageviews. That one day is more than twice the comfort ceiling. Depending on tab-open time and everything else running, it could cross the daily request limit and cut tracking for the rest of the day. If she had expected the feature, switching to the $5 plan the day before costs $5 for the month.

Note the shape of that decision. The monthly cost is small; the cost of a missed launch day in your data is what you are really buying off.

How do you keep the database small?

The free plan caps a database at 500 MB. Two controls help:

  1. Data retention. Under Settings, then Data, you choose how long to keep events, sessions and bot traffic: 30, 90 or 180 days, one to three years, or forever (the default). Payments and their attribution are never removed by retention. See data retention.
  2. Watch the size. The same page shows the database size and approximate row counts.

Cleanup runs once a day in small batches so it stays inside the free plan's limits. A big first cleanup simply finishes over a few minutes.

If you ever hit the cap, you will probably prefer raising the plan to deleting history you wanted. But if raw traffic older than a year is not useful to you, a shorter retention window is free.

When the free plan is the wrong choice

Be honest about these cases:

For how the pieces fit together, read self-hosted analytics on Cloudflare Workers, explained. For the money side, see one-time vs monthly analytics cost over three years.

At a glance

QuestionShort answer
Comfort ceiling on freeAbout 20,000 pageviews a day, all sites combined
What fails over the limitRequests, until midnight UTC
Upgrade cost$5/month, paid to Cloudflare
Upgrade effortOne click in Cloudflare, nothing changes in Ownlytics
Database cap on free500 MB per database
Where to check current limitsCloudflare's pricing page

You can see what your install would be tracking by browsing the live demo.

FAQ

Can I run self-hosted analytics on Cloudflare's free plan?

Yes, for most small sites. Our docs say roughly 20,000 pageviews a day across all websites fits comfortably. Check Cloudflare's current limits, since they are Cloudflare's to change.

What happens when I exceed the free limit?

Requests over the daily limit fail until midnight UTC, so tracking stops for the rest of that day.

Do I need a credit card for Cloudflare?

Our install docs say a Cloudflare account on the free plan is fine and that signing up needs no card. Check Cloudflare's sign-up flow for its current requirements.

Does it cost more if I track several websites?

One Ownlytics install tracks unlimited websites. Cloudflare's limits apply to the install as a whole, so more busy sites use up the same daily allowance sooner.

See the live demo · View pricing

Keep reading