All projects

Custom-builtFor wltziff.nlPrivacy-first0 trackers

wltziff Analytics

My own analytics, built into this website. It shows who came, what they looked at and what they clicked, without Google, without trackers, without storing a single IP address.

Designed & built by WalterPart of my WordPress theme

wltziff Analytics overview: people, pages opened, pages per person, clicks and page views per day
The real dashboard · test data from my local site
Third-party trackers
0
IP addresses stored
0
Screens
4
Kept for
12months
Built for
1site

The tour

Four screens. Four questions answered.

I didn’t want hundreds of reports I’d never open. Each screen answers one question I actually have about my site.

  1. 01 / 04 · Overview

    How many people came, and is it going up?

    One sentence sums it up (“In the last 30 days, 13 people visited…”), then four numbers in plain words: visitors, pages opened, pages per visitor and clicks, each one compared with the period before. Underneath, every day of the period as a bar, quiet days included.

    • Today, 7, 30, 90 days or 12 months
    • Point at a bar: date, views and people
    • “▲ 12% more than the 30 days before”
    The overview: people, pages opened, pages per person, clicks and page views per day
  2. 02 / 04 · Visitor journeys

    What did each person look at?

    One line per visitor, newest first: their device, where they came from and the pages they opened, in order. Open a line to see every step with its time and the buttons they pressed.

    • Home → AxisNex → About, step by step
    • Repeats fold into “×2”, returns show “came back 2 hours later”
    • Anonymous: “Visitor #7” is a random ID, nothing more
    Visitor journeys: each visitor on one line with the pages they opened in order, one opened with every step
  3. 03 / 04 · Click map

    What do people click?

    The real page, with every clicked button and link outlined in a heat colour and labelled with its rank. Click a line in the list and the page scrolls to that button and pulses it.

    • Red = most clicks, labelled “#2 · 71 clicks”
    • Drawn on the real page, not a distorted copy
    • Hidden or removed buttons are marked, never misplaced
    Click map: the real page with clicked buttons outlined by heat and numbered, with a ranked list
  4. 04 / 04 · Pages, sources & devices

    Which pages work, and where do people come from?

    Pages listed by their real names with a bar for their share, next to where visitors come from and what they browse on. Only pages that are still on the site: deleted ones disappear from every list.

    • “MOOD99”, not /portfolio/projects/mood99/
    • Renamed pages add up under their new name (INPUT ZERO → AxisNex)
    • Deleted pages are left out, no clutter
    Most viewed pages by name with share bars, traffic sources and devices

How it works

From a click to the dashboard.

Everything runs on my own server. A visit travels through five small steps, and nothing ever goes to an outside service.

  1. 01VisitorSays “Accept” to cookiesno answer = not counted
  2. 02TrackerA few lines in the theme’s JSpage views + clicks
  3. 03REST endpointWordPress, on my own serverchecked & cleaned
  4. 04Own databaseOne table, no IP addressesdeleted after 12 months
  5. 05DashboardAn admin page only I can openin plain words

Before & after

The first version worked. Nobody could read it.

Raw addresses, a chart without dates, no way to follow one visitor. So I redesigned it around the questions.

BeforeRaw addresses, plain tables
The first version: raw page addresses, a small chart without dates and plain tables
AfterClear numbers, dated chart
The redesigned overview with explained numbers and a dated chart
  • /portfolio/projects/mood99/MOOD99: real page names
  • Totals onlyEvery number explained and compared
  • A small chart without datesEvery day, dated, details on hover
  • No idea what one person didVisitor journeys, step by step
  • Red dots on a stretched previewClick map on the real page, ranked
  • Old, deleted pages in every listOnly pages that still exist

Privacy first

Six rules it never breaks.

  • Only with consent

    Nothing is counted until a visitor clicks “Accept”. Declining changes nothing else on the site.

  • No IP addresses

    The IP is never written to the database. Visitors are a random ID stored in their own browser.

  • My server, my database

    No Google Analytics, no pixels, no third parties. The data never leaves wltziff.nl.

  • Cleans up after itself

    Everything older than 12 months is deleted automatically.

  • Not counting myself

    Visits while I’m logged in are skipped, so my own testing never skews the numbers.

  • Only what I need

    Pages, clicks, source and device type. No fingerprinting, no profiles, nothing sold.

Behind it

Made by me, for this site only.

My role
Idea, design & development, custom for wltziff.nl
Year
2026
Status
Finished

Why I built it

I wanted to know which projects people look at, how they move through the site and what they click, without sending my visitors to Google or an ad network, and without hundreds of reports I would never open.

What I did

Everything: the tracker, the database table, the REST endpoint and the whole dashboard (overview, pages, visitor journeys and the click map), designed and redesigned until it was clear at a glance.

  • PHP
  • WordPress
  • REST API
  • MySQL
  • Vanilla JS
  • CSS
  • SVG charts

Curious how it’s built?

The full story, the before & after and every screen, on GitHub.

Back to all projects