Awesome WPO
Welcome to the curated list of Web Performance Optimization resources. This repository aims to gather the best tools, articles, blogs, books, and talks related to optimizing website performance. Whether you're a developer, designer, or performance enthusiast, you'll find valuable content here to supercharge your web projects.
Categories
:memo: Awesome WPO / Articles
:newspaper: Awesome WPO / Blogs
:books: Awesome WPO / Books
:book: Awesome WPO / Docs
:calendar: Awesome WPO / Events
:movie_camera: Awesome WPO / Talks
Table of Contents
Here's a quick overview of the categories covered in this collection:
- Analyzers
- Analyzers API
- Application Performance Monitoring
- Bundle Analyzer
- Benchmark - CSS
- Benchmark - JS
- Benchmark - PHP
- Bookmarklets
- CDN
- CDN - Monitor
- CDN - Utilities
- Extensions
- Image Optimizers
- Generators
- Lazyloaders
- Loaders
- Metrics Monitor
- Minifiers HTML
- Minifiers JS & CSS
- Miscellaneous
- SVG
- Web Components
- Web server Benchmarks
- Web server Modules
- Specs
- Stats
- Other Awesome Lists
- Contributing
Articles
Go to ARTICLES.md.
Blogs
Go to BLOGS.
Books
Best books about WPO
- HTTP/2 in Action by Barry Pollard - Barry Pollard
- Web Performance in Action by Jeremy Wagner - Jeremy L. Wagner
- Book of Speed - Stoyan Stefanov
- Designing for Performance: Weighing Aesthetics and Speed - Lara Callender Hogan
- Even Faster Web Sites: Performance Best Practices for Web Developers - Steve Souders
- High Performance Browser Networking: What every web developer should know about networking and web performance - Ilya Grigorik
- High Performance JavaScript - Nicholas C. Zakas
- High Performance Web Sites: Essential Knowledge for frontend Engineers - Steve Souders
- High Performance Responsive Design: Building Faster Sites Across Devices – Tom Barker
- Lean sites – Barbara Bermes
- Time Is Money: The Business Value of Web Performance – Tammy Everts
- Using WebPagetest - Rick Viscomi, Andy Davies, Marcel Duran
- Web Page Size, Speed, and Performance - Terrence Dorsey
- Web Performance Daybook Volume 2 - Stoyan Stefanov
- Web Performance Tuning - Patrick Killelea
- You Don't Know JS: Async & Performance - Kyle Simpson
- Linux, Apache, MySQL, PHP Performance end-to-end - Colin McKinnon
- Web Components in Action - Ben Farrell
- Image Optimization - Addy Osmani
Case studies
- WPOStats - Case studies and experiments demonstrating the impact of web performance optimization (WPO) on user experience and business metrics.
- Google Developers Case Studies - Learn why and how other developers have used the web to create amazing web experiences for their users.
Documentation
- Browser Diet - A collaborative guide about frontend performance.
- PageSpeed Insights Rules - A guide created by PageSpeed Team. Deprecated. This is deprecated and will be shut down in May 2019. Version 5 is the latest and provides both real-world data from the Chrome User Experience Report and lab data from Lighthouse.
- Best Practices for Speeding Up Your site - The list includes 35 best practices divided into 7 categories, created by Yahoo! Exceptional Performance team.
Events
Because community matters!
Conferences
- We Love Speed – We Love Speed was born from the desire to share knowledge and experiences in web performance as widely as possible.
- PWA Summit – A free, online, single-track conference focused on helping everyone succeed with Progressive Web Apps.
- Velocity – At Velocity, web operations, performance, and DevOps professionals learn to build fast, resilient, and highly available sites and apps.
- performance.now() – The performance.now() conference will return to Amsterdam! We're a single-track conference with fourteen world-class speakers, covering today’s most important web performance insights.
- #PerfMatters – #PerfMatters Conference is the ONLINE web performance conference by internationally renowned performance developers.
Meetups
They are categorized into content/MEETUPS.md.
Talks
They are categorized into content/TALKS.md.
Tools
Analyzers
- Web.dev - Get the web's modern capabilities on your own sites and apps with useful guidance and analysis from web.dev.
- Confess - Uses PhantomJS to headlessly analyze web pages and generate manifests.
- DebugBear - DebugBear is a site monitoring tool based on Lighthouse. See how your scores and metrics changed over time, with a focus on understanding what caused each change. DebugBear is a paid product with a free 30-day trial.
- Page Speed - The PageSpeed family of tools is designed to help you optimize the performance of your site. PageSpeed Insights products will help you identify performance best practices that can be applied to your site, and PageSpeed optimization tools can help you automate the process.
- Lighthouse - Auditing and performance metrics tool for Progressive Web Applications.
- Screpy - AI-Based SEO Analysis & Monitoring Tool
- YSlow - YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high-performance web pages.
- YSlow for PhantomJS - YSlow for PhantomJS also introduces new output formats for automated test frameworks: TAP (Test Anything Protocol) and JUnit.
- Grunt-WebPageTest - Grunt plugin for continuous measurement of WebPageTest. (Demo)
- Grunt-yslow - Grunt task for testing page performance using PhantomJS, a headless WebKit browser.
- Grunt-perfbudget - A Grunt.js task for enforcing a performance budget (more on performance budgets).
- Web Tracing Framework - Web Tracing Framework is a set of libraries, tools, and visualizers for the tracing and investigation of complex web applications
- Yandex.Tank - An extensible open-source load testing tool for advanced Linux users which is especially good as a part of an automated load testing suite.
- Yellow Lab Tools - Online quick and easy tool that audits frontend bad practices, reveals performance issues, and profiles JavaScript.
- Pagelocity - A web performance optimization and analysis tool.
- Varvy - Test your site to see if it follows the Google guidelines for speed.
- Web Bloat Score Calculator - Compare size of a page to a compressed image of the same page
- Speed Racer - Collect performance metrics for your library/application using Chrome headless.
- Speedrank - Speedrank monitors the performance of your site in the background. It displays Lighthouse reports over time and delivers recommendations for improvement. Speedrank is a paid product with 14-day-trial.
- Lightest App - Webpage load time is extremely important for conversion and revenue. Visualize web performance against competitors.
Analyzers - API
- Node-yslowjs - YSlow.js on Node.js is a simple Node.js wrapper for programmatically running phantomjs yslow.js.
- PSI - PageSpeed Insights for Node.js - with reporting.
Application Performance Monitoring
- Datadog APM - End-to-end distributed tracing and APM at scale, correlated to all telemetry.
- BetterUptime - A good website monitoring tool (bundling status page, incident notification)
- Pingdom - A tool to get the uptime of your website (with probes from different locations)
- UptimeRobot - Another uptime monitoring tool (with a generous free plan)
- RoboMiri - RoboMiri is a stable Uptime Monitor that offers a wide range of monitors: cronjob, keyword, website, port, ping. 25 uptime checks with 3 minutes interval checks for free. Alerts via Phone Call, SMS, Email, and WebHook.
- StatusList - Uptime, performance monitoring with debug details, and hosted status page in one simple dashboard.
Bundle Analyzer
- Bundlesize - Keep your bundle size in check.
- source-map-explorer - Analyze and debug bundle space usage through source maps.
- Bundlephobia - Helps you find the performance impact of adding an npm package to your frontend bundle.
- Webpack bundle analyzer - webpack plugin and CLI utility that represents bundle content as a convenient interactive zoomable treemap.
- Disc - Visualise the module tree of browserify project bundles and track down bloat.
- Lasso-analyzer - analyze and Visualise project bundles created by Lasso.
- Packtracker.io - Check your webpack bundle stats on every pull request, and track them over time.
- Compression webpack plugin - Prepare compressed versions of assets to serve them with Content-Encoding.
- BundleStats - Generate bundle report(bundle size, assets, modules, packages) and compare the results between different builds
Benchmark - CSS
- CSS-perf - Completely unscientific way of testing CSS performance. Most of these tests will revolve around methodologies and techniques for determining effective CSS architecture. Put another way, I want to know what works best given a particular comparison of CSS strategies.
Benchmark - JavaScript
A set of tools for creating test cases and comparing different implementations in JavaScript.
- JSPerf - jsPerf aims to provide an easy way to create and share test cases, comparing the performance of different JavaScript snippets by running benchmarks.
Temporarily out, follow this issue for updates: https://github.com/jsperf/jsperf.com/issues/537
- Benchmark.js - A robust benchmarking library that works on nearly all JavaScript platforms, supports high-resolution timers, and returns statistically significant results.
- JSlitmus - JSLitmus is a lightweight tool for creating ad-hoc JavaScript benchmark tests.
- Matcha - Matcha allows you to design experiments that will measure the performance of your code. It is recommended that each bench focus on a specific point of impact in your application.
- Timing.js - Timing.js is a small set of helpers for working with the Navigation Timing API to identify where your application is spending its time. Useful as a standalone script, DevTools Snippet, or bookmarklet.
- Stats.js - This class provides a simple info box that will help you monitor your code performance.
- PerfTests - Performance tests of JavaScript inheritance models.
- Memory-stats.js - minimal monitor for JS Heap Size via performance memory.
Benchmark - PHP
- PHPench - PHPench creates a graphical output for a PHP benchmark. Plot the runtime of any function in realtime with GnuPlot and create an image out of the result.
- php-bench - Benchmark and profile PHP code blocks whilst measuring the performance footprint.
Bookmarklets
- Yahoo YSlow for Mobile/Bookmarklet - YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high-performance web pages.
- PerfMap - A bookmarklet to create a frontend performance heatmap of resources loaded in the browser using the Resource Timing API.
- DOM Monster - A cross-platform, cross-browser bookmarklet that will analyze the DOM & other features of the page you're on, and give you its bill of health.
- CSS Stress - CSS Stress is a Testing and Performance Profiling.
- Performance-Bookmarklet - Analyze the current page through the Resource Timing API, Navigation Timing API and User-Timing - Sort of a light live WebPageTest. As Chrome Extension and Firefox Add-on under the name Performance-Analyser.
CDN
A content delivery network or content distribution network (CDN) is a large distributed system of servers deployed in multiple data centers across the Internet. The goal of a CDN is to serve content to end-users with high availability and high performance. See a large list of CDN in