← Free tools

SITEPULSE · FREE APP · HOST IT YOURSELF

Free website analytics.
See what’s happening now.

One clear dashboard for active browser tabs, page views and traffic sources across your websites. No analytics subscription. Your own Cloudflare account. Your own traffic data.

Free software · No SellerBundle account · Cloudflare free allowances apply

↗ SitePulse.ILLUSTRATIVE PREVIEW

Your websites.
One clear picture.

Active tabs12
Page views248
Websites3

example.com /products/ · Desktop

Example figures, not live customer data.
01 / SEE

Know which pages get read.

Compare page views, referring websites, broad countries and devices. Export popular pages as CSV.

02 / OWN

Keep your dashboard private.

Reports require your private dashboard key. Visitors receive only a small public tracking snippet.

03 / CONTROL

Use less visitor data.

No analytics cookies or persistent visitor identifiers. Query strings are excluded and traffic history is kept for 30 days.

START HERE / ABOUT 15–30 MINUTES

Your domains. Your free app.

Use HTTPS websites you own or have permission to manage. Generate a standalone Worker containing your dashboard and collector. Domain entries stay in this browser; no login or private key is requested here.

One domain per line, up to 25. Root and www versions are recognised. Leave out page paths and query strings.

THE INSTALL / ONE STEP AT A TIME

Install SitePulse on Cloudflare.

  1. Create your Worker

    In your own Cloudflare account, open Workers & Pages and create a Worker named sitepulse-traffic. Open its code editor, replace the starter code with your downloaded sitepulse-worker.js, and deploy. Keep the HTTPS workers.dev address.

  2. Create the traffic database

    Open Storage & databases → D1 and create a database named sitepulse-traffic. In its SQL Console, paste the contents of sitepulse-setup.sql and run it on the new empty database. In your Worker’s Bindings, add that D1 database with the variable name DB. Save and deploy.

  3. Set your private dashboard key

    In Worker Settings → Variables and Secrets, add a Secret named DASHBOARD_KEY. Generate a random value of at least 32 characters in your password manager, save it there, and deploy. Enter it only in your own Cloudflare settings and your own SitePulse dashboard. Never put it in a website snippet, screenshot, URL or support message.

  4. Enable automatic deletion

    Add a Cron Trigger under your Worker’s trigger settings: 17 3 * * *. This schedules daily removal of traffic older than 30 days. Without this trigger, automatic retention cleanup will not run.

  5. Connect your dashboard

    Open your Worker’s HTTPS address. Click Connect or Set up tracking, enter that same Worker address and your saved key, then connect. The key stays in page memory. Reloading or closing the dashboard requires connecting again.

  6. Add the public tracking snippet

    Use the snippet builder below or your dashboard’s Installation guide. Insert the script before </head> in the shared template of each approved website. It should run once per page. Clear any page cache after saving. If your website has analytics consent controls, use its analytics category and verify that declining or withdrawing consent prevents tracking.

  7. Verify a real visit

    Open a public tracked page in a normal browser, then click Refresh traffic in your dashboard. Check that the domain shows Data received and that the correct page path appears. Test a second page. A successful deployment alone does not prove tracking is installed.

WordPress, StackCP, Cloudflare and troubleshooting instructions ↗

Build your tracking snippet.

This public snippet contains no dashboard key. Use the address of the Worker you deployed, not the SellerBundle website.

Your tracking snippet will appear here.

Your entries stay in this page. No account credentials are needed.

What the numbers mean.

Active tabs, not named people

A visible tab seen in the last 150 seconds counts as active. Several tabs can belong to one person. Reloads create new anonymous visits.

Useful traffic, not complete attribution

The app records page paths and referring hostnames. It does not identify customers, capture forms, record sessions, track conversions or report campaign parameters.

Free software with hosting limits

Cloudflare’s free limits are account-wide: 100,000 Worker requests per day; D1 allows 5 million rows read and 100,000 rows written per day, with 5 GB total storage. Heartbeats and dashboard refreshes use requests too.

Limits checked 13 October 2026. Check Workers limits and D1 pricing before enabling a paid plan. Free-tier limits can stop collection or reports until their daily reset.

SitePulse questions, answered.

Is SitePulse really free?

The software is free under the MIT licence and has no SellerBundle analytics subscription. You deploy it in your own Cloudflare account; Cloudflare allowances and any plans you choose still apply.

Can I track several websites?

Yes. Generate a Worker with all your approved domains, then install the matching snippet on each website. To add another website later, regenerate the Worker with the complete list, replace only its code, and preserve your existing DB binding, secret and Cron Trigger.

Does it work with WordPress or StackCP?

It works on public HTTPS pages where you can add a JavaScript script to the shared template. WordPress, static HTML and custom websites can use that approach. A Cloudflare DNS connection alone does not install the script. Platform permissions can restrict script installation.

Do you receive my visitor data?

Your deployed collector sends traffic to your own Cloudflare D1 database. SellerBundle’s setup wizard does not receive your domains, dashboard key or collected traffic. SellerBundle has its own website traffic measurement, described in its privacy notice.

Are cookies or personal details collected?

SitePulse does not set analytics cookies or persistent visitor identifiers. It records page paths, anonymous in-memory tab IDs, referring hostnames, broad device types, countries and timestamps. It does not save raw IP addresses or form contents. Hosting still processes normal connection information. Avoid pages with personal details in their paths; review your site’s privacy and consent setup.

Why do visits differ from another analytics app?

SitePulse measures anonymous tab sessions. Refreshes, multiple tabs, browser blockers, consent choices, Do Not Track, Global Privacy Control and quota limits affect its figures. It does not claim to count unique people.

How do I uninstall it?

Remove the tracking snippet from your templates and clear the website cache. Collection from those pages stops. Remove the Worker and database in your own account only when you are ready to discard the app and its stored traffic.

Keep the useful tools close.

Explore more free tools for your shop, or check the software options for your next stage.

Explore the free toolbox ↗