{"id":309664,"date":"2026-05-27T14:53:48","date_gmt":"2026-05-27T14:53:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bt-visitor-insights\/"},"modified":"2026-07-29T15:58:06","modified_gmt":"2026-07-29T15:58:06","slug":"bt-visitor-insights","status":"publish","type":"plugin","link":"https:\/\/lt.wordpress.org\/plugins\/bt-visitor-insights\/","author":21120326,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"BT Visitor Insights","header_author":"Boulley Technology","header_description":"Lightweight, self-hosted visitor analytics with IP geolocation, page views, device detection, and a real-time dashboard. No third-party tracking scripts.","assets_banners_color":"948cd5","last_updated":"2026-07-29 15:58:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/boulleytechnology.ca\/bt-visitor-insights.php","header_author_uri":"https:\/\/boulleytechnology.ca","rating":0,"author_block_rating":0,"active_installs":10,"downloads":301,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"tboulley","date":"2026-05-27 14:53:18"},"1.0.2":{"tag":"1.0.2","author":"tboulley","date":"2026-07-16 04:38:27"},"1.0.3":{"tag":"1.0.3","author":"tboulley","date":"2026-07-29 15:58:06"}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3550843,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3550843,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3550843,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3550843,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3550843,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3550843,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3550843,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3550843,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3550843,"resolution":"4","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Real-time dashboard with visitor count, top pages, top referrers, top countries, and 30-day chart.","2":"Per-visitor history \u2014 click any IP to see every page that visitor viewed.","3":"Settings page \u2014 data retention, IP exclusion, IP anonymization, CSV export.","4":"Dashboard widget on the WordPress admin home screen."}},"plugin_section":[262246],"plugin_tags":[232,4124,7175,521,871],"plugin_category":[36,49],"plugin_contributors":[264647],"plugin_business_model":[],"class_list":["post-309664","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-analytics","plugin_tags-geolocation","plugin_tags-pageviews","plugin_tags-statistics","plugin_tags-visitors","plugin_category-analytics","plugin_category-maps-and-location","plugin_contributors-tboulley","plugin_committers-tboulley"],"banners":{"banner":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/banner-772x250.png?rev=3550843","banner_2x":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/banner-1544x500.png?rev=3550843","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/icon.svg?rev=3550843","icon":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/icon.svg?rev=3550843","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/screenshot-1.png?rev=3550843","caption":"Real-time dashboard with visitor count, top pages, top referrers, top countries, and 30-day chart."},{"src":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/screenshot-2.png?rev=3550843","caption":"Per-visitor history \u2014 click any IP to see every page that visitor viewed."},{"src":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/screenshot-3.png?rev=3550843","caption":"Settings page \u2014 data retention, IP exclusion, IP anonymization, CSV export."},{"src":"https:\/\/ps.w.org\/bt-visitor-insights\/assets\/screenshot-4.png?rev=3550843","caption":"Dashboard widget on the WordPress admin home screen."}],"raw_content":"<!--section=description-->\n<p><strong>BT Visitor Insights<\/strong> is a privacy-friendly, self-hosted analytics plugin. Everything stays on your server \u2014 no Google Analytics, no third-party tracking scripts, no data sent to any external analytics platform.<\/p>\n\n<p>Activate it and your dashboard starts filling with real visitor data: where they're from, what pages they viewed, what device they're on, and how long they've been around.<\/p>\n\n<h4>Why use it?<\/h4>\n\n<ul>\n<li><strong>No third-party tracking.<\/strong> All visitor data stays in your WordPress database.<\/li>\n<li><strong>Zero configuration.<\/strong> Activate the plugin and data starts collecting immediately.<\/li>\n<li><strong>Lightweight.<\/strong> No bulky frontend tracking script \u2014 tracking happens server-side, so it works alongside any caching plugin.<\/li>\n<li><strong>Real-time.<\/strong> See who's on your site right now (last 15 minutes).<\/li>\n<li><strong>Respectful.<\/strong> Skips logged-in administrators. Optional Do Not Track support configurable in Settings.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Real-time active-visitor count<\/li>\n<li>IP geolocation \u2014 city, region, country, country flag<\/li>\n<li>Page view tracking with titles and referrers<\/li>\n<li>Device detection \u2014 desktop, mobile, tablet<\/li>\n<li>Browser and operating system breakdown<\/li>\n<li>Top pages, top referrers, top countries<\/li>\n<li>30-day visual bar chart<\/li>\n<li>Per-visitor history \u2014 click any IP to see every page they viewed<\/li>\n<li>Date-range filters \u2014 today, 7 days, 30 days, 90 days, all time<\/li>\n<li>Auto-cleanup \u2014 old data is purged based on your configurable retention period (default 90 days)<\/li>\n<li>IP exclusion list and IP anonymization (in Settings)<\/li>\n<li>CSV export of visitors and page views<\/li>\n<li>Dashboard widget on the WP admin home screen<\/li>\n<li>Admin bar badge with live visitor count<\/li>\n<li>Skips bots, crawlers, and logged-in admins<\/li>\n<li>Optional Do Not Track support (configurable in Settings)<\/li>\n<\/ul>\n\n<h4>Pro version<\/h4>\n\n<p>A <a href=\"https:\/\/boulleytechnology.ca\/bt-visitor-insights.php\">Pro version<\/a> adds:<\/p>\n\n<ul>\n<li><strong>Email digests<\/strong> \u2014 daily or weekly HTML report with stats, top pages, and trend comparisons<\/li>\n<li><strong>Traffic-spike alerts<\/strong> \u2014 get an email when page views exceed your normal baseline<\/li>\n<li><strong>Geo-blocking<\/strong> \u2014 block or redirect visitors from specific countries<\/li>\n<li><strong>Scheduled CSV exports<\/strong> \u2014 weekly or monthly automated email exports<\/li>\n<li><strong>Goals &amp; conversions<\/strong> \u2014 track URL-based goals and unique converters<\/li>\n<li><strong>REST API access<\/strong> \u2014 query stats, visitors, and page views via \/wp-json\/btvi\/v1\/<\/li>\n<li><strong>Multi-site rollup<\/strong> \u2014 aggregate stats from multiple WordPress sites in one dashboard<\/li>\n<li><strong>White-label dashboard<\/strong> \u2014 customize the menu label and page title for client sites<\/li>\n<li><strong>Unlimited data retention<\/strong> \u2014 keep visitor history forever<\/li>\n<\/ul>\n\n<p>The Pro version is sold separately and is not required to use this free plugin.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin uses the <strong>ip-api.com<\/strong> geolocation API to look up the city, region, and country for each new visitor IP address. This request is made server-side from your WordPress installation when a visitor is first seen.<\/p>\n\n<ul>\n<li>Service: ip-api.com<\/li>\n<li>What is sent: the visitor's IP address<\/li>\n<li>When: once per unique visitor IP, server-side<\/li>\n<li>Privacy policy: https:\/\/ip-api.com\/docs\/legal<\/li>\n<li>Terms of service: https:\/\/ip-api.com\/docs\/legal<\/li>\n<\/ul>\n\n<p>No data is sent to Boulley Technology or any other third party.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>From your WordPress admin, go to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Search for \"BT Visitor Insights\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>A new <strong>Visitor Insights<\/strong> menu appears in your admin sidebar \u2014 click it to view your dashboard.<\/li>\n<li>Data starts collecting on the next non-admin page view.<\/li>\n<\/ol>\n\n<p>Or install manually:<\/p>\n\n<ol>\n<li>Download the plugin ZIP.<\/li>\n<li>Go to <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong> and upload the ZIP.<\/li>\n<li>Activate the plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20use%20google%20analytics%20or%20any%20third-party%20tracking%20scripts%3F\"><h3>Does this use Google Analytics or any third-party tracking scripts?<\/h3><\/dt>\n<dd><p>No. BT Visitor Insights is fully self-hosted. No tracking scripts are added to your frontend and no analytics data is sent to any third-party platform.<\/p><\/dd>\n<dt id=\"what%20data%20is%20collected%3F\"><h3>What data is collected?<\/h3><\/dt>\n<dd><p>Visitor IP address, page URL, page title, referrer, browser, operating system, and device type. All data is stored in your own WordPress database.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. Tracking is handled server-side rather than via a frontend JavaScript snippet, so it works alongside most caching plugins (WP Rocket, W3 Total Cache, LiteSpeed Cache, etc.).<\/p><\/dd>\n<dt id=\"does%20it%20comply%20with%20gdpr%3F\"><h3>Does it comply with GDPR?<\/h3><\/dt>\n<dd><p>The plugin skips logged-in administrators and optionally respects the Do Not Track browser header (configurable in Settings). Visitor IPs can be optionally anonymized via the Settings page. You are still responsible for disclosing any visitor tracking in your site's privacy policy.<\/p><\/dd>\n<dt id=\"how%20do%20i%20exclude%20my%20own%20visits%3F\"><h3>How do I exclude my own visits?<\/h3><\/dt>\n<dd><p>Go to <strong>Visitor Insights &gt; Settings<\/strong> and add your IP address to the exclusion list. Logged-in administrators are also skipped automatically.<\/p><\/dd>\n<dt id=\"how%20long%20is%20data%20retained%3F\"><h3>How long is data retained?<\/h3><\/dt>\n<dd><p>90 days by default. You can change the retention period in Settings (0 = unlimited, or 1\u20133650 days). Old data is purged automatically by a daily cron job.<\/p><\/dd>\n<dt id=\"can%20i%20delete%20all%20collected%20data%3F\"><h3>Can I delete all collected data?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Visitor Insights &gt; Settings<\/strong> and use the \"Clear All Data\" button under Danger Zone.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added upgrade banners with current sale pricing for Plus and Pro on plugin settings pages.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Do Not Track: added a configurable setting to respect the browser DNT header (disabled by default \u2014 was previously always enabled, which caused European and North American visitors to be undercounted).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Switched geolocation API from ipwho.is to ip-api.com for reliable legal documentation compliance.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release on WordPress.org.<\/li>\n<li>Real-time visitor count.<\/li>\n<li>IP geolocation via ipwho.is (city, region, country) over HTTPS.<\/li>\n<li>Page view tracking with titles and referrers.<\/li>\n<li>Device, browser, and OS detection.<\/li>\n<li>Top pages, referrers, and countries.<\/li>\n<li>30-day bar chart.<\/li>\n<li>Per-visitor page history.<\/li>\n<li>Date-range filters.<\/li>\n<li>Configurable data retention with daily auto-cleanup.<\/li>\n<li>IP exclusion list and IP anonymization.<\/li>\n<li>CSV export.<\/li>\n<li>Dashboard widget and admin bar badge.<\/li>\n<li>Skips logged-in admins. Optional Do Not Track support.<\/li>\n<\/ul>","raw_excerpt":"Lightweight, self-hosted visitor analytics with IP geolocation, page views, device detection, and a real-time dashboard. No third-party scripts.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=309664"}],"author":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tboulley"}],"wp:attachment":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309664"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309664"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309664"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309664"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309664"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}