Why is my Bounce Rate 0%

I am looking after an in-house vue webpage (not a SPA). Its a basic site which allows users to search for products and has the usual contact us, about us pages.

The tracking works alright am able to see how much time a user has spent on a page and if there was a search event or a filter event. When I go to Behaviour → Pages, the Bounce Rate for all pages is 0%.

From various pages I exit (close the browser) the site which doesn’t affect the Bounce rate. I have opened direct URLs like mysite.com/contactUs read for a minute and closed the browser. And still the bounce rate remains at 0%.
What actions do I need to do to change the bounce rate?
Is there an API I need to call to measure the bounce rate accurately?

The bounce rate is 0% all across including pages where users search and filter for products.

I track page views and events like so :
window._paq.push(['setUserId',userName]); window._paq.push(['trackPageView']);
window._paq.push(['trackEvent', category, action, name]);
window._paq.push(['trackSiteSearch', searchTerm, category, totalResults]);

Open the developer panel on your browser and look at the hits that go through matomo.php endopint.

Then load your page and see if you have double hits.

E.g. see here:

Thanks for replying. I see multiple network calls when I directly go to mysite.com/contactUs. What does this mean?

You have multiple pings other than the page view action.

Are those sent in a rapid succession?

If this is the case, then you most probably enabled a HeartBeat timer with a very short custom time.

And that’s why your sessions basically aren’t bouncing, ever.

Yes, they are sent in rapid succession.

I do have enableHeartBeatTimer: true, and heartBeatTimerInterval: 10, default being 15. How does heartbeat effect the bounce rate? If anything, it should’ve improved the metrics, from what little I understand. This also makes me think, shouldn’t the heartbeat timer send more network requests? I dont see any other requests in the Network tab going out to Matomo.

Also, I removed and increased the heartBeatTimerInterval with no change whatsoever. The bounce rate for my pages is still 0%. I also disabled the enableHeartBeatTimer which didn’t change anything.

Yes, pings impact time on site and bounce rate.

There’s clearly something wrong with your pings there, they shouldn’t fire like that.

Check your tags implementation!

If you’re not finding anything suspicious… look out for hidden tags implementations like tag manager or plugins. You can find the initiator right there in the dev panel.

Also, try disabling hb timer altoghether.

Hi @Happy_Buddha, @kal
In my understanding of how Matomo works, pings should not impact the bounce rate.
But bounce must be considered at whole visit level, not at page level. @Happy_Buddha, could you provide a visit log where you think there is bounce and Matomo seems be mistaken?
I found also some interesting documentations:

Also another post in this forum about low bounce rate…

1 Like

You’re actually right and I was mistaken. Heartbeat only impacts time-related metrics.

So if bounce rate is 0% there’s only one explanation: every session has more than one pageview.

Could be by error, or could be by design either.

1 Like

What if the visit level is just the page level? In my case, if I paste this into my URL : mysite.com/contactUs, the page loads and I close the browser (without scrolling or performing any action), then I expect to see a 100% Bounce Rate for this page, correct? I assume I am correct based on this link : https://matomo.org/faq/custom-reports/why-is-the-bounce-rate-in-custom-reports-different-to-bounce-rate-in-the-pages-report/

A visit that starts on /page2 and immediately exits.

The “Pages” report will show the bounce rate for /page2 as 100% because all of the visits that started on that page immediately exited the website.

But I obviously dont see it happen. Please give me some time to find out how to get the visit log, or if you know where I can look this up, I’d appreciate a link please.

@kal The initiator in all cases is matomo.js:36 I have used various combinations of heartbeattimer and enableHeartBeatTimer with no effect on the bounce rate.
You say the session has more than one pageview - how can I check if a session has more than one pageview?

In case it helps, I initiate matomo tracking in my vue application’ store right after my user is logged in (have to do this as matomo doesn’t override userId on visitorId and my tracking isn’t tied to the logged in user)

export function initiateMatomoTracking()
    Vue.use(VueMatomo, {      
        host: getMatomoTrackingURL(),
        siteId: getMatomoTrackingSiteId(),
        // Enables automatically registering pageviews on the router
        //router: router,   
        userId: usernameFromStore,
        enablelinktracking: true,
  window._paq.push(['trackPageView']); //To track pageview

taken straight from the integration guide.
I am on "vue": "^2.6.14", and "vue-matomo": "^4.2.0",

In Visitors > Visits Log

1 Like

It has one page view.

Where it says 1 - is my attempt to load up the app, which then does the auth process to set the users cookie. The mouse over under 1 is the timestamp of localhost. After which I close the tab, open a new tab and paste in the direct URL of the page whose bounce rate I expect to see 100% - the page view is recorded as shown where it says 2. But its bounce rate is still 0%.

This is from Behaviour → Pages

So page view is 1, I have Matomo configured correctly - I dont understand why the bounce rate doesn’t change.