Opti-Behavior – Self-Hosted Heatmaps, Funnels, A/B Testing & Smart Insights
Opti-Behavior – Self-Hosted Heatmaps, Funnels, A/B Testing & Smart Insights

Opti-Behavior – Self-Hosted Heatmaps, Funnels, A/B Testing & Smart Insights

5/5 (6 ratings) 2K+ active installs Updated Nov 9, 2026
Real-time WordPress analytics dashboard with visitors, sessions, page views, average session time, scroll depth, and bounce rate KPIs.

Real-time WordPress analytics dashboard with visitors, sessions, page views, average session time, scroll depth, and bounce rate KPIs.

See why visitors leave. Fix it. Prove it. On your own WordPress server.

Opti-Behavior adds click heatmaps, click tracking, conversion funnels and A/B testing to WordPress for free, and stores visitor data in your own WordPress database and files. Session recordings, scroll heatmaps and rage-click detection are in Pro.

🚀 Try the Live Demo – explore the full dashboard in one click, no signup required.

Visitors rarely explain why they leave. They click, scroll, hesitate, abandon forms, hit errors or drop out of checkout. Opti-Behavior records those silent signals, and Smart Insights tells you which problem to fix first, why, and whether your fix worked.

Comparing tools? Read Google Analytics alternatives for WordPress and cookieless visitor tracking in WordPress.

🔄 How it works: one loop, not a pile of dashboards

  1. Collect – traffic, heatmaps and funnels in the free plugin; session recordings, errors, forms and user journeys in Pro.
  2. Understand – Smart Insights reads them together and writes one card per problem: what is wrong, on which page or funnel step, how many visitors it costs, and since when.
  3. Fix – each card gives one next action and opens the report that shows the problem: the heatmap, the funnel step, the recording.
  4. Prove – mark the card as fixed: Opti-Behavior compares the period before and after your change and shows the result. Test bigger changes with an A/B test.

The How it works page shows this loop with your own numbers, a first-days checklist, the latest release notes and a Setup check: are visits received, is a caching or optimization plugin blocking a tracker, are your own visits counted? Each item has a button to fix it.

✅ Free features

  • Real-time traffic – visitors, sessions, pageviews, bounce rate, scroll depth, top pages, traffic sources, devices and visitor map, with visit duration, visited pages, referrers and outbound links.
  • “AI Assistants” channel – visits from ChatGPT, Perplexity, Claude, Copilot, Gemini, Mistral, DeepSeek, Grok, Meta AI and You.com are counted on their own instead of inside Organic Search or Referral.
  • AI on your site – on the Traffic screen, which AI robots read your site (by company), the pages they read most, why they visit, and how many visitors AI assistants sent to each page. AI passes are kept 12 months as daily counters, with no IP address or user agent. The site report has the same AI section.
  • Click heatmaps for desktop and mobile. Point at a hot area to see how many clicks it received (“N clicks in this area”).
  • Unlimited conversion funnels with multi-step drop-off analysis and device filtering. Opti-Behavior detects your site type (WooCommerce, Easy Digital Downloads, blog, lead-gen, signup, membership, LMS, booking) and proposes ready-made funnels built from your own URLs: create one in a click or edit it first. Nothing is created without you asking.
  • A/B testing – page-split experiments, variant previews, conversion goals and winner application.
  • Smart Insights – one card per problem, ranked by visitors lost, with a confidence level from the visits measured, the next action, a before / after result and notifications.
  • Page X-Ray preview – your three most visited pages of the period, each with a health score and its first problem.
  • Shop for WooCommerce – product views, adds to cart, checkouts and paid orders, and the visits each product loses (viewed, not added to cart), worst product first. The shop counters store no order number, customer name, e-mail address or coupon code.
  • Site report – print or save as PDF a report of any period from Opti-Behavior > Reports: traffic, the three most costly issues and, when your site has them, shop, clicks, funnels, busiest hours and A/B tests. A “Site report” link in Traffic and Smart Insights opens it for the same period.
  • Scheduled e-mail reports, daily, weekly or monthly – visits, page views, time per visit and bounce with their change, the three most costly issues, top sources, devices, most viewed pages and, on WooCommerce sites, a Shop block with up to three products that lose the most visits.
  • Visitor country from a local database shipped with the plugin (DB-IP Lite): it works right after activation, and the visitor IP address is not sent to a geolocation service.
  • Bot and spam filtering – visits from headless browsers and automation tools (detected by their user agent) are refused at collection, and browsers driven by an automation tool (navigator.webdriver) are marked as automated traffic. Setting “Enable automated traffic detection” in Traffic & Behavior settings, on by default.
  • Settings & privacy controls – consent, storage, reports, cleanup, languages and debugging in one place.
  • Multilingual admin – English, French, German, Spanish, Portuguese and Italian.

💎 Pro features

  • Session recordings – watch real visits: hesitation, scrolling, navigation, rage and dead clicks. Filter by problem: JavaScript error, click friction or abandoned form.
  • Scroll, move and attention heatmaps – how far visitors scroll, where the mouse moves and where attention stays. Heatmap filters by country, browser, device, visitor type and date.
  • Errors & performance – JavaScript errors, network issues, broken links and Core Web Vitals problems.
  • Friction detection – rage clicks and dead clicks that signal frustration (how rage and dead click detection works).
  • Form analytics – field-level effort, errors, abandonment, refill behavior and completion time.
  • User journeys – Sankey-style view of common paths and exits; turn high-value journeys into funnels.
  • Page X-Ray – one report per page: health score, a “Where visitors click” table (rage clicks, dead clicks and JS errors per element), where visitors come from and go next, a page audit, “What changed?” against the previous period, “I fixed this” with a 14-day before / after, desktop or mobile view, and an action plan.
  • Full reports – full site report (a card for each of your most visited pages, up to 10 page reports in annex) and a one-page Page X-Ray report with the click map of the page, printed or saved as PDF. On the site report: your client’s name and the sections you choose to hide.
  • Shop – estimated lost sales per product (an indicative range, from your conversion rate and average order), payment errors by error type and payment method, and shop events (add to cart, checkout, payment failure) in session recordings, recorded only in Full Tracking mode after the visitor’s consent.
  • Advanced A/B testing – visual edits, targeting, scheduling, WooCommerce tests and revenue attribution.
  • More Smart Insights signals – errors, rage and dead clicks, slow pages, broken links and abandoned forms feed Smart Insights and Page X-Ray, with a session recording as proof when one exists.

🎁 All of Pro free for 6 months on 1 site, after a quick sign-up. Then free up to 1,000 sessions a month. No credit card. The Free plugin stays unchanged. See Pro plans and prices | 🚀 Live Demo

🛡️ Privacy & Performance by Design

  • Self-hosted: visitor data stays on your own server. No third-party analytics cloud: analytics data is not sold or shared with external behavior platforms.
  • Privacy controls – cookie-free anonymous tracking by default, IP anonymization, retention settings and uninstall cleanup options. Full Tracking mode uses cookies only after the visitor accepts the consent banner, and the [opti_behavior_cookie_settings] shortcode lets visitors change or withdraw their choice at any time.
  • Hybrid Storage – high-volume analytics events are stored in files instead of the database. Database size measured on one production site.
  • Lightweight tracking – minified trackers loaded with defer. We measured PageSpeed on a test page with the plugin on and off: see the article.
  • WooCommerce ready – analyze product pages, carts, checkout funnels and revenue-focused experiments.

External Services

This plugin may connect to external services in limited circumstances:

Country database (DB-IP Lite, db-ip.com)

Purpose: The free DB-IP Lite country database finds a visitor’s country on your own server. It is included in the plugin (assets/geo/) and renewed with each version, so no download is needed; the plugin can also download a newer file. IP geolocation by DB-IP.

When Used: Never on its own. db-ip.com is contacted only when an administrator clicks “Update now” in Settings > Traffic & Behavior, or ticks “Check for a newer database every month” there (off by default).

Data Sent: Only the database file is downloaded and no visitor data is sent to db-ip.com; the request sends the user agent “Opti-Behavior/”, without your site address.

Privacy:
* Service: https://db-ip.com/ – Terms and licence: https://db-ip.com/db/lite.php (CC BY 4.0)

OpenStreetMap Tiles

Purpose: Displays the interactive visitor location map in your WordPress admin dashboard.
When Used: Only when YOU (the admin) view the real-time visitor map. Not used on the frontend.
Data Sent: Your browser makes direct requests to OpenStreetMap tile servers (standard HTTP headers only).

Privacy:
* Service: https://www.openstreetmap.org/ – Tile Policy: https://operations.osmfoundation.org/policies/tiles/
* Privacy Policy: https://wiki.osmfoundation.org/wiki/Privacy_Policy

OptiUser API (api.optiuser.com)

Purpose: Handles the optional daily status message (site URL, versions, one admin email; only after you accept it on the welcome screen) and deactivation notifications. Licence validation and update checks are made by the Pro plugin itself, once installed.

When Used:
* Install tracker: A heartbeat once every 24 hours after activation: site URL, WordPress, PHP and plugin version, plugin type (free/pro), and one administrator contact email when a valid contact exists. No visitor data.
* Deactivation: Notifies the API when the plugin is deactivated so installation records stay up to date.
* Announcements: Optional short news banners on the plugin’s own screens, asked at most once every 6 hours, and only after you accept the daily status message or while Pro is active. Data sent: only the licence type (free, pro, trial or expired); no site URL, domain or email. Closing a banner is stored on your site only.

Data Sent: Site URL, WordPress admin username when applicable, and one best available administrator contact email (a single valid contact, never a list of administrator emails). No visitor analytics data is ever sent to the API, which stores installation metadata (site URL, plugin version) for licence management only.

Privacy:
* Service: https://api.optiuser.com/ – Website: https://optiuser.com/
* Terms of Service: https://optiuser.com/terms-of-service/ – Privacy Policy: https://optiuser.com/privacy-policy/

OptiUser Pro trial sign-up (api.optiuser.com/pro-signup)

Purpose: Creates your free Pro trial (account, licence key and the email that holds them) without leaving WordPress, when you use the “Start my free 6-month Pro trial” form on a Pro feature page of the plugin.

When Used: Only when an administrator fills that form and clicks the button. Nothing is sent when the page is displayed, and the plugin never asks on its own. The form is the only place that triggers this call.

Data Sent: The email address shown in the form (which you can change), your site address, the plugin version and the name of the screen the button was on. Nothing else; no visitor data. The email address is not stored in your WordPress options.

What You Get Back: A message telling you to check your inbox, or the reason the request was refused. The e-mail from optiuser.com holds the licence key, a download link valid 24 hours and a link to set your password. The free plugin never downloads, installs or activates the Pro plugin by itself.

Privacy:
* Service: https://api.optiuser.com/
* Terms of Service: https://optiuser.com/terms-of-service/
* Privacy Policy: https://optiuser.com/privacy-policy/

OptiUser Website (optiuser.com)

Purpose: Hosts the Opti-Behavior Pro trial page and the sales / feature pages. Every “Upgrade to Pro” / “Try Pro” link of the plugin opens the same Pro trial page on optiuser.com in a new tab.

When Used: Only when an admin clicks one of these links. The plugin itself sends nothing: the browser opens the page.

Data Sent: Only your site address and the place of the link (utm parameters) travel in the link. No username, email or visitor analytics data is sent.

Privacy:
* Service: https://optiuser.com/
* Privacy Policy: https://optiuser.com/privacy-policy/

Important Note: Visitor analytics data (pages, clicks, sessions) is stored locally on your WordPress server. The services above serve only the optional geographic features (optional update of the included DB-IP Lite country database, OpenStreetMap tiles), the optional daily status message and announcements, and Pro licence management. The visitor’s IP address is not sent to any geolocation service: the country is looked up on your own server.

Privacy Policy

Opti-Behavior collects user interaction data to provide analytics insights:

  • Page URLs and titles, click coordinates and target elements, mouse movement patterns, scroll depth, session timestamps, referrer URLs, browser and device information
  • IP addresses (can be anonymized)
  • Approximate location: the country only. It comes from the Cloudflare header when present, otherwise from the visitor’s IP address, looked up on your own server in the local DB-IP Lite country database, in every privacy mode. Without Cloudflare and without the database, no country is recorded (the screens show “Unknown”). The browser language and the time zone are never used to guess a country.

Data Storage: All analytics data is stored locally in your WordPress database or file system. Nothing goes to external analytics servers, and the visitor’s IP address is not sent to any geolocation service: the country is found on your own server (see “External Services” above). Opti-Behavior does not sell visitor data. You are the data controller.

Usage Tracking: With your explicit consent, given on the first-run welcome screen, the plugin sends usage statistics to api.optiuser.com once every 24 hours: site URL, plugin, WordPress and PHP version, and one administrator contact email when a valid contact exists. They serve only to understand adoption, support licence / trial e-mails and improve the product. Nothing is sent before you click “Accept & Continue”. Full data practices: https://optiuser.com/privacy-policy/

User Rights: You have full control over data retention and deletion. Users can request data deletion at any time.

When using this plugin, ensure your site’s privacy policy discloses what data is collected, how long it is retained, who has access to it, how users can request deletion, that analytics data is stored locally on your server, and that the visitor’s IP address is used on your own server to determine the country (DB-IP Lite database) and is not sent to any third party.

Third-Party Libraries

This plugin bundles the following open-source libraries:

  • Chart.js 4.4.0, MIT License, https://www.chartjs.org/ – analytics charts and graphs
  • Leaflet 1.9.4, BSD 2-Clause License, https://leafletjs.com/ – real-time visitor map
  • heatmap.js 2.0.5, MIT License, https://www.patrick-wied.at/static/heatmapjs/ – visual heatmaps of user interactions
  • Lucide 0.554.0, ISC License, https://lucide.dev/ – icons of the admin interface

All bundled libraries use GPL-compatible licenses (MIT, BSD 2-Clause, and ISC) and are included locally within the plugin. See THIRD-PARTY-LICENSES.txt in the plugin directory for full license texts.

Credits

Developed by OptiUser

IP Geolocation by DB-IP (https://db-ip.com), CC BY 4.0. The DB-IP Lite country database is included unmodified in assets/geo/ (see assets/geo/NOTICE.txt).