There seems to be a lot of confusion about how GA tracks user engagement, which is understandable as even the Support article linked in another comment doesn't accurately explain what happens with single page visits.<p>First off, the metric by definition will always be skewed lower than reality. For multi-page visits, GA takes the time of the first hit and time of the second hit to calculate time on page (and will chain these together to get time on site). Since the page the user leaves on doesn't have a "second hit", that time is never included.[1]<p>For single page visits, as blog posts tend to be, the calculation is slightly different.[1]<p><pre><code> Time on Page = (time of last “engagement hit” on page) – (time of first hit from page)
</code></pre>
If you set up Event Tracking to trigger as a user scrolls to predetermined lengths of your article, it'll trigger these 'engagement hits' and give you a better approximation of time on site. If you just throw in a standard tracking code that fires off a _trackPageview() event on page load, then GA will never see a second engagement and will not be able to calculate any approximation of time on page/site, so it'll default into the "less than 10 seconds" bucket. Depending on what blogging platform you're using, there are some add-ins that provide such functionality.[2]<p>[1] <a href="http://cutroni.com/blog/2012/02/29/understanding-google-analytics-time-calculations/" rel="nofollow">http://cutroni.com/blog/2012/02/29/understanding-google-anal...</a><p>[2]<a href="http://www.analytics-ninja.com/blog/2012/06/google-analytics-bounce-rate-demystified.html" rel="nofollow">http://www.analytics-ninja.com/blog/2012/06/google-analytics...</a>