[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-slug_blog_3_1":3,"blog-slug_blog_you-are-getting-fooled-by-google-analytics-time-on-page-metric_1000_1":40},{"article":4,"articles":15,"meta":33,"languages":39},{"id":5,"title":6,"excerpt":7,"locale":8,"slug":9,"authorSlug":10,"automaticTranslated":11,"publishedAt":12,"updatedAt":13,"doFollowLinks":11,"showIndex":11,"showCallToActions":11,"articleType":14},3060,"The EU wants to kill cookie banners","The EU wants to end annoying cookie pop-ups by letting users set their consent once in their browser. If passed, websites will have to respect those choices.","en","the-eu-wants-to-kill-cookie-banners-by-moving-consent-to-your-browser","iron-brands",false,"2025-11-20T05:40:14.356Z","2025-11-20T06:13:15.812Z","blog",[4,16,26],{"id":17,"title":18,"excerpt":19,"locale":8,"slug":20,"authorSlug":10,"automaticTranslated":11,"publishedAt":21,"updatedAt":22,"ctaTitle":23,"ctaDescription":24,"doFollowLinks":11,"showIndex":25,"showCallToActions":11,"articleType":14},3019,"Google is tracking you (even when you use DuckDuckGo)","Google tracks users even on DuckDuckGo via Analytics and embeds. A new study shows how deep Google’s web tracking really goes.","google-is-tracking-you-even-when-you-use-duck-duck-go","2025-07-14T08:56:41.709Z","2025-07-14T11:26:01.386Z","If you care about privacy, you don't use Google Analytics","Ditch the tracking, keep the insights. Try Simple Analytics.",true,{"id":27,"title":28,"excerpt":29,"locale":8,"slug":30,"authorSlug":10,"automaticTranslated":11,"publishedAt":31,"updatedAt":32,"doFollowLinks":11,"showIndex":11,"showCallToActions":11,"articleType":14},3018," German court rules Meta’s tracking tech violates GDPR","German court rules Meta’s tracking tech violates GDPR, allowing lawsuits without proof of harm. Big risks ahead for sites using Meta pixels.","german-court-rules-meta-s-tracking-tech-violates-gdpr","2025-07-10T08:20:51.111Z","2025-07-10T12:16:26.327Z",{"pagination":34},{"page":35,"pageSize":36,"pageCount":37,"total":38},1,3,362,1084,{},{"article":41},{"contentHtml":42,"content":43,"coverImageWithText":44,"inlineMedia":51,"id":52,"title":53,"excerpt":54,"locale":8,"slug":55,"authorSlug":10,"automaticTranslated":11,"publishedAt":56,"updatedAt":57,"doFollowLinks":11,"showIndex":25,"showCallToActions":25,"articleType":14,"cover":44,"languages":58},"\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Website analytics are key. At least \u003Ca referrerpolicy=\"strict-origin-when-cross-origin\" href=\"https://w3techs.com/technologies/overview/traffic_analysis?utm_source=simpleanalytics.com\" target=\"_blank\" rel=\"noopener nofollow\">56% of the websites\u003C/a> worldwide are using some sort of analytics tool to track visitor metrics. \u003Ca referrerpolicy=\"strict-origin-when-cross-origin\" href=\"https://analytics.google.com/analytics/web/?utm_source=simpleanalytics.com\" target=\"_blank\" rel=\"noopener nofollow\">Google Analytics\u003C/a> is by far the most used one (85%), and chances are high, you are using it too.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">\u003Cem>Time on page\u003C/em> is a critical metric to track. It gives you insights into how engaging your content is and if people are finding what they are looking for. But have you ever wondered how google comes up with the data you see in your dashboard?\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">We’ve deconstructed how Google calculates the time on page metric and what’s wrong with it in this post.\u003C/ContentEditable>\n\u003Cp>\u003Cimg class=\"mx-auto rounded-lg\" src=\"https://assets.simpleanalytics.com/gifs/something-fishy.gif\" />\u003C/p>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">When building our privacy-first \u003CNuxtLink to=\"https://simpleanalytics.com/websites?from=/\"  referrerpolicy=\"unsafe-url\" rel=\"\">Google Analytics alternative\u003C/NuxtLink>, we had to figure out how to calculate different website tracking metrics ourselves. So the first thing we did was check out how the biggest website data devouring machine on the planet, called Google, was doing it.\u003C/ContentEditable>\n\u003Col class=\"counters\">\u003Cli>\u003Col>\u003Cli>\u003CNuxtLink to=\"#here-is-what-happens-stay-with-me-on-this-one\">Here is what happens (stay with me on this one):\u003C/NuxtLink>\u003C/li>\u003Cli>\u003CNuxtLink to=\"#here-is-what-should-happen\">Here is what should happen:\u003C/NuxtLink>\u003C/li>\u003C/ol>\u003C/li>\u003Cli>\u003CNuxtLink to=\"#means-vs-median\">Means vs median\u003C/NuxtLink>\u003C/li>\u003C/ol>\u003CCtaOne />\u003CContentEditable  id=\"how-google-calculates-time-on-page\" parent=\"\" tag=\"h2\" :articleId=\"312\">How Google calculates \u003Cem>time on page\u003C/em>\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Google uses timestamps between ‘hits’ to calculate a visitor’s time on a specific page.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">This means that a timer starts if a visitor lands on a page on your website. The timer clocks if the visitor navigates to another page on your website.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">The timer calculates the time between the two actions as \u003Cem>time on page\u003C/em>.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">What&#39;s fishy about this?\u003C/ContentEditable>\n\u003Col>\n\u003Cli>Google Analytics does not record the \u003Cem>time on page\u003C/em> if you only visit one page.\u003C/li>\n\u003Cli>Google Analytics does not record the \u003Cem>time on page\u003C/em> of the last page visited.\u003C/li>\n\u003C/ol>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Let&#39;s deconstruct the above statements:\u003C/ContentEditable>\n\u003Col>\n\u003Cli>If a visitor only visits one page and navigates away after, the timer starts but never clocks... because the visitor is not visiting a second page. The visitor is identified as a bounce. Google Analytics does not count the \u003Cem>time on page\u003C/em> when a visitor bounces.\u003C/li>\n\u003Cli>This also happens when a visitor lands on the last page. The timer starts but never clocks... because, again, the visitor navigates away and is not visiting another page on your website, so there won&#39;t be another &#39;hit&#39;.\u003C/li>\n\u003C/ol>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Lastly (and this is by far the most impactful one)...\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Google Analytics does record the \u003Cem>time on page\u003C/em>, even if a visitor is not actively spending time on your page.\u003C/ContentEditable>\n\u003Cp>\u003Cimg class=\"mx-auto rounded-lg\" src=\"https://assets.simpleanalytics.com/gifs/michael-scott-what.gif\" />\u003C/p>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Let&#39;s unravel this:\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">You are probably familiar with the cluttered tabs like the one below.\u003C/ContentEditable>\n\u003Cp>\u003Cimg src=\"https://assets.simpleanalytics.com/blog/you-are-getting-fooled-by-google-analytics-time-on-page-metric/tabclutter.png\" alt=\"\">\u003C/p>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">According to Google Analytics, I am spending time on all of these pages right now.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Every time I navigate to a different tab, the timer starts... but only clocks when I close the tab. As the tabs are still open, the timer is still recording.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Assume a visitor opened a blog post on your website but got distracted halfway and left the tab open to finish it later. According to Google, the visitor is still spending on your website and clocks the \u003Cem>time on page\u003C/em> at 30 minutes (this is the maximum Google records).\u003C/ContentEditable>\n\u003CContentEditable  id=\"here-is-what-happens-stay-with-me-on-this-one\" parent=\"\" tag=\"h3\" :articleId=\"312\">Here is what happens (stay with me on this one):\u003C/ContentEditable>\n\u003Cp>\u003Cimg src=\"https://docs.simpleanalytics.com/images/time-on-page-ga.png\" alt=\"\">\u003C/p>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">The first screen in the illustration above shows a visit to a page on your website for 5 seconds. Let&#39;s call it page1. The visitor then navigates away to another website in a different tab for 20 seconds (in the second screen). After which, the visitor closes the tab of the other website to come back to page1 (in the third screen). After spending another 10 seconds on page 1 again, the visitor navigates to another page on your website (page2) on the fourth screen, before closing their browser.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">The Google Analytics&#39; timer starts when the visitor visits page1 of your website (+5 seconds). The timer does not stop when the visitor navigates away to the other website in a different tab (+20 seconds). When the visitor comes back to page1 on your website, the timer adds another +10 seconds before clocking at the moment the visitor visits page2. Lastly, the timer fails to record the time you spend on page2 because this is the last page the visitor visits before closing their browser.\u003C/ContentEditable>\n\u003Cp>\u003Cimg class=\"mx-auto rounded-lg\" src=\"https://assets.simpleanalytics.com/gifs/math.gif\" />\u003C/p>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">In this situation, Google only knows the \u003Cem>time on page\u003C/em> for the first page, not for the second.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">According to Google Analytics, the \u003Cem>time on page\u003C/em> for page1 is 35 seconds (5+20+10).\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">This is flawed, to say the least.\u003C/ContentEditable>\n\u003CContentEditable  id=\"here-is-what-should-happen\" parent=\"\" tag=\"h3\" :articleId=\"312\">Here is what should happen:\u003C/ContentEditable>\n\u003Cp>\u003Cimg src=\"https://docs.simpleanalytics.com/images/time-on-page-sa.png\" alt=\"\">\u003C/p>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">At Simple Analytics, we figured out how to detect when a user opens a new tab and navigates to a different website. We clock our timer the moment a user moves away from the page. We can accurately measure how long a user spends on every page.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">In the above illustration, the \u003Cem>time on page\u003C/em> for page1 is 15 seconds, and for page2 it is 5 seconds — nothing more, nothing less.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">In comparison to Google Analytics, we record \u003Cem>time on page\u003C/em> when a visitor only visits one page. However, we exclude visitors who spend less than 5 seconds to provide the best insights. We consider this a bounced visitor.\u003C/ContentEditable>\n\u003CContentEditable  id=\"means-vs-median\" parent=\"\" tag=\"h2\" :articleId=\"312\">Means vs median\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">The data showing up in your Google Analytics dashboard measures the average \u003Cem>time on page\u003C/em> of all your website pages. Google calculates this by using the mean. At Simple Analytics, we use the median to leave out outliers.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Consider the following example:\u003C/ContentEditable>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Page view #\u003C/th>\n\u003Cth>1\u003C/th>\n\u003Cth>2\u003C/th>\n\u003Cth>3\u003C/th>\n\u003Cth>4\u003C/th>\n\u003Cth>5\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Cem>Time on page\u003C/em> (in seconds)\u003C/td>\n\u003Ctd>10\u003C/td>\n\u003Ctd>20\u003C/td>\n\u003Ctd>15\u003C/td>\n\u003Ctd>10\u003C/td>\n\u003Ctd>1000\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">When you calculate the average \u003Cem>time on page\u003C/em> by using the mean, you sum up all the numbers and divide by the total number of pages. The average \u003Cem>time on page\u003C/em> is 211 seconds.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Using the median, you account for the outlier by sorting the numbers and picking the middle number. The average \u003Cem>time on page\u003C/em> is 15 seconds.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">We feel that Google’s time on page metric is flawed, and we make a case for a better alternative. If you feel the same, give us a try. You&#39;ll be supporting an indie team of two (me &amp; Iron) who built a privacy-first alternative to Google Analytics.\u003C/ContentEditable>\n\u003CContentEditable  parent=\"\" tag=\"p\" :articleId=\"312\">Have any questions? Ask away!\u003C/ContentEditable>\n\u003Cp>\u003Cimg class=\"mx-auto rounded-lg\" src=\"https://assets.simpleanalytics.com/gifs/t-hanks.gif\" />\u003C/p>\n","Website analytics are key. At least [56% of the websites](https://w3techs.com/technologies/overview/traffic_analysis) worldwide are using some sort of analytics tool to track visitor metrics. [Google Analytics](https://analytics.google.com/analytics/web/) is by far the most used one (85%), and chances are high, you are using it too.\n\n_Time on page_ is a critical metric to track. It gives you insights into how engaging your content is and if people are finding what they are looking for. But have you ever wondered how google comes up with the data you see in your dashboard?\n\nWe’ve deconstructed how Google calculates the time on page metric and what’s wrong with it in this post.\n\n{% include gif.html slug=\"something-fishy\" alt=\"Something fishy...\" width=\"500\" height=\"281\" color=\"#f1e4be\" %}\n\nWhen building our privacy-first [Google Analytics alternative](https://simpleanalytics.com/websites?from=/), we had to figure out how to calculate different website tracking metrics ourselves. So the first thing we did was check out how the biggest website data devouring machine on the planet, called Google, was doing it.\n\n## How Google calculates _time on page_\n\nGoogle uses timestamps between ‘hits’ to calculate a visitor’s time on a specific page.\n\nThis means that a timer starts if a visitor lands on a page on your website. The timer clocks if the visitor navigates to another page on your website.\n\nThe timer calculates the time between the two actions as _time on page_.\n\nWhat's fishy about this?\n\n1. Google Analytics does not record the _time on page_ if you only visit one page.\n2. Google Analytics does not record the _time on page_ of the last page visited.\n\nLet's deconstruct the above statements:\n\n1. If a visitor only visits one page and navigates away after, the timer starts but never clocks... because the visitor is not visiting a second page. The visitor is identified as a bounce. Google Analytics does not count the _time on page_ when a visitor bounces.\n2. This also happens when a visitor lands on the last page. The timer starts but never clocks... because, again, the visitor navigates away and is not visiting another page on your website, so there won't be another 'hit'.\n\nLastly (and this is by far the most impactful one)...\n\nGoogle Analytics does record the _time on page_, even if a visitor is not actively spending time on your page.\n\n{% include gif.html slug=\"michael-scott-what\" alt=\"What?\" width=\"480\" height=\"400\" color=\"#473d46\" %}\n\nLet's unravel this:\n\nYou are probably familiar with the cluttered tabs like the one below.\n\n![](https://assets.simpleanalytics.com/blog/you-are-getting-fooled-by-google-analytics-time-on-page-metric/tabclutter.png)\n\nAccording to Google Analytics, I am spending time on all of these pages right now.\n\nEvery time I navigate to a different tab, the timer starts... but only clocks when I close the tab. As the tabs are still open, the timer is still recording.\n\nAssume a visitor opened a blog post on your website but got distracted halfway and left the tab open to finish it later. According to Google, the visitor is still spending on your website and clocks the _time on page_ at 30 minutes (this is the maximum Google records).\n\n### Here is what happens (stay with me on this one):\n\n![](https://docs.simpleanalytics.com/images/time-on-page-ga.png)\n\nThe first screen in the illustration above shows a visit to a page on your website for 5 seconds. Let's call it page1. The visitor then navigates away to another website in a different tab for 20 seconds (in the second screen). After which, the visitor closes the tab of the other website to come back to page1 (in the third screen). After spending another 10 seconds on page 1 again, the visitor navigates to another page on your website (page2) on the fourth screen, before closing their browser.\n\nThe Google Analytics' timer starts when the visitor visits page1 of your website (+5 seconds). The timer does not stop when the visitor navigates away to the other website in a different tab (+20 seconds). When the visitor comes back to page1 on your website, the timer adds another +10 seconds before clocking at the moment the visitor visits page2. Lastly, the timer fails to record the time you spend on page2 because this is the last page the visitor visits before closing their browser.\n\n{% include gif.html slug=\"math\" alt=\"Math...\" width=\"350\" height=\"148\" color=\"#ba7b4b\" %}\n\nIn this situation, Google only knows the _time on page_ for the first page, not for the second.\n\nAccording to Google Analytics, the _time on page_ for page1 is 35 seconds (5+20+10).\n\nThis is flawed, to say the least.\n\n### Here is what should happen:\n\n![](https://docs.simpleanalytics.com/images/time-on-page-sa.png)\n\nAt Simple Analytics, we figured out how to detect when a user opens a new tab and navigates to a different website. We clock our timer the moment a user moves away from the page. We can accurately measure how long a user spends on every page.\n\nIn the above illustration, the _time on page_ for page1 is 15 seconds, and for page2 it is 5 seconds — nothing more, nothing less.\n\nIn comparison to Google Analytics, we record _time on page_ when a visitor only visits one page. However, we exclude visitors who spend less than 5 seconds to provide the best insights. We consider this a bounced visitor.\n\n## Means vs median\n\nThe data showing up in your Google Analytics dashboard measures the average _time on page_ of all your website pages. Google calculates this by using the mean. At Simple Analytics, we use the median to leave out outliers.\n\nConsider the following example:\n\n| Page view #                 | 1   | 2   | 3   | 4   | 5    |\n| --------------------------- | --- | --- | --- | --- | ---- |\n| _Time on page_ (in seconds) | 10  | 20  | 15  | 10  | 1000 |\n\nWhen you calculate the average _time on page_ by using the mean, you sum up all the numbers and divide by the total number of pages. The average _time on page_ is 211 seconds.\n\nUsing the median, you account for the outlier by sorting the numbers and picking the middle number. The average _time on page_ is 15 seconds.\n\nWe feel that Google’s time on page metric is flawed, and we make a case for a better alternative. If you feel the same, give us a try. You'll be supporting an indie team of two (me & Iron) who built a privacy-first alternative to Google Analytics.\n\nHave any questions? Ask away!\n\n{% include gif.html slug=\"t-hanks\" alt=\"Thanks from Tom Thanks...\"  width=\"480\" height=\"270\" align=\"left\" color=\"#584237\" %}\n",{"alt":45,"caption":46,"small":47,"medium":48,"large":49,"original":50,"averageColorHex":-1,"isDark":11},"Do Not Get Fooled By Google Analytics.png",null,"https://cms-assets.simpleanalytics.com/small_do_not_get_fooled_by_google_analytics_text_2aa8051d51.png","https://cms-assets.simpleanalytics.com/medium_do_not_get_fooled_by_google_analytics_text_2aa8051d51.png","https://cms-assets.simpleanalytics.com/large_do_not_get_fooled_by_google_analytics_text_2aa8051d51.png","https://cms-assets.simpleanalytics.com/do_not_get_fooled_by_google_analytics_text_2aa8051d51.png",{"data":46},312,"Google Analytics' time on page metric is flawed","Time on page is an important metric to track. But have you ever wondered how google comes up with the data in your dashboard?","you-are-getting-fooled-by-google-analytics-time-on-page-metric","2022-02-15T00:00:00.000Z","2025-01-23T19:39:45.922Z",{"en":59,"de":60,"fr":62,"it":64,"es":66,"nl":68},{"slug":55},{"slug":61},"die-metrik-der-verweildauer-auf-der-seite-in-google-analytics-ist-fehlerhaft",{"slug":63},"la-mesure-du-temps-passe-sur-la-page-dans-google-analytics-est-erronee",{"slug":65},"il-tempo-di-permanenza-sulla-pagina-di-google-analytics-e-difettoso",{"slug":67},"la-metrica-del-tiempo-en-pagina-de-google-analytics-es-erronea",{"slug":69},"google-analytics-time-on-page-metric-is-gebrekkig"]