{"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-05-27T14:53:18","modified_gmt":"2026-05-27T14:53:18","slug":"bt-visitor-insights","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/bt-visitor-insights\/","author":21120326,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0","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-05-27 14:53:18","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":0,"downloads":26,"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"}},"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"],"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> Honors the Do Not Track browser header and skips logged-in administrators.<\/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>Respects the Do Not Track header<\/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 respects the Do Not Track browser header and skips logged-in administrators. 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.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>Respects Do Not Track and skips logged-in admins.<\/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:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/309664","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=309664"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tboulley"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=309664"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=309664"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=309664"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=309664"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=309664"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=309664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}