{"id":11159,"date":"2026-05-27T07:30:33","date_gmt":"2026-05-26T23:30:33","guid":{"rendered":"https:\/\/aeosub.com\/visitstats\/"},"modified":"2026-05-27T07:30:33","modified_gmt":"2026-05-26T23:30:33","slug":"visitstats","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/visitstats\/","title":{"rendered":"VisitStats"},"content":{"rendered":"<div class=\"post-img\" style=\"margin-bottom: 25px\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/visitstats\/assets\/banner-1544x500.png?rev=3549863\" alt=\"VisitStats\" style=\"width: 100%;height: auto;border-radius: 12px\"><\/div>\n<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/visitstats\/assets\/icon-256x256.png?rev=3549863\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/james333\/\" target=\"_blank\" rel=\"noopener\">james333<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.1.6<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.2 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-26 11:22pm GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/visitstats\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Privacy-first site analytics for self-hosted sites. No cookies, no Google, no data leaves your server. Stats live in your own database.<\/div>\n<p><strong>VisitStats<\/strong> is a lightweight, privacy-first analytics plugin for WordPress. All your data stays in your own WordPress database \u2014 we never see it, no third party sees it.<\/p>\n<p><strong>Why VisitStats?<\/strong><\/p>\n<ul>\n<li><strong>No cookies, no consent banner needed.<\/strong> Tracking is GDPR-friendly by default.<\/li>\n<li><strong>Self-hosted.<\/strong> All data lives in your WordPress database. No external service, no Automattic, no Google.<\/li>\n<li><strong>Lightweight.<\/strong> Frontend tracker is under 2KB. Loads asynchronously. Won&#8217;t slow your site.<\/li>\n<li><strong>Zero setup.<\/strong> Install, activate, done. No theme edits, no tag manager, no JS snippets.<\/li>\n<li><strong>Built for WordPress.<\/strong> Reports appear inside your WordPress dashboard \u2014 no separate app to log into.<\/li>\n<\/ul>\n<p><strong>Recommended for sites with up to ~10,000 daily pageviews<\/strong> (around 95% of WordPress sites). For very high-traffic sites, consider dedicated analytics services.<\/p>\n<p><strong>What you get (all free, all the time):<\/strong><\/p>\n<ul>\n<li>Real-time visitor count \u2014 see who&#8217;s on your site right now<\/li>\n<li>Pageviews, unique visitors, sessions<\/li>\n<li>Top pages<\/li>\n<li>Top traffic sources (direct, search, social, AI, referral)<\/li>\n<li>Top referrers \u2014 actual URLs sending you traffic<\/li>\n<li>Device breakdown (desktop, mobile, tablet)<\/li>\n<li>Browser &amp; operating system detection<\/li>\n<li>Configurable data retention from 1 day up to 1 year<\/li>\n<li>Date range views: today, 7 days, 30 days, 90 days, 1 year<\/li>\n<li>Engagement signals (scroll depth, time on page)<\/li>\n<li>Cookieless visitor identification using daily-rotating salt + SHA-256 hashing<\/li>\n<li>Bot filtering with built-in bot signature detection<\/li>\n<li>Optional administrator \/ logged-in user exclusion<\/li>\n<li>Honors Do Not Track browser signal<\/li>\n<li>Automatic data pruning to keep your database lean<\/li>\n<li>Rate-limited tracking endpoint protects against abuse<\/li>\n<li>IP anonymization before hashing \u2014 actual IPs never stored<\/li>\n<\/ul>\n<p><strong>Privacy by design<\/strong><\/p>\n<p>VisitStats never:<\/p>\n<ul>\n<li>Sets cookies<\/li>\n<li>Stores IP addresses<\/li>\n<li>Sends data to third parties<\/li>\n<li>Fingerprints visitors<\/li>\n<li>Tracks across days<\/li>\n<\/ul>\n<p>Visitor identification uses a daily-rotating salt hashed with the (anonymized) IP and User Agent to count unique visits within a 24-hour window. The salt regenerates every 24 hours, making cross-day tracking impossible. This is the same approach used by Plausible Analytics and Fathom Analytics.<\/p>\n<p><strong>For developers<\/strong><\/p>\n<ul>\n<li>Clean REST API at <code>\/wp-json\/visitstats\/v1\/<\/code><\/li>\n<li>Filter hooks for customizing behavior (rate limiting, bot detection, etc.)<\/li>\n<li>PSR-style class organization<\/li>\n<li>No external dependencies \u2014 pure WordPress core<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Privacy-first site analytics for self-hosted sites. No cookies, no Google, no data leaves your server. Stats live in your own database.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[760,921,590,787,762,555],"class_list":["post-11159","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-analytics","tag-cookieless","tag-gdpr","tag-privacy","tag-statistics","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11159"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11159\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}