Performance Checklist 1.0
Performance Checklist 1.0
Performance Checklist 1.0
Below youll find an overview of the front-end performance issues you might
need to consider to ensure that your response times are fast and smooth.
____
Progressive enhancement.
Design and build the core experience first, and then enhance the experience with advanced
features for capable browsers, creating resilient experiences. If your website runs fast on a
slow machine with a poor screen in a poor browser on a suboptimal network, then it will only
run faster on a fast machine with a good browser on a decent network.
Build optimizations
HTTP/2
Are service workers being used for caching and network fallbacks?
No performance optimization over a network can be faster than a locally stored cache on the
users machine. If your website is running over HTTPS, then cache static assets in a service
worker cache, and store offline fallbacks (or even offline pages) and retrieve them from the
users machine, rather than going to the network.
Test and monitor
Quick wins
This list is quite comprehensive, and completing all of the optimizations might take quite a while.
So if you had just 1 hour to get significant improvements, what would you do? Lets boil it all
down to 10 low-hanging fruits. Obviously, before you start and once you finish, measure results,
including start rendering time and SpeedIndex on 3G and cable connections.
1. Your goal is a start rendering time under 1 second on cable and 3 seconds on 3G, and a
SpeedIndex value under 1000. Optimize for start rendering time and time-to-interactive.
2. Prepare critical CSS for your main templates, and include it in the <head> of the page. (Your
budget is 14 KB.)
3. Defer and lazy-load as many scripts as possible, both your own and third-party scripts
especially social media buttons, video players and expensive JavaScript.
4. Add resource hints to speed up delivery with faster dns-lookup, preconnect, prefetch, preload and
prerender.
5. Subset web fonts, and load them asynchronously (or just switch to system fonts instead).
6. Optimize images, and consider using WebP for critical pages (such as landing pages).
7. Check that HTTP cache headers and security headers are set properly.
8. Enable Brotli or Zopfli compression on the server. (If thats not possible, dont forget to enable
Gzip compression.)
9. If HTTP/2 is available, enable HPACK compression, and start monitoring mixed-content
warnings. If youre running over LTS, also enable OCSP stapling.
10. If possible, cache assets such as fonts, styles, JavaScript and images actually, as much as
possible! in a service worker cache.
Huge thanks to Anselm Hannemann, Patrick Hamann, Addy Osmani, Andy Davies, Tim Kadlec, Yoav Weiss,
Rey Bango, Mariana Peralta, Jacob Gro, Tim Swalling, Bob Visser, Kev Adamson and Rodney Rehm for
reviewing, as well as our fantastic community for sharing insights for everybody to use. You are truly
smashing.