{"id":311938,"date":"2026-05-16T07:49:22","date_gmt":"2026-05-16T07:49:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/statnive-simple-real-time-privacy-first-web-analytics\/"},"modified":"2026-05-16T07:49:00","modified_gmt":"2026-05-16T07:49:00","slug":"statnive","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/statnive\/","author":13161168,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.13","stable_tag":"0.4.13","tested":"6.9.4","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"Statnive \u2013 Simple, Real-time, Privacy-first Web Analytics","header_author":"Statnive","header_description":"Simple stats, clear decisions. Privacy-first analytics for WordPress.","assets_banners_color":"4d5e6d","last_updated":"2026-05-16 07:49:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/statnive\/statnive","header_author_uri":"https:\/\/statnive.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.13":{"tag":"0.4.13","author":"parhumm","date":"2026-05-16 07:49:00"}},"upgrade_notice":{"0.4.7":"<p>First public release on WordPress.org.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3533625,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3533625,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3533625,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3533625,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.13"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3533625,"resolution":"1","location":"assets","locale":"","width":3088,"height":1736},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3533625,"resolution":"2","location":"assets","locale":"","width":3088,"height":1736},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3533625,"resolution":"3","location":"assets","locale":"","width":3088,"height":1736},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3533625,"resolution":"4","location":"assets","locale":"","width":3088,"height":1736},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3533625,"resolution":"5","location":"assets","locale":"","width":3088,"height":1736},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3533625,"resolution":"6","location":"assets","locale":"","width":3088,"height":1736},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3533625,"resolution":"7","location":"assets","locale":"","width":3088,"height":1736},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3533625,"resolution":"8","location":"assets","locale":"","width":3088,"height":1736}},"screenshots":{"1":"Know your traffic at a glance \u2014 visitors, sessions, pageviews and trends that matter","2":"Find what's actually driving results \u2014 top sources and top pages side by side","3":"Every page, ranked by what matters \u2014 search, sort, find your best content","4":"See where visitors arrive and leave \u2014 entry and exit pages side by side","5":"Understand where your traffic comes from \u2014 referral, direct, organic, social, AI","6":"Desktop, mobile, bots \u2014 device, browser and OS breakdowns in one view","7":"Reach across languages and regions \u2014 see which languages your visitors speak","8":"Watch your site breathe in real time \u2014 active visitors and live pageviews"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[232,20315,131785,396,521],"plugin_category":[36,54],"plugin_contributors":[241404],"plugin_business_model":[],"class_list":["post-311938","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-cookieless","plugin_tags-gdpr","plugin_tags-privacy","plugin_tags-statistics","plugin_category-analytics","plugin_category-security-and-spam-protection","plugin_contributors-parhumm","plugin_committers-parhumm"],"banners":{"banner":"https:\/\/ps.w.org\/statnive\/assets\/banner-772x250.jpg?rev=3533625","banner_2x":"https:\/\/ps.w.org\/statnive\/assets\/banner-1544x500.jpg?rev=3533625","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/statnive\/assets\/icon-128x128.png?rev=3533625","icon_2x":"https:\/\/ps.w.org\/statnive\/assets\/icon-256x256.png?rev=3533625","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-1.png?rev=3533625","caption":"Know your traffic at a glance \u2014 visitors, sessions, pageviews and trends that matter"},{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-2.png?rev=3533625","caption":"Find what's actually driving results \u2014 top sources and top pages side by side"},{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-3.png?rev=3533625","caption":"Every page, ranked by what matters \u2014 search, sort, find your best content"},{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-4.png?rev=3533625","caption":"See where visitors arrive and leave \u2014 entry and exit pages side by side"},{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-5.png?rev=3533625","caption":"Understand where your traffic comes from \u2014 referral, direct, organic, social, AI"},{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-6.png?rev=3533625","caption":"Desktop, mobile, bots \u2014 device, browser and OS breakdowns in one view"},{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-7.png?rev=3533625","caption":"Reach across languages and regions \u2014 see which languages your visitors speak"},{"src":"https:\/\/ps.w.org\/statnive\/assets\/screenshot-8.png?rev=3533625","caption":"Watch your site breathe in real time \u2014 active visitors and live pageviews"}],"raw_content":"<!--section=description-->\n<p><strong>The privacy-first analytics plugin for WordPress.<\/strong><\/p>\n\n<p>See exactly who visits your site, where they come from, and what they do \u2014 without cookies, third-party trackers, or sending visitor data to anyone. All analytics live in your own WordPress database.<\/p>\n\n<p>Open source under GPLv2. Self-hosted in your own database \u2014 nothing ever leaves your server.<\/p>\n\n<p>Install, activate, open Statnive \u2014 your dashboard fills up within minutes. No tracking code to paste, no account to create.<\/p>\n\n<h4>Why Statnive?<\/h4>\n\n<ul>\n<li><strong>No cookies. No fingerprinting. No third-party transfers.<\/strong> Designed to support GDPR, CCPA, and APPI compliance.<\/li>\n<li><strong>Honors GPC and DNT<\/strong> server-side, integrates with the WordPress Consent API.<\/li>\n<li><strong>Daily-rotating salted hashes<\/strong> \u2014 cross-day and cross-site tracking are mathematically impossible.<\/li>\n<li><strong>Eight focused dashboard pages.<\/strong> No clutter, no upsells.<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Real-time<\/strong> \u2014 Active visitor count, active pages, live pageview feed.<\/li>\n<li><strong>Smart channel grouping<\/strong> \u2014 Direct, Organic Search, Social Media, Email, Referral, Paid Search, Paid Social, and a dedicated <strong>AI Assistants<\/strong> channel for ChatGPT, Claude, Gemini, Perplexity, Copilot, NotebookLM, Meta AI, Le Chat, Deepseek, You, iAsk, Jasper, and Writesonic.<\/li>\n<li><strong>Custom events + engagement<\/strong> \u2014 Link clicks (and tagged button clicks via <code>statnive-event-*<\/code> classes), form submissions, downloads, outbound links, time on page, scroll depth.<\/li>\n<li><strong>Bot vs human separation<\/strong> \u2014 Real visitors and automated traffic in distinct buckets.<\/li>\n<li><strong>Geography in tiers<\/strong> \u2014 Zero-config timezone country mapping; optional CDN headers; optional one-click DB-IP city download (free); optional MaxMind GeoLite2.<\/li>\n<li><strong>Configurable retention<\/strong> \u2014 30 \/ 90 \/ 180 \/ 365 days, or Forever. Daily WP-Cron purge.<\/li>\n<li><strong>WordPress Privacy API<\/strong> \u2014 Personal-data export and erase registered automatically.<\/li>\n<li><strong>WP-CLI<\/strong> \u2014 <code>wp statnive cron run<\/code> for sites with <code>DISABLE_WP_CRON<\/code>.<\/li>\n<\/ul>\n\n<p>Source code at <a href=\"https:\/\/github.com\/statnive\/statnive\">github.com\/statnive\/statnive<\/a>. Learn more at <a href=\"https:\/\/statnive.com\">statnive.com<\/a>.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to two third-party services, both <strong>opt-in via explicit user action<\/strong>. No visitor data is ever sent to either service.<\/p>\n\n<h4>MaxMind GeoLite2 (optional)<\/h4>\n\n<p>Used to download the MaxMind GeoLite2-City database for high-accuracy visitor geolocation. Requires a free MaxMind account and a license key the user pastes into Settings \u2192 GeoIP. Accuracy: approximate city\/region only \u2014 not for identifying individuals or households.<\/p>\n\n<ul>\n<li>Source: MaxMind (https:\/\/www.maxmind.com), downloaded from https:\/\/download.maxmind.com\/app\/geoip_download<\/li>\n<li>When: Weekly via WP-Cron, only after the user enables GeoIP and configures a license key<\/li>\n<li>Data sent: License key + standard HTTP request headers. No visitor data is transmitted.<\/li>\n<li>Data received: GeoLite2-City.mmdb file, stored in your <code>wp-content\/uploads\/statnive\/<\/code> directory<\/li>\n<li>Purpose: Approximate visitor geolocation (country \/ region \/ coarse city)<\/li>\n<li>Sign up for a MaxMind account: https:\/\/www.maxmind.com\/en\/geolite2\/signup<\/li>\n<li>Get your license key: https:\/\/www.maxmind.com\/en\/accounts\/current\/license-key<\/li>\n<li>MaxMind Privacy Policy: https:\/\/www.maxmind.com\/en\/privacy-policy<\/li>\n<li>MaxMind Terms of Use: https:\/\/www.maxmind.com\/en\/terms-of-use<\/li>\n<li>MaxMind GeoLite2 EULA: https:\/\/www.maxmind.com\/en\/geolite2\/eula<\/li>\n<\/ul>\n\n<p>This product includes GeoLite Data created by MaxMind, available from https:\/\/www.maxmind.com.<\/p>\n\n<h4>DB-IP IP-to-City Lite (optional)<\/h4>\n\n<p>Used to download the free DB-IP IP-to-City Lite database. No account, no license key, no EULA. Accuracy: approximate city\/region only \u2014 not for identifying individuals or households.<\/p>\n\n<ul>\n<li>Source: DB-IP (https:\/\/db-ip.com), downloaded from https:\/\/download.db-ip.com\/free\/<\/li>\n<li>When: One-shot user click \"Enable city-level geography\" on the Geography page, then monthly via WP-Cron for refresh<\/li>\n<li>Data sent: Standard HTTP request headers only (no visitor data, no account, no key)<\/li>\n<li>Data received: dbip-city-lite-YYYY-MM.mmdb.gz file, decompressed to your <code>wp-content\/uploads\/statnive\/<\/code> directory<\/li>\n<li>Purpose: Approximate visitor geolocation (city \/ region \/ country)<\/li>\n<li>DB-IP Terms: https:\/\/db-ip.com\/tos.php<\/li>\n<li>DB-IP Privacy Policy: https:\/\/db-ip.com\/privacy.php<\/li>\n<li>License: CC-BY 4.0<\/li>\n<\/ul>\n\n<p>GeoIP data \u00a9 DB-IP under CC-BY 4.0.<\/p>\n\n<p>No visitor data is ever sent to any external service. All analytics data remains in your WordPress database.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>All analytics data stays in your WordPress database. Raw IPs are used only for the optional GeoIP lookup and are never persisted. Statnive registers with the WordPress Privacy API for personal-data export and erasure.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>statnive<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Open <strong>Statnive<\/strong> in the admin sidebar.<\/li>\n<\/ol>\n\n<p>That's it. Tracking begins immediately \u2014 no configuration, no account, no tracking code to paste.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20statnive%20use%20cookies%3F\"><h3>Does Statnive use cookies?<\/h3><\/dt>\n<dd><p>No. Statnive is 100% cookie-free. Visitor identification is a daily-rotating salted hash that cannot be used to track individuals across days or sites.<\/p><\/dd>\n<dt id=\"is%20statnive%20gdpr%20compliant%3F\"><h3>Is Statnive GDPR compliant?<\/h3><\/dt>\n<dd><p>Statnive is <strong>designed to support<\/strong> GDPR, CCPA, APPI, and PIPL compliance: no cookies, no PII storage, daily rotating hashes, configurable retention, WordPress Privacy API export\/erase, and server-side respect for GPC and DNT signals. Final compliance always depends on your configuration and your privacy policy.<\/p><\/dd>\n<dt id=\"how%20does%20visitor%20counting%20work%20without%20cookies%3F\"><h3>How does visitor counting work without cookies?<\/h3><\/dt>\n<dd><p>A salted SHA-256 hash of the visitor's anonymized IP plus User-Agent. The salt rotates daily, so the same visitor gets a different hash tomorrow \u2014 cross-day stitching is impossible while daily uniques stay accurate.<\/p><\/dd>\n<dt id=\"where%20is%20my%20data%20stored%3F\"><h3>Where is my data stored?<\/h3><\/dt>\n<dd><p>In your WordPress database, in tables prefixed <code>statnive_<\/code>. Nothing leaves your server unless you explicitly enable the optional MaxMind or DB-IP GeoIP downloads (one-time database files, never visitor data). When you uninstall the plugin, all tables and uploaded GeoIP files are removed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Statnive tracks pageviews, events, sessions, and referrers on WooCommerce stores like any other WordPress site. Dedicated WooCommerce revenue tracking with Revenue per Visitor (RPV) is on the roadmap.<\/p><\/dd>\n<dt id=\"how%20much%20does%20it%20slow%20down%20my%20site%3F\"><h3>How much does it slow down my site?<\/h3><\/dt>\n<dd><p>The tracker script is small (~2 KB gzipped) and loads asynchronously, so it does not block your page render. The hit endpoint writes a single row per pageview. Dashboard queries run against pre-aggregated daily summaries rather than raw events.<\/p><\/dd>\n<dt id=\"can%20i%20run%20statnive%20alongside%20google%20analytics%20or%20matomo%3F\"><h3>Can I run Statnive alongside Google Analytics or Matomo?<\/h3><\/dt>\n<dd><p>Yes. Statnive is fully independent. Many users run Statnive as their primary privacy-friendly analytics and keep GA4 for advertising attribution.<\/p><\/dd>\n<dt id=\"what%20can%20cause%20%22no%20data%22%3F\"><h3>What can cause \"no data\"?<\/h3><\/dt>\n<dd><p>Common causes: ad blockers, aggressive page caching, CSP rules blocking <code>fetch<\/code>\/<code>sendBeacon<\/code> (allow <code>connect-src 'self'<\/code>), GPC or DNT enabled, or <code>DISABLE_WP_CRON<\/code> without a system cron. Exclude <code>\/wp-json\/statnive\/v1\/hit<\/code> and <code>admin-ajax.php?action=statnive_hit<\/code> from page caches.<\/p><\/dd>\n<dt id=\"how%20does%20geography%20work%3F\"><h3>How does Geography work?<\/h3><\/dt>\n<dd><p>Four tiers, falling through automatically: (1) browser timezone \u2192 country, ~80% accurate, no external call; (2) CDN country headers (Cloudflare, CloudFront, Vercel) when present; (3) optional one-click DB-IP IP-to-City Lite (free, CC-BY 4.0); (4) optional MaxMind GeoLite2 (free with an account). Tiers 3 and 4 are opt-in via a discrete user click.<\/p><\/dd>\n<dt id=\"does%20statnive%20count%20bots%20as%20real%20visitors%3F\"><h3>Does Statnive count bots as real visitors?<\/h3><\/dt>\n<dd><p>No. ~200 server-side bot UA patterns and tracker-side fingerprints (webdriver, automation flags) bucket bots separately, so \"Visitors\" and \"Pageviews\" reflect humans only.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.13 - 2026-05-13<\/h4>\n\n<ul>\n<li>Changed: PHP floor raised from 8.0 to 8.1 (PHP 8.0 EOL was Nov 2023).<\/li>\n<li>Changed: <code>geoip2\/geoip2<\/code> bumped ^2.13 \u2192 ^3.0; <code>maxmind\/web-service-common<\/code> bumped ~0.9.0 \u2192 ^0.11.<\/li>\n<li>Fix: DB-IP privacy-policy URL in External Services disclosure (404 \u2192 canonical). See CHANGELOG.md.<\/li>\n<\/ul>\n\n<h4>0.4.12 - 2026-05-11<\/h4>\n\n<ul>\n<li>Fix: replace competitor name in Tags line with <code>cookieless<\/code> for WP.org policy compliance. See CHANGELOG.md.<\/li>\n<\/ul>\n\n<h4>0.4.11 - 2026-05-09<\/h4>\n\n<ul>\n<li>Removed: importers (WP Statistics + CSV) \u2014 orphan feature whose cron handler was never registered. See CHANGELOG.md.<\/li>\n<\/ul>\n\n<h4>0.4.10 - 2026-05-05<\/h4>\n\n<ul>\n<li>New: MaxMind GeoIP card on the admin Settings page (license-key input + Enable toggle, drives the existing server-side options).<\/li>\n<li>Internal: centralized the masked-license-key sentinel as a shared PHP\/TS constant; new SettingsController integration test and ConsentApiIntegration unit test close prior coverage gaps. See CHANGELOG.md.<\/li>\n<\/ul>\n\n<h4>0.4.9 - 2026-05-04<\/h4>\n\n<ul>\n<li>Fix: tracker skips excluded_roles + dist ZIP excludes hidden files. See CHANGELOG.md.<\/li>\n<\/ul>\n\n<h4>0.4.7<\/h4>\n\n<p>First public release on WordPress.org. Real-time dashboard, eight-channel grouping with a dedicated AI Assistants channel, four-tier geography, custom events + engagement, cookieless privacy modes, WordPress Privacy API, configurable retention, and the <code>wp statnive cron run<\/code> WP-CLI command. Source code and full history: https:\/\/github.com\/statnive\/statnive.<\/p>","raw_excerpt":"Privacy-first WordPress analytics \u2014 cookieless, self-hosted, real-time. A simple Google Analytics alternative with GeoIP and AI-source tracking.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/311938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=311938"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/parhumm"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=311938"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=311938"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=311938"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=311938"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=311938"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=311938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}