Sketch of browsers showing 3 minutes on one, 3 minutes on the other and 15 minutes on one = 6 minutes

I think session duration is a crap metric. It’s not just because it’s a misused measure of engagement (and I’m not the only one who thinks so – the Gurus at KissMetrics and Analytics Demystified are with me on this one). I hate it because most of the time, it is wildly inaccurate. It does not even approach the reality of what users are doing.

When you load a page that has Google Analytics (GA), it looks at a the the time. So if you’ve hit this page at 11:55am, Google knows that. Then, you decide to explore. So you click, and go to another page at 11:58am. Google knows that. So Google knows that you spent 3 minutes so far on the website. Then you go to another page at 12:01pm. Another three minutes. So far, six minutes. You then spend 10 minutes reading that third page, and leave the site.

So, let’s do the math:

  • Page 1: 3 minutes
  • Page 2: 3 minutes
  • Page 3: 10 minutes

My second grade math tells me that my session duration should be 16 minutes.

But Google Anlaytics tells me it is 6 minutes.


This image was taken from an Odd Squad episode. If you don't know what Odd Squad is, you should find out.

This image was taken from an Odd Squad episode. If you don’t know what Odd Squad is, you should find out.

I didn’t do anything after that third page. So GA has no idea how much time I spent there.

Let’s say you run a blog. You have an awesome social media presence. Millions of people all over the world click the link to every single article you post. They read the whole thing and close it. They do this 3, 4, 5, 6, 7 times a week. Guess what? None of their time will be counted in session duration. The higher your bounce rate, the more wildly inaccurate your session duration numbers.

There are workarounds for this (and that’s another blog post for another day). But relying on a metric that you have to hack is a bad practice.

Quite simply, there are better ways to track content engagement. One of my favorites is scroll tracking – firing an event when a user gets halfway or 75% the way down the page.