SlideShare a Scribd company logo
Web performance:
Measuring user experience
Giorgos Bamparopoulos
About me
Senior software engineer – Bet365
www.meetup.com/manchester-node-workshop
@bamparopoulos
@bamparopoulos
www.bamparopoulos.com
What is performance?
Is it worth it?
o 53% of mobile site visits were abandoned if a page took longer than 3s to load [1]
o Sites loading within 5s had 70% longer sessions, 35% lower bounce rates, and 25%
higher ad viewability than sites taking nearly four times longer at 19s [1]
o Pinterest increased search engine traffic and sign-ups by 15% when they reduced
perceived wait times by 40% [2]
Impact calculator tool: https://www.thinkwithgoogle.com/feature/testmysite
MYTHBUSTERS – Dev edition
Performance myth #1
User performance can be measured with a single
number!
… but there are many metrics!
o Site speed is not as simple as having a single score
o We need to look at the entire picture: What are the metrics that make up you site’s
performance?
o It’s a distribution
* https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics
Performance and user experience can be captured with
a single user!
Performance myth #2
Different conditions!
User conditions vary depending on many factors:
o Network conditions
o Connection speed
o Device / hardware
o Browser
o Cache
* https://testsigma.com/blog/cloud-based-cross-browser-testing-tools-advantages
Performance myth #3
You only need to care about performance at load time!
It’s an entire experience!
o Users associate performance with their overall experience
o Bad user experiences can happen at any time
* https://www.sparksinteractive.co.nz/services/user-interface-design
 Clicks
 Toggling form controls
 Tabs
 Swipes
 Scrolls
 Animations
RAIL Model
Process events in
under 50ms
Produce a frame in
10ms
Maximize idle time Become interactive
in under 5 seconds
Developer testing vs real world
Debugging / Development
Same environment
Real world traffic
Benchmarking
Developer
Real-world user experience
Correlation to business KPIs
Debugging
Analysis
Real-world
Data capture
Data storage
Reporting
Analysis
Optimisation
Real user monitoring (RUM)
User experience
What users think?
How do they perceive performance?
o Is it happening?
o Is it useful?
o Is it usable?
o Is it delightful?
“ Google developers “
Performance metrics
o First Paint (FP) - The first elements of the web page are rendered
o First Contentful Paint (FCP) - More elements are rendered on the page
o First Meaningful Paint (FMP) - Most important element of a page are visible
o Time To Interactive (TTI) - When the user can interact with the page
o Long Tasks (LT) - Tasks that block the main thread (50 ms or more)
… More!
Loading…
* https://developers.google.com/web/fundamentals/performance/rail
Is it loading?
What is your most important element?
How to measure: Web APIs
o Performance Timeline
o User Timing API
o Navigation Timing API
o Resource Timing API
…browser support?
Performance entry
Single performance metric that is part of the performance timeline
o Navigation
o Resource (images, scripts, fonts, videos, iframes,…)
o Paint (“render”)
o Long task
o Application entry (mark / measure)
Properties: name, entryType, startTime, duration
Retrieves performance entry metrics:
o getEntries() - Gets all entries in the timeline
o getEntriesByType(type) - Gets all entries of the specified type (e.g. resource, mark)
o getEntriesByName(name, type) - Gets all entries with the specified name (e.g. name)
Performance timeline
Navigation entries
o Provides data that can be used to measure the performance of a web site
o Breaks down the events required to retrieve and display webpages and provides
timestamps
https://www.w3.org/TR/navigation-timing-2
Getting navigation entries
Navigation entry:
Resource entries
o Performance metrics about all the resources
o Uses concepts of navigation
o Includes transfer size, encoded body size, decoded body size
o Waterfall shows all resources fetched from the network in a timeline
Paint entries
When browser converts the render tree to pixels on the screen:
o First paint
o First contentful paint
o Measuring page load
o Send all timestamps to analytics
o Raise an event if any resource takes more than expected to download
o Track specific resources (e.g. third-party ads or analytics)
o Event listeners – How long did it take?
Use cases
Sending metrics to server
o Gather all user data from pages
o Send data to the server before unloading the document
o Beacon API
Analysing results
o Benchmarking
o Correlate with business metrics
o Histograms
o Distributions
o Web / mobile
o Browser
o Geographic locations
o Percentiles
Tools for performance testing
o Waterfall: https://github.com/andydavies/waterfall
o Perfmap: https://github.com/zeman/perfmap
o Performance bookmarklet: https://github.com/nurun/performance-bookmarklet
o Elastic APM RUM agent: https://github.com/elastic/apm-agent-rum-js
o Boomerang: https://github.com/akamai/boomerang
What’s next? Prevent regression!
The goal is to be faster!
o Testing both in lab and real world
o Get notifications if performance regresses
o Integrate performance tests in the CI
Any questions?
Thank you for your time!
1. https://developers.google.com/web/fundamentals/performance/why-performance-matters
2. https://medium.com/pinterest-engineering/driving-user-growth-with-performance-improvements-cfc50dafadd7
3. https://developer.mozilla.org/en-US/docs/Web/API
4. https://developers.google.com/web/fundamentals/performance/speed-tools
5. https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics
6. https://www.w3.org/TR/performance-timeline-2
7. https://www.w3.org/TR/navigation-timing-2
8. https://www.w3.org/TR/resource-timing-2
9. https://www.w3.org/TR/user-timing-2
10. https://nicj.net/resourcetiming-in-practice/#resourcetiming-in-practice-updates
11. https://developers.google.com/web/fundamentals/performance/rail
12. https://wicg.github.io/largest-contentful-paint/#dom-largestcontentfulpaint-rendertime
References

More Related Content

Similar to Measuring web performance with user-centric metrics (20)

PDF
Improving user experience with real user measurements
Samar Panda
 
PPTX
2021 Chrome Dev Summit: Web Performance 101
Tammy Everts
 
PPTX
Metrics, metrics everywhere (but where the heck do you start?)
SOASTA
 
PPTX
Metrics, metrics everywhere (but where the heck do you start?)
Tammy Everts
 
PPTX
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Cliff Crocker
 
PPTX
Measuring web performance
Patrick Meenan
 
PDF
MeasureWorks - Why your customers don't like to wait!
MeasureWorks
 
PPTX
Using Modern Browser APIs to Improve the Performance of Your Web Applications
Nicholas Jansma
 
PPTX
The Truth About Your Web App's Performance
John Riviello
 
PPTX
Measuring performance - Velocity 2016 Training
Patrick Meenan
 
PPTX
Performance on a budget
Dimitry Ushakov
 
PPTX
How I learned to stop worrying and love UX metrics
Tammy Everts
 
PDF
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
Holger Bartel
 
PPTX
Measuring User Experience in the Browser
Alois Reitbauer
 
PPTX
Measuring What Matters - Fluent Conf 2018
Cliff Crocker
 
PPTX
Web Application Performance from User Perspective
ŁódQA
 
PDF
Client-Side Performance Testing
Anand Bagmar
 
PDF
Demystifying web performance tooling and metrics
Anna Migas
 
PDF
Edge 2014: A Modern Approach to Performance Monitoring
Akamai Technologies
 
PPTX
Applying a Methodical Approach to Website Performance
PostSharp Technologies
 
Improving user experience with real user measurements
Samar Panda
 
2021 Chrome Dev Summit: Web Performance 101
Tammy Everts
 
Metrics, metrics everywhere (but where the heck do you start?)
SOASTA
 
Metrics, metrics everywhere (but where the heck do you start?)
Tammy Everts
 
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Cliff Crocker
 
Measuring web performance
Patrick Meenan
 
MeasureWorks - Why your customers don't like to wait!
MeasureWorks
 
Using Modern Browser APIs to Improve the Performance of Your Web Applications
Nicholas Jansma
 
The Truth About Your Web App's Performance
John Riviello
 
Measuring performance - Velocity 2016 Training
Patrick Meenan
 
Performance on a budget
Dimitry Ushakov
 
How I learned to stop worrying and love UX metrics
Tammy Everts
 
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
Holger Bartel
 
Measuring User Experience in the Browser
Alois Reitbauer
 
Measuring What Matters - Fluent Conf 2018
Cliff Crocker
 
Web Application Performance from User Perspective
ŁódQA
 
Client-Side Performance Testing
Anand Bagmar
 
Demystifying web performance tooling and metrics
Anna Migas
 
Edge 2014: A Modern Approach to Performance Monitoring
Akamai Technologies
 
Applying a Methodical Approach to Website Performance
PostSharp Technologies
 

Recently uploaded (20)

PDF
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
PPTX
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
PPTX
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
PDF
intro_to_cpp_namespace_robotics_corner.pdf
MohamedSaied877003
 
PDF
Meet in the Middle: Solving the Low-Latency Challenge for Agentic AI
Alluxio, Inc.
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
Latest Capcut Pro 5.9.0 Crack Version For PC {Fully 2025
utfefguu
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
Simplify React app login with asgardeo-sdk
vaibhav289687
 
PPTX
Prompt Like a Pro. Leveraging Salesforce Data to Power AI Workflows.pptx
Dele Amefo
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
Why is partnering with a SaaS development company crucial for enterprise succ...
Nextbrain Technologies
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Best Web development company in india 2025
Greenusys
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
intro_to_cpp_namespace_robotics_corner.pdf
MohamedSaied877003
 
Meet in the Middle: Solving the Low-Latency Challenge for Agentic AI
Alluxio, Inc.
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Latest Capcut Pro 5.9.0 Crack Version For PC {Fully 2025
utfefguu
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
Simplify React app login with asgardeo-sdk
vaibhav289687
 
Prompt Like a Pro. Leveraging Salesforce Data to Power AI Workflows.pptx
Dele Amefo
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
Why is partnering with a SaaS development company crucial for enterprise succ...
Nextbrain Technologies
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Best Web development company in india 2025
Greenusys
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Ad

Measuring web performance with user-centric metrics

  • 1. Web performance: Measuring user experience Giorgos Bamparopoulos
  • 2. About me Senior software engineer – Bet365 www.meetup.com/manchester-node-workshop @bamparopoulos @bamparopoulos www.bamparopoulos.com
  • 4. Is it worth it? o 53% of mobile site visits were abandoned if a page took longer than 3s to load [1] o Sites loading within 5s had 70% longer sessions, 35% lower bounce rates, and 25% higher ad viewability than sites taking nearly four times longer at 19s [1] o Pinterest increased search engine traffic and sign-ups by 15% when they reduced perceived wait times by 40% [2] Impact calculator tool: https://www.thinkwithgoogle.com/feature/testmysite
  • 6. Performance myth #1 User performance can be measured with a single number!
  • 7. … but there are many metrics! o Site speed is not as simple as having a single score o We need to look at the entire picture: What are the metrics that make up you site’s performance? o It’s a distribution * https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics
  • 8. Performance and user experience can be captured with a single user! Performance myth #2
  • 9. Different conditions! User conditions vary depending on many factors: o Network conditions o Connection speed o Device / hardware o Browser o Cache * https://testsigma.com/blog/cloud-based-cross-browser-testing-tools-advantages
  • 10. Performance myth #3 You only need to care about performance at load time!
  • 11. It’s an entire experience! o Users associate performance with their overall experience o Bad user experiences can happen at any time * https://www.sparksinteractive.co.nz/services/user-interface-design  Clicks  Toggling form controls  Tabs  Swipes  Scrolls  Animations
  • 12. RAIL Model Process events in under 50ms Produce a frame in 10ms Maximize idle time Become interactive in under 5 seconds
  • 13. Developer testing vs real world Debugging / Development Same environment Real world traffic Benchmarking Developer Real-world user experience Correlation to business KPIs Debugging Analysis Real-world
  • 15. User experience What users think? How do they perceive performance? o Is it happening? o Is it useful? o Is it usable? o Is it delightful? “ Google developers “
  • 16. Performance metrics o First Paint (FP) - The first elements of the web page are rendered o First Contentful Paint (FCP) - More elements are rendered on the page o First Meaningful Paint (FMP) - Most important element of a page are visible o Time To Interactive (TTI) - When the user can interact with the page o Long Tasks (LT) - Tasks that block the main thread (50 ms or more) … More!
  • 19. What is your most important element?
  • 20. How to measure: Web APIs o Performance Timeline o User Timing API o Navigation Timing API o Resource Timing API …browser support?
  • 21. Performance entry Single performance metric that is part of the performance timeline o Navigation o Resource (images, scripts, fonts, videos, iframes,…) o Paint (“render”) o Long task o Application entry (mark / measure) Properties: name, entryType, startTime, duration
  • 22. Retrieves performance entry metrics: o getEntries() - Gets all entries in the timeline o getEntriesByType(type) - Gets all entries of the specified type (e.g. resource, mark) o getEntriesByName(name, type) - Gets all entries with the specified name (e.g. name) Performance timeline
  • 23. Navigation entries o Provides data that can be used to measure the performance of a web site o Breaks down the events required to retrieve and display webpages and provides timestamps https://www.w3.org/TR/navigation-timing-2
  • 25. Resource entries o Performance metrics about all the resources o Uses concepts of navigation o Includes transfer size, encoded body size, decoded body size o Waterfall shows all resources fetched from the network in a timeline
  • 26. Paint entries When browser converts the render tree to pixels on the screen: o First paint o First contentful paint
  • 27. o Measuring page load o Send all timestamps to analytics o Raise an event if any resource takes more than expected to download o Track specific resources (e.g. third-party ads or analytics) o Event listeners – How long did it take? Use cases
  • 28. Sending metrics to server o Gather all user data from pages o Send data to the server before unloading the document o Beacon API
  • 29. Analysing results o Benchmarking o Correlate with business metrics o Histograms o Distributions o Web / mobile o Browser o Geographic locations o Percentiles
  • 30. Tools for performance testing o Waterfall: https://github.com/andydavies/waterfall o Perfmap: https://github.com/zeman/perfmap o Performance bookmarklet: https://github.com/nurun/performance-bookmarklet o Elastic APM RUM agent: https://github.com/elastic/apm-agent-rum-js o Boomerang: https://github.com/akamai/boomerang
  • 31. What’s next? Prevent regression! The goal is to be faster! o Testing both in lab and real world o Get notifications if performance regresses o Integrate performance tests in the CI
  • 32. Any questions? Thank you for your time!
  • 33. 1. https://developers.google.com/web/fundamentals/performance/why-performance-matters 2. https://medium.com/pinterest-engineering/driving-user-growth-with-performance-improvements-cfc50dafadd7 3. https://developer.mozilla.org/en-US/docs/Web/API 4. https://developers.google.com/web/fundamentals/performance/speed-tools 5. https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics 6. https://www.w3.org/TR/performance-timeline-2 7. https://www.w3.org/TR/navigation-timing-2 8. https://www.w3.org/TR/resource-timing-2 9. https://www.w3.org/TR/user-timing-2 10. https://nicj.net/resourcetiming-in-practice/#resourcetiming-in-practice-updates 11. https://developers.google.com/web/fundamentals/performance/rail 12. https://wicg.github.io/largest-contentful-paint/#dom-largestcontentfulpaint-rendertime References

Editor's Notes

  • #13: Performance model that breaks down the user’s experience into key actions
  • #16: Did the navigation started? Is there any indication? Useful: Has the most important content rendered yet? Usable: Can the use interact with the content? It delightful? Is it consistent? Is the overall experiences good?
  • #17: DomContentLoaded? load
  • #21: requestAnimationFrame etc? Web APIs: used by speed tools (google dev tools, lighthouse, webpage test)
  • #22: A single timestamp or a collection of timestamps
  • #29: Recommend to send plain metrics Maybe NoSQL (mongo)
  • #30: Google analytics Data visualization libraries
  • #32: lighthouse