Can we monitor User Happiness on the Web with performance tools?

I really like that SpeedCurve tried to innovate with this recent "User Happiness" metric. It aggregates multiple technical metrics to decide if users visiting the page are happy or not with it. But I see several issues in this metric.

User Happiness monitoring in SpeedCurve

User Happiness monitoring in SpeedCurve

🔍 See full size

How is SpeedCurve's User Happiness metric computed?

Section titled How is SpeedCurve's User Happiness metric computed?

To be considered happy, a user navigation should validate all these technical metrics:

  • start render < 1100ms
  • AND page load < 3400ms
  • AND DOM Content Loaded < 1600ms
  • AND First Contentful Paint < 1200ms
  • AND First Input Delay < 8ms
  • AND First CPU Idle < 3900ms
  • AND longest Long Task < 380ms
  • AND total CPU Time < 1300ms

Even if performance is a key factor of happiness nowadays on the Web, the quality of the content and/or service provided by the page is obviously is even more important.

There are a lot of publications on the Web about measuring user happiness, most of which consider multiple user experience factors.

I guess that's why SpeedCurve added two other metrics to the formula:

  • AND the user did not bounce
  • AND the user did not abandon the page before it finished loading

Interesting indeed.

But I see several issues in this:

Users browse the Web in very different conditions

Section titled Users browse the Web in very different conditions

For the technical performance values, SpeedCurve chose "the thresholds [from] the median values across all of SpeedCurve's RUM data".

But as Bruce Lawson showed us a few years ago, we should be talking about the World Wide Web, not Wealthy Westerners' Web (read also part 2).

I think there are countries in the world where SpeedCurve's thresholds have no meaning at all, and users are very happy with much slower pages.

These threshold should at least be based on regional data, but that might not be enough, because even in the same region, expectations about speed can vary depending on the service, usage conditions, etc.

I don't believe it's possible to set such thresholds once and for all, people should be able to set their own thresholds.

No bounce is not a good happiness indicator

Section titled No bounce is not a good happiness indicator

I believe adding bounce and abandonment metrics to User Happiness comes from a good intention to consider happiness not only as pure speed oriented, but it has its own bias.

SpeedCurve tells us that

bounced [is] the condition that contributes the most [to] the Unhappy page views

In other words, no matter how well the other conditions perform, the number of Unhappy page views will always be 19% or higher.

But while bounce is often seen as an issue, it might be preferable sometimes.

When I'm looking for a precise information (store opening hours for example), I prefer coming directly from an external search to a page that contains the information, and bounce, than having to browse the site where the information is hard to find. In such scenarios, high bounce rate can be an indicator of good SEO, and user happiness. Even if the user abandon the page before it has finished loading, it might be because essential information was already available.

I don't think it's a good idea to consider bounces as failure to make the user happy.

So, as much as I'm happy people like SpeedCurve still try to find ways to monitor user happiness with automated technical tools, I think this iteration needs improvements. Keep up the good work!

22 Webmentions

4 likes

1 repost

  1. Sylvain FIX avatar

12 replies

  1. Mark Zeman avatar Mark Zeman
    Thanks for the feedback! We’ve actually been debating within the team if we should remove bounce rate from user happiness.
  2. Nicolas Hoizey avatar Nicolas Hoizey
    You’re welcome.

    As you’re read, I think you should remove it indeed.

    What about letting your users set their own thresholds?
  3. Patrick Valibus avatar Patrick Valibus
    Étrange 🤔 t'as tenté de pivoter via un
    RewriteBase /
    Sinon c'est toute les urls qui passent en http ? Si oui le problème vient d'ailleurs. Au pire force l'url en https dans la target de la redirection
  4. Arnaud Ligny 👨‍💻 💡 🚀 avatar Arnaud Ligny 👨‍💻 💡 🚀
    Hum, sur mon mobile, l'URL cible est bien servie en HTTPS 🤔
  5. alwaysdata avatar alwaysdata
    Bonjour, non aucun changement de notre côté. ^CB
  6. Nicolas Hoizey avatar Nicolas Hoizey
    Ok, merci
  7. m4dz avatar m4dz
    Comment tu gères le HTTPS ? En utilisant la case "Forcer HTTPS" dans la config de ton site ?
  8. Nicolas Hoizey avatar Nicolas Hoizey
    Je regarderai si j’ai coché ça, mais sinon redirection HTTP→HTTPS, en-tête HSTS, et présent dans les listes HSTS preload…
  9. Sylvain Delaporte avatar Sylvain Delaporte
    Ça ne serait pas l emplacement de la règle dans l htaccess ? VS une autre règle https ?
  10. Zach Leatherman avatar Zach Leatherman
    I do have one more question about that specific example—because you’re using `[width=636]` it has an implied max-width of 636px even though the intrinsic width of the image is 960px and you’re using max-width: 100%. Is that what you wanted?
  11. Eric Portis avatar Eric Portis
    I get the content-adaptive appeal of max-width, especially with single-src or x-descriptor images. But with w descriptors and sizes it just... hurts to think about. `sizes` is a hint about layout width which is sometimes dependent on the intrinsic size which depends on sizes!?
  12. Eric Portis avatar Eric Portis
    e.g., it's very difficult to explain these simple, common bugs to a newcommer. Dealing only in extrinsic sizing keeps things simple. codepen.io/eeeps/pen/xxRG…

5 mentions

  1. Jean-Pierre Vincent avatar Jean-Pierre Vincent
    Très bonne critique de l'indicateur de bonheur de speedcurve
  2. Audrey Schoonwater avatar Audrey Schoonwater
    Quand une règle #htaccess fonctionne mais te fait passer du HTTPS au HTTP : une idée pour aider Nicolas ?
  3. Nicolas Hoizey avatar Nicolas Hoizey
    @alwaysdata coucou, avez-vous changé quelque chose à mod_rewrite qui pourrait expliquer ce comportement ?
  4. body { display: none; } avatar body { display: none; }
    Interesting take: Can we monitor User Happiness on the Web with performance tools?

    nicolas-hoizey.com/articles/2020/…
  5. Marc Radziwill avatar Marc Radziwill
    Can we monitor User Happiness on the Web with performance tools? @nhoizey

    nicolas-hoizey.com/articles/2020/…

    #webperf #webperformance #perfmatters #uxspeed #sitespeed