Privacy & Compliance

Rich Statistics is designed from the ground up to be compliant with GDPR, CCPA, and ePrivacy regulations without requiring a consent banner. This page explains exactly what data is collected, what is not, and how to verify our claims.

Data collected

Data pointExample stored valueHow it is derived
Page path/blog/my-post/URL path only — no domain, no fragment. Query params >40 chars or resembling emails are stripped.
Session UUIDf47ac10b-58cc-…Random UUID generated in sessionStorage. Dies when the tab is closed. Used only to deduplicate rapid repeat views within one session.
Referrer domaingoogle.comDomain only — path and query stripped immediately on the server. (direct) if no referrer.
UTM parametersutm_source=newsletterStandard UTM values from the query string if present.
Browser name & versionChrome 120Parsed from the User-Agent string server-side. The raw UA string is not stored.
Operating systemWindowsParsed from UA string.
Screen resolution1920×1080Reported by screen.width/screen.height in JavaScript.
Scroll depth (Premium)72.4%Maximum scroll percentage during the session.
Click coordinate (Premium)x: 48.2%, y: 31.9%Percentage of page width/height at click point. No absolute pixels, no element ID stored unless it is a stable semantic ID.
Timestamp2025-01-15 14:32:00Server time at ingest.

Data NOT collected

Data pointWhy it is not collected
IP addressREMOTE_ADDR is never read or passed to any function. Verified by grep audit.
Cookies of any kindZero calls to setcookie(), wp_set_auth_cookie(), or any cookie API. Verified by grep audit.
Canvas or font fingerprintThe JavaScript layer measures browser capabilities via documented APIs only (webdriver flag, screen size, navigator.plugins). It does not render canvas elements or measure font metrics.
Email addressesURL sanitization strips any query parameter whose value looks like an email address before storage.
Long query parametersQuery parameters longer than 40 characters (e.g., session tokens, JWT fragments) are stripped before storage.
Cross-session identitySession UUIDs are in sessionStorage, not localStorage or cookies, so they cannot be used to track a visitor across sessions or devices.

Third-party data sharing

Rich Statistics shares zero data with third parties. All data is stored in your own WordPress database. The plugin makes no outbound HTTP requests except:

GDPR compliance notes

This page provides technical information, not legal advice. Consult your own legal counsel to confirm compliance obligations in your jurisdiction.

Self-audit commands

Run these on your plugin installation to verify the privacy properties yourself:

# Verify: no IP address is ever read
grep -rn "REMOTE_ADDR\|HTTP_X_FORWARDED" includes/ assets/

# Verify: no cookies are ever set
grep -rn "setcookie\|_COOKIE\|wp_set_auth_cookie" includes/ assets/

# Verify: no external HTTP calls from the tracker
grep -rn "wp_remote_get\|wp_remote_post\|file_get_contents" includes/class-tracker.php

All three commands should return zero matches.

Data deletion

To delete all collected analytics data: