Mouse Whisperer
CRO Analytics & A/B Testing for Shopify
Mouse Whisperer shows you each click your customers click on the page-level, giving your behavioral data you've never seen on an analytics dashboard.
Have an account? Log in to check out faster.
Mouse Whisperer
Mouse Whisperer shows you each click your customers click on the page-level, giving your behavioral data you've never seen on an analytics dashboard.
Every app you install is a tax on your store speed. This one is about as close to free as it gets:
• Loads last. The script is deferred — it waits until your page has finished rendering before it does anything. Your store loads at exactly the speed it did before.
• No theme edits. It installs as a theme app embed, which means a toggle in your theme editor. Nothing is written into your theme files. Uninstall is a toggle too.
• Sends data on the way out. Instead of chattering to a server while your customer is shopping, it batches everything and sends one small payload as the visitor leaves the page, using the browser's built-in background-send. It can't block anything, because there's nothing left to block.
• No pop-ups, no overlays, no widgets. Your customer never sees or feels it. It changes nothing about your store's appearance or behavior.
Two different tools for two different questions.
A Store Snapshot answers: "where should I even start?"
It watches your whole store for a set period, groups every visit by page, and scores each one. You get a ranked list: these are your weakest pages, and here's roughly what they're worth fixing. It's the "point me at the problem" tool. You run this first, and you run it rarely.
A Page Snapshot answers: "what exactly is wrong with this page?"
You pick one page — a specific product, a specific collection — and go deep. Scroll depth, every CTA click by name, exit behavior, search terms, filter usage, add-to-cart rate, conversion rate, revenue. It's the "diagnose it" tool. You run these constantly.
Point it at a product page and you get the full behavioral picture:
• Add-to-cart rate and conversion rate for that specific product page — not your store average, and not blurred by bot traffic
• Revenue attributed to that page, plus total revenue from sessions that touched it
• Scroll depth — what percentage of visitors reached 50%, and 100%. If nobody reaches your reviews, your reviews aren't doing anything.
• CTA clicks by name — how many people clicked "Add to Cart" vs "Buy Now" vs "Size Guide" vs "Shipping Info." Real button names, real counts.
• Exit rate and exit type — did they leave your store entirely, or click deeper in?
• Bounce rate — arrived, did nothing, left
• On-site searches performed from that page — a search on a product page usually means "this page didn't answer my question"
Run the audit again after you make changes and compare.
Collection pages fail differently from product pages, so they're measured differently.
A collection page has one job: get people to a product. So the headline metric is click-through rate — what percentage of visitors actually clicked into a product.
You also get:
• Filter and sort behavior — which filters people apply, how many times they change them. Heavy filter-fiddling usually means your default sort is wrong or your collection is too big.
• On-site searches from the collection page — people searching from a collection means they couldn't find it by browsing
• Scroll depth — how far into the grid people go. If nobody scrolls past row two, products in row six may as well not exist.
• Exit rate — leaving from a collection page is the expensive kind of exit. They wanted something in this category and you didn't show it to them.
• Add-to-cart and conversion for sessions that started here
Every visit is tagged with where it came from — Google organic, paid search, paid social, email, direct, referral — so you can see conversion rate per channel, calculated from real humans only.
This is where bot filtering earns its keep. Bot traffic is not evenly distributed across your channels. It clusters in organic and direct, and it barely touches paid. So when you compare channels using raw session counts, you're systematically understating your organic performance and overstating paid.
Filter to real humans and the ranking can genuinely flip.
Shopify gives you a store-wide conversion rate. It's a single number averaged across every page, every product, and every visitor including the fake ones.
Mouse Whisperer gives you conversion rate per product page, from real visitors, alongside the behavior that explains it.
That's the difference between "our conversion rate is 2.3%" and "these four products convert at 5% and these nine convert at 0.4%, and the nine all have the same problem."
The second one is a to-do list.
Yes — three things, and they're the reason this doesn't feel like other A/B testing apps.
It tests your real theme templates.
Most A/B testing apps work by letting the original page load, then rewriting it in the browser. That's why you sometimes see a page flash and change on sites running tests — it's called flicker, and it's both ugly and bad for results, because some visitors see the old version for a moment and some never see the new one at all.
Mouse Whisperer duplicates your actual theme template into a real variant. Each visitor is assigned a variant on the server before the page renders, and then just gets that page. Nothing rewrites, nothing flashes. Both versions are real pages in your real theme.
Only real humans are counted.
The same filtering that runs everywhere else runs here. Bots and zombie sessions never enter the test results — which means your sample is smaller but honest, and you're not declaring winners based on scraper traffic.
It won't let you call a winner too early.
This is the most common way A/B tests go wrong. You're three days in, variant B is up 15%, you call it, you ship it, and it does nothing — because 15% on 60 visitors is noise.
The app holds back. Until there are enough real visitors in the test overall and enough in each individual variant, it will tell you "too early" instead of showing you a winner. Once there's enough data, it tells you which is leading and by how much — or tells you honestly that there's no clear difference, which is a real and useful result.
Test setup, briefly: pick a page type (product, collection, homepage, blog, page, or cart), pick what you're optimizing for (add to cart, conversion, revenue, click-through, or engagement), and launch. Visitors stay on the same variant for their whole session, so nobody sees the page change mid-visit.
The problem this solves: you have 200 pages and no idea which one is costing you money.
Run a store snapshot. It watches your store, groups traffic by page, and scores every page on two things:
• Weakness — how badly is this page underperforming? Built from scroll depth, click-through rate, exit rate, and how much of its traffic was junk. Product pages are additionally judged on add-to-cart and conversion rate, because that's what a product page is for.
• Opportunity — how much traffic does it get? A terrible page nobody visits is not your problem. A mediocre page with a thousand visits a week is.
Rank by both and you get a genuine priority list. Not "here's everything wrong with your store," which is paralysing — a short list of where the money is.
Each page also gets a confidence rating based on how many visitors it's actually seen, so you know which findings are solid and which need more data before you act on them.
The store snapshot doesn't just rank pages — it writes you a recommendation for each one, in plain language, with the reason attached.
Not "Page /products/blue-widget: score 71." More like: "1,240 human visits with 3% add-to-cart and 0.8% conversion. This product has enough traffic to diagnose product-page friction."
One click on that recommendation sets up a page snapshot on that exact page. You don't configure anything, you don't go find the page, you don't set up tracking. You click the problem and the diagnostic starts.
Then you get the X-ray: scroll depth, CTA clicks by name, exits, searches, filters — whatever that page type is judged on.
Now the actual work, which is less mystical than the acronym suggests.
The audit tells you what's happening. You work out why, and you change something:
• Nobody scrolls past the hero → your product images are too tall, or your key info is too far down
• High exit rate, high search count → your page isn't answering an obvious question
• Good scroll depth, bad add-to-cart → they're interested and something is stopping them. Price, shipping, stock, trust.
• Lots of filter-fiddling on a collection → your default sort is wrong
• Good add-to-cart, bad conversion → the problem isn't this page, it's your cart or checkout
You don't need a CRO qualification for any of that. You need to see the behavior, which until now you couldn't.
Then you change one thing. Not five — one. Because in a moment you're going to test whether it worked, and five changes at once tells you nothing about which one mattered.
You've made a change. Is it better? Genuinely — not "did this week look good."
Set up a template A/B test on the page you changed. Half your real visitors see the original, half see your new version, at the same time, under the same conditions. Pick what you're measuring: add to cart, conversion, revenue, click-through, or engagement.
Then leave it alone. The app will tell you when there's enough data, and not before.
You end up with one of three answers, all of which are useful:
• It won. Ship it. You now know what your customers respond to, which makes your next guess better.
• It lost. Revert it — and you just avoided permanently shipping something that would have quietly cost you money.
• No difference. That thing you argued about for two weeks doesn't matter. Go work on something that does.
Then go back to your store snapshot and take the next page off the list.
That's the loop. That's CRO. That's the whole thing.