• Server processing time
• Browser waits for HTML
• Optimisation
• Streaming templates
Time to First Byte / TTFB
Slide 10
Slide 10 text
Page Loaded?
DOMContentLoaded
• Browser finished processing
the HTML document
Load
• All referenced assets are loaded
(img, fonts, ads, tracking, …)
Slide 11
Slide 11 text
Custom Metrics - User Timing API
window.performance
.mark('sell_page_interactive')
Slide 12
Slide 12 text
VISUAL METRICS
Slide 13
Slide 13 text
• First Visual Reaction
• „Critical Path“
• Optimisation
• Prioritize assets
Time to First Paint
https://github.com/sitespeedio/browsertime/blob/master/
browserscripts/timings/firstPaint.js
Slide 14
Slide 14 text
• Primary Content is Visible
• above-the-fold text
• e.g. product image
• „Soft metric“
Time to First Meaningful Paint
https://docs.google.com/document/d/
1BR94tJdZLsin5poeet0XoTW60M0SjvOJQttKT-JK8HI/view#heading=h.yi0gbyc627x1
Slide 15
Slide 15 text
• Viewport is fully rendered
• Depends on screen size
Time to Visually Complete
Yahoo YSlow
• Calculates a score based on best practices
• Focuses on network based metrics
• Recommends improvements
Slide 23
Slide 23 text
Google PageSpeed Insights
• Analyses rendering
• Critical path
• SEO relevant
• Cons
• Not open source (any more)
• Google API-Key required
• Pre-RWD
• Aggressive mobile rules
Slide 24
Slide 24 text
WebPageTest
• Father of the SpeedIndex
• Solid results
• Records video
• Online results
• Cons
• Confusing user interface
• Messy selfhosting
(Windows)
https://www.webpagetest.org/
Google Lighthouse
• Chrome Extension
• Command Line Tool
• Visual Metrics
• First Meaningful Paint
• Interaction-Metrics
• Estimated Input Latency
• Progressive Enhancement
https://developers.google.com/web/tools/lighthouse/
Slide 27
Slide 27 text
GETTING REAL
Slide 28
Slide 28 text
Real User Monitoring
• Measuring inside the
users browser
• real device distribution
• real browser distribution
• real connectivity situations
Slide 29
Slide 29 text
Navigation Timing API
Slide 30
Slide 30 text
Resource Timing API
Slide 31
Slide 31 text
https://github.com/WPO-Foundation/RUM-SpeedIndex
• Google project
• Combines viewport &
resource timing API
• Experimental
RUM-SpeedIndex
Slide 32
Slide 32 text
boomerang.js
• Collects metrics in the
browser
• Started by Yahoo!
<script>
BOOMR.init({
beacon_url: "/logging"
});
https://github.com/SOASTA/boomerang
Slide 33
Slide 33 text
browsertime
• Part of sitespeed.io
• Leverages browser APIs
https://github.com/sitespeedio/browsertime/tree/master/browserscripts/timings