Skip to main content

PBJ Analytics Changelog (v1.3.0): From Pageviews to Full Behavioral Analytics

PBJ Analytics is our self-contained, privacy-friendly website analytics plugin. It records pageviews, referrers, unique visitors, custom events, and device/browser/country breakdowns entirely inside your own WordPress database — no Google Analytics, no third-party services, no cookies. Here’s everything that has shipped so far.

Version 1.3.0

  • White-label mode for anonymous or client sites (off by default). Enable with the pbj_analytics_whitelabel filter: the tracking beacon is inlined under a neutral site-metrics handle and SiteMetrics global, public REST endpoints get a neutral metrics/v1 alias, and the event opt-in attribute becomes data-track-event — so no plugin-named URL, script ID, or variable appears anywhere in the page source. Tracking behavior is otherwise identical, and both branded and neutral endpoints keep collecting.

Version 1.2.1

  • Fixed “Avg. time on site” always reading 00:00. Engagement was only computed from the raw hits table when it spanned the entire selected date range — otherwise a fallback hard-coded the average to zero, which fired on virtually every install. Engagement, bounce rate, and pages-per-session are now always computed from whatever portion of the range the raw data covers.

Version 1.2.0 — the big analytics release

A major expansion that took PBJ Analytics from pageview counting to full behavioral analytics:

  • Sessions & journeys: 30-minute sliding-window sessions, top navigation paths (A → B), entry pages, and exit pages.
  • Engagement: time on page via an end-of-page beacon, scroll-depth milestones (25/50/75/100%), and new-vs-returning visitors — still cookieless.
  • Acquisition: full referrer URLs, UTM parameter capture, server-side channel classification (Direct / Organic / Paid / Social / Email / Referral), and a search-engine breakdown.
  • Conversion: configurable funnels with cumulative session counts and conversion percentages, plus goals counted from event labels.
  • New dimensions: internal site search queries, outbound clicks, 404 tracking, region and city, language, screen-size buckets, and per-author/per-category breakdowns.
  • Dashboard: per-page drill-down (referrers, channels, countries, devices, time, scroll for any URL), a live last-5-minutes panel, period-vs-period deltas on every KPI, and CSV export on the major tables.
  • Reporting: optional weekly HTML email digest and an optional tokenized public read-only dashboard.
  • Bots: per-bot URL lists — see exactly what GPTBot, ClaudeBot, and Googlebot are fetching, including their 404s.
  • Schema upgraded to database version 3 with automatic migration, plus a new engagement REST endpoint.

Version 1.1.0

  • Bot & AI-crawler analytics. Bots tracked separately from human traffic, recorded server-side since most crawlers don’t run JavaScript, split into AI crawlers / search engines / other bots with a new dashboard section. A “Track bots” setting (on by default) controls it.
  • Fixed dashboard charts rendering far too tall; added the bot_category column (database version 2, migrated automatically).

Version 1.0.0

  • Initial release: pageviews, referrers, cookieless unique visitors (daily-rotated salted hash — no personal identifiers stored), custom events, device/browser/country breakdowns, a charted admin dashboard, configurable data retention, and a self-hosted updater.
July 4, 2026

PBJ Analytics is our self-contained, privacy-friendly website analytics plugin. It records pageviews, referrers, unique visitors, custom events, and device/browser/country breakdowns entirely inside your own WordPress database — no Google Analytics, no third-party services, no cookies. Here’s everything that has shipped so far.

Version 1.3.0

  • White-label mode for anonymous or client sites (off by default). Enable with the pbj_analytics_whitelabel filter: the tracking beacon is inlined under a neutral site-metrics handle and SiteMetrics global, public REST endpoints get a neutral metrics/v1 alias, and the event opt-in attribute becomes data-track-event — so no plugin-named URL, script ID, or variable appears anywhere in the page source. Tracking behavior is otherwise identical, and both branded and neutral endpoints keep collecting.

Version 1.2.1

  • Fixed “Avg. time on site” always reading 00:00. Engagement was only computed from the raw hits table when it spanned the entire selected date range — otherwise a fallback hard-coded the average to zero, which fired on virtually every install. Engagement, bounce rate, and pages-per-session are now always computed from whatever portion of the range the raw data covers.

Version 1.2.0 — the big analytics release

A major expansion that took PBJ Analytics from pageview counting to full behavioral analytics:

  • Sessions & journeys: 30-minute sliding-window sessions, top navigation paths (A → B), entry pages, and exit pages.
  • Engagement: time on page via an end-of-page beacon, scroll-depth milestones (25/50/75/100%), and new-vs-returning visitors — still cookieless.
  • Acquisition: full referrer URLs, UTM parameter capture, server-side channel classification (Direct / Organic / Paid / Social / Email / Referral), and a search-engine breakdown.
  • Conversion: configurable funnels with cumulative session counts and conversion percentages, plus goals counted from event labels.
  • New dimensions: internal site search queries, outbound clicks, 404 tracking, region and city, language, screen-size buckets, and per-author/per-category breakdowns.
  • Dashboard: per-page drill-down (referrers, channels, countries, devices, time, scroll for any URL), a live last-5-minutes panel, period-vs-period deltas on every KPI, and CSV export on the major tables.
  • Reporting: optional weekly HTML email digest and an optional tokenized public read-only dashboard.
  • Bots: per-bot URL lists — see exactly what GPTBot, ClaudeBot, and Googlebot are fetching, including their 404s.
  • Schema upgraded to database version 3 with automatic migration, plus a new engagement REST endpoint.

Version 1.1.0

  • Bot & AI-crawler analytics. Bots tracked separately from human traffic, recorded server-side since most crawlers don’t run JavaScript, split into AI crawlers / search engines / other bots with a new dashboard section. A “Track bots” setting (on by default) controls it.
  • Fixed dashboard charts rendering far too tall; added the bot_category column (database version 2, migrated automatically).

Version 1.0.0

  • Initial release: pageviews, referrers, cookieless unique visitors (daily-rotated salted hash — no personal identifiers stored), custom events, device/browser/country breakdowns, a charted admin dashboard, configurable data retention, and a self-hosted updater.

Latest Articles