{"id":344015,"date":"2026-07-22T15:39:59","date_gmt":"2026-07-22T15:39:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vago-analytics\/"},"modified":"2026-07-22T14:35:54","modified_gmt":"2026-07-22T14:35:54","slug":"vago-analytics","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/vago-analytics\/","author":16895328,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Vago Analytics","header_author":"Themezinho","header_description":"Self-hosted store analytics \u2014 visitor sessions, traffic sources, conversion funnel, and product\/blog performance, stored in a self-contained SQLite database instead of your WordPress database, so tracking traffic never adds load to it.","assets_banners_color":"fcfcfd","last_updated":"2026-07-22 14:35:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/themezinho.net","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"biribazu","date":"2026-07-22 14:35:54"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3618822,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3618822,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3618822,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3618822,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[232,434,282,521,286],"plugin_category":[36,45],"plugin_contributors":[272513],"plugin_business_model":[],"class_list":["post-344015","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-dashboard","plugin_tags-ecommerce","plugin_tags-statistics","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_contributors-biribazu","plugin_committers-biribazu"],"banners":{"banner":"https:\/\/ps.w.org\/vago-analytics\/assets\/banner-772x250.png?rev=3618822","banner_2x":"https:\/\/ps.w.org\/vago-analytics\/assets\/banner-1544x500.png?rev=3618822","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vago-analytics\/assets\/icon-128x128.png?rev=3618822","icon_2x":"https:\/\/ps.w.org\/vago-analytics\/assets\/icon-256x256.png?rev=3618822","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Vago Analytics is a self-hosted, privacy-respecting analytics dashboard for WordPress and WooCommerce stores. All data stays on your own server \u2014 nothing is sent to a third-party analytics service.<\/p>\n\n<p><strong>Own database, not your WordPress database<\/strong><\/p>\n\n<p>Every tracked pageview, click, and checkout event is written to a self-contained SQLite database file under <code>wp-content\/uploads\/vago-analytics\/<\/code>, completely separate from your site's WordPress (MySQL) database. Your store's real data is never touched, and analytics traffic never adds load to the database your site already depends on for everything else.<\/p>\n\n<p><strong>What it tracks<\/strong><\/p>\n\n<ul>\n<li>Unique visitors, pageviews, and a period-over-period Performance Summary<\/li>\n<li>Traffic sources (direct, organic, social, paid, referral, email) with UTM campaign tracking<\/li>\n<li>Conversion funnel: visit \u2192 product view \u2192 add to cart \u2192 cart \u2192 checkout \u2192 purchase, with step-to-step drop-off and automatic \"biggest leak\" detection<\/li>\n<li>Per-product performance table (views, add to cart, clicks, purchases, revenue, conversion rate)<\/li>\n<li>Path branches and top path patterns (WooCommerce stores only)<\/li>\n<li>Session-level detail with a chronological event trail per visitor<\/li>\n<li>Blog \u2192 product click-through performance<\/li>\n<li>Geographic breakdown (country\/city) with known datacenter\/hosting-IP traffic excluded from every report, not just flagged<\/li>\n<li>Device and browser breakdown<\/li>\n<li>On-site search keyword tracking<\/li>\n<li>Coupon attempt tracking (success\/fail)<\/li>\n<\/ul>\n\n<p><strong>Rule-based insights, never fabricated<\/strong><\/p>\n\n<p>The dashboard surfaces real, thresholded signals \u2014 a funnel leak large enough to matter, a datacenter IP range large enough to be worth investigating \u2014 instead of a generic \"AI insight\" box. If nothing clears the bar, it says so plainly.<\/p>\n\n<p><strong>External Access<\/strong><\/p>\n\n<p>Open the same dashboard at a friendly URL outside of wp-admin (Settings \u2192 External Access), for anyone who needs to check analytics without any other admin access. Logging in there still uses the normal WordPress login (<code>wp_signon()<\/code>) \u2014 it's the same trust model as wp-admin, just without the wp-admin chrome around it.<\/p>\n\n<p><strong>Built for WordPress.org from the start<\/strong><\/p>\n\n<p>No CDN-loaded libraries \u2014 Chart.js and the MaxMind DB reader are bundled locally (MIT and Apache-2.0 licenses respectively). No external analytics service, no phoning home, no tracking of you as the site owner.<\/p>\n\n<p><strong>External service: MaxMind GeoLite2 (optional, your own free key)<\/strong><\/p>\n\n<p>City\/country lookups are resolved from a MaxMind GeoLite2 City database, downloaded with your own free MaxMind license key (get one at <a href=\"https:\/\/www.maxmind.com\/en\/geolite2\/signup\">maxmind.com\/en\/geolite2\/signup<\/a>) and stored\/read entirely on your own server \u2014 there is no per-visitor request to MaxMind or anyone else. The plugin only contacts <code>download.maxmind.com<\/code> when you first save a license key and, after that, on an automatic weekly refresh to keep city\/region boundaries current, exactly the way MaxMind's own license requires. Skip the license key entirely and everything else in the plugin still works \u2014 city\/country will simply show as unknown. See <a href=\"https:\/\/www.maxmind.com\/en\/geolite2\/eula\">MaxMind's GeoLite2 EULA<\/a>.<\/p>\n\n<p>This product includes GeoLite2 data created by MaxMind, available from <a href=\"https:\/\/www.maxmind.com\">https:\/\/www.maxmind.com<\/a>.<\/p>\n\n<h3>Nginx \/ LiteSpeed: protecting the analytics database<\/h3>\n\n<p>This plugin writes a <code>.htaccess<\/code> file into <code>wp-content\/uploads\/vago-analytics\/<\/code> to block direct access to the SQLite database and GeoLite2 database files. Apache and LiteSpeed (LiteSpeed reads <code>.htaccess<\/code> natively for Apache compatibility) honor this automatically. <strong>Nginx ignores <code>.htaccess<\/code> entirely<\/strong> \u2014 if your site runs on Nginx, add a rule like this to your server block so those files stay private:<\/p>\n\n<pre><code>location ^~ \/wp-content\/uploads\/vago-analytics\/ {\n    location ~* \\.(db|db-wal|db-shm|mmdb)$ { deny all; return 404; }\n}\n<\/code><\/pre>\n\n<p>The plugin also shows an admin notice automatically when it detects Nginx.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>vago-analytics<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install through the WordPress plugin screen directly.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to the new \"Vago Analytics\" menu item in wp-admin to view the dashboard.<\/li>\n<li>(Optional) Visit Settings \u2192 External Access to set up a friendly external URL for the dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20create%20new%20tables%20in%20my%20wordpress%20database%3F\"><h3>Does this create new tables in my WordPress database?<\/h3><\/dt>\n<dd><p>No. Sessions and events are stored in a SQLite database file inside <code>wp-content\/uploads\/vago-analytics\/<\/code>, not in your WordPress (MySQL) database.<\/p><\/dd>\n<dt id=\"does%20this%20require%20anything%20unusual%20from%20my%20host%3F\"><h3>Does this require anything unusual from my host?<\/h3><\/dt>\n<dd><p>It requires the <code>pdo_sqlite<\/code> PHP extension, which is enabled by default on virtually all standard PHP installs (it has shipped with PHP since version 5.3). The plugin shows an admin notice if it's missing.<\/p><\/dd>\n<dt id=\"who%20can%20view%20the%20dashboard%3F\"><h3>Who can view the dashboard?<\/h3><\/dt>\n<dd><p>Anyone with the <code>manage_options<\/code> capability (administrators, by default) \u2014 both in wp-admin and through the optional External Access URL.<\/p><\/dd>\n<dt id=\"does%20this%20send%20any%20data%20to%20a%20third-party%20service%3F\"><h3>Does this send any data to a third-party service?<\/h3><\/dt>\n<dd><p>No visitor data is ever sent anywhere \u2014 all tracked data stays in the SQLite database on your own server. The only outbound requests the plugin ever makes are to <code>download.maxmind.com<\/code>, to fetch the GeoLite2 City database file using the free license key you provide (Settings \u2192 Geolocation) \u2014 once when you save the key, and automatically once a week after that. No visitor IP or any other tracked data is included in that request; it's just downloading a database file. City\/country lookups themselves happen entirely locally, reading that downloaded file \u2014 nothing about an individual visitor is ever sent to MaxMind or anyone else. If you don't add a license key, this request never happens and city\/country simply show as unknown.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20maxmind%20account%3F\"><h3>Do I need a MaxMind account?<\/h3><\/dt>\n<dd><p>Only if you want city\/country data. It's free \u2014 sign up at <a href=\"https:\/\/www.maxmind.com\/en\/geolite2\/signup\">maxmind.com\/en\/geolite2\/signup<\/a>, copy your license key into Settings \u2192 Geolocation, and click \"Download \/ Refresh Database Now.\" Everything else in the plugin works without it.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20existing%20tracked%20data%20if%20i%20upgrade%20from%20an%20earlier%20version%20that%20used%20mysql%20tables%3F\"><h3>What happens to my existing tracked data if I upgrade from an earlier version that used MySQL tables?<\/h3><\/dt>\n<dd><p>The plugin automatically migrates any existing session\/event data from the old MySQL tables into the new SQLite database the first time it runs, then removes the old tables. No data is lost.<\/p><\/dd>\n<dt id=\"does%20this%20work%20without%20woocommerce%3F\"><h3>Does this work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Core traffic\/session\/funnel tracking works on any WordPress site. A handful of features (path branches, top path patterns, product performance) only appear when WooCommerce is active, since they depend on WooCommerce data.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Self-hosted store analytics \u2014 sessions, traffic, and conversion funnel \u2014 stored in its own SQLite database, not your WordPress database.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/344015","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=344015"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/biribazu"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=344015"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=344015"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=344015"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=344015"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=344015"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=344015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}