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:
Articles
Go to ARTICLES.md.
Blogs
Go to BLOGS.
Books
Best books about WPO
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.
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.
- 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
Wikipedia.
- Cloudflare CDN - A
content delivery network that uses next-gen tech to deliver fast,
reliable, CDN services
- PageCDN - A state-of-the-art
opensource CDN with aggressive content optimization using brotli-11
compression, HTTP/2 server push, better HTTP/2 multiplexing, and more.
Supports 100s of libraries and 2000+ WordPress themes already. Easy to
use, easy to link, and very fast.
- jsDelivr -
Similar to Google Hosted Libraries, jsDelivr is an open-source CDN that
allows developers to host their own projects and anyone to link to our
hosted files on their sites.
- Google
Hosted Libraries - Google Hosted Libraries is a content distribution
network for the most popular, open-source JavaScript libraries.
- CDNjs - An open-source CDN for
JavaScript and CSS sponsored by CloudFlare that hosts everything from
jQuery and Modernizr to Bootstrap.
- Amazon CloudFront -
A content delivery network by Amazon that integrates nicely with other
Amazon services or can be used standalone.
- jQuery - jQuery CDN – Latest
Stable Versions, powered by MaxCDN.
- :cn: UpYun CDN - CDN provided
by upyun.
- :cn: Bootstrap 中文网开放 CDN
服务 - Bootstrap Chinese net open CDN service (only HTTP).
- :ru: Yandex CDN -
Yandex Content Delivery Network hosts popular third-party JavaScript and
CSS libraries (best for use in Russia).
To find useful more information for you to make the right choice
between paid CDNs, please visit CDNPlanet.
CDN - Monitor
- CDNperf - finds you fast and
reliable JavaScript CDNs that make your sites snappy and happy.
CDN - Utilities
Extensions
Generators
- AtBuild -
JavaScript code generation tool that lets you write JavaScript that
outputs JavaScript. Good for unrolling loops and writing libraries that
compile away the runtime
- Glue - Glue is a
simple command-line tool to generate sprites:
- Pitomba-spriter -
Spriter is a simple and flexible dynamic sprite generator for CSS, using
Python. It can process CSS both synchronous and asynchronous as it
provides classes to be used in your Python code and also a watcher that
listens to your filesystem and changes CSS and sprite as soon as a
static is changed.
- Grunt-spritesmith
- Grunt task for converting a set of images into a sprite sheet and
corresponding CSS variables.
- Grunt-sprite-css-replace
- Grunt task that generates a sprite from images referenced in a style
sheet and then updates the references with the new sprite image and
positions.
- Grunt-svg-sprite
- SVG sprites & stacks galore — Grunt plugin wrapping around
svg-sprite that reads in a bunch of SVG files, optimizes them and
creates SVG sprites and CSS resources in various flavors.
- Gulp-sprite -
gulp task for creating an image sprite and the corresponding style
sheets for Gulp.
- Gulp-svg-sprites
- gulp task for creating SVG sprites.
- SvgToCSS - Optimizes
and renders SVG files in CSS / Sass sprites.
- Assetgraph-sprite
- Assetgraph transform for auto-generating sprites based on the CSS
dependency graph.
- Sprite Cow - Sprite Cow
helps you get the background-position, width, and height of sprites
within a spritesheet as a nice bit of copyable CSS.
- ZeroSprites - ZeroSprites is a
CSS sprites generator aimed at area minimization using algorithms used
in the field of VLSI floorplanning.
- CSS Sprite Generator - CSS
sprites allow you to combine multiple images into a single file.
- Sprity - A modular
image sprite generator with a lot of features: supports retina sprites,
supports different output formats, generates sprites and proper style
files out of a directory of images, etc…
- Sprite
Factory - The sprite factory is a ruby library that can be used to
generate CSS sprites. It combines individual image files from a
directory into a single unified sprite image and creates an appropriate
CSS style sheet for use in your web application.
Image Optimizers
How to remove all this unnecessary data and give you a file without
degrading quality.
- Shortpixel -
Compress Your Image by removing unnecessary bytes of the image and
Convert it into WebP/AVIF
- Grunt-smushit -
Grunt plugin to remove unnecessary bytes of PNG and JPG using Yahoo
Smushit.
- Gulp-smushit -
Gulp plugin to optimize PNG and JPG using Yahoo Smushit. Made on top of
smosh.
- Smush it - Smush it uses
optimization techniques specific to image format to remove unnecessary
bytes from image files. It is a “lossless” tool, which means it
optimizes the images without changing their look or visual quality.
- Imagemin - Minify
images seamlessly with Node.js.
- Sharp - The typical
use case for this high-speed Node.js module is to convert large images
of many formats to smaller, web-friendly JPEG, PNG, and WebP images of
varying dimensions.
- Gm - GraphicsMagick
and ImageMagick for Node.js.
- Exexif - Pure
elixir library to extract tiff and exif metadata from JPEG files.
- ExifCleaner - GUI app to
remove EXIF metadata from images and video files with drag and drop.
Free and open source.
- OptiPNG - OptiPNG is a
PNG optimizer that recompresses image files to a smaller size, without
losing any information.
- Grunt-contrib-imagemin
- Minify PNG and JPEG images for Grunt.
- Gulp-imagemin -
Minify PNG, JPEG, GIF and SVG images with imagemin for Gulp.
- Grunt-WebP -
Convert your images to WebP format.
- Gulp-WebP -
Convert images to WebP for Gulp.
- Imageoptim - Free app that
makes images take up less disk space and load faster, without
sacrificing quality. It optimizes compression parameters, and removes
junk metadata and unnecessary color profiles.
- Grunt-imageoptim
- Make ImageOptim, ImageAlpha, and JPEGmini part of your automated build
process.
- ImageOptim-CLI -
Automates ImageOptim, ImageAlpha, and JPEGmini for Mac to make batch
optimization of images part of your automated build process.
- Tapnesh-CLI
- Tapnesh is a CLI tool that will optimize all your images in parallel
easily and efficiently!
- Tinypng - Advanced lossy
compression for PNG images that preserves full alpha transparency.
- Kraken Web-interface -
Optimize your images and will be available for download for 12
hours.
- Compressor - Online image
compressor for JPG, PNG, SVG and GIF.
- Shrinkray - One-click
optimization for images in your GitHub repos
- mozjpeg - Improved
JPEG encoder.
- Jpegoptim - Utility
to optimize/compress JPEG files.
- ZopfliPNG - A
command-line program to optimize PNG images.
- AdvPNG -
Recompress PNG files to get the smallest possible size.
- Leanify -
Lightweight lossless file minifier/optimizer.
- Trimage - A cross-platform tool
for losslessly optimizing PNG and JPG files.
- ImageEngine - Cloud service for
optimizing, resizing and caching images on the fly with great mobile
support.
- ImageKit.io - Intelligent
real-time image optimizations, image transformations with a global
delivery network and storage.
- Optimizt - CLI
image optimization tool. It can compress PNG, JPEG, GIF and SVG lossy
and lossless and create WebP versions for raster images.
Lazyloaders
- lazyload - Lazyload
images, iframes, widgets with a standalone JavaScript lazyloader
~1kb
- lozad.js -
Highly performant, light ~0.9kb, and configurable lazy loader in pure JS
with no dependencies for responsive images, iframes, and more
Loaders
- HeadJS- The only
script in your HEAD. for Responsive Design, Feature Detections, and
Resource Loading.
- RequireJS - RequireJS is a
JavaScript file and module loader. It is optimized for in-browser use,
but it can be used in other JavaScript environments, like Rhino and
Node.js.
- Labjs - is an open-source (MIT
license) project supported by Getify Solutions. The core purpose of
LABjs is to be an all-purpose, on-demand JavaScript loader, capable of
loading any JavaScript resource, from any location, into any page, at
any time.
- Defer.js - Async
Everything: Make the meat of your pages load faster with this JS
morsel.
- InstantClick -
InstantClick makes the following links in your site instant.
- JIT - A JIT
(Just In Time) plugin loader for Grunt. The load time of Grunt does not
slow down even if there are many plugins.
Metrics Monitor
- Phantomas -
PhantomJS-based web performance metrics collector and monitoring
tool.
- Showslow - open source tool
that helps monitor various site performance metrics over time. It
captures the results of YSlow, Page Speed Insights, WebPageTest and
dynaTrace Ajax Edition.
- Bench - Using
Phantomas (a PhantomJS-backed client performance metrics scrapper).
Benchmark a page, store results in MongoDB, and display results via the
built-in server.
- Keepfast - Tool
to monitor indicators related to the performance of a web page.
- GTmetrix - GTmetrix uses Google
Page Speed and Yahoo! YSlow to grade your site’s performance and
provides actionable recommendations to fix these issues.
- Pingbreak.com - Free site and
SSL Monitoring with response time alerting (on Slack, Twitter,
Mattermost, Discord or custom Webhook).
- Pingdom site Speed Test
- Test the load time of that page, analyze it, and find
bottlenecks.
- Dotcom-tools
- analyze your website’s speed in real browsers from 20 locations
worldwide.
- WebPageTest - Run a free
site speed test from multiple locations around the globe using real
browsers (IE and Chrome) and at real consumer connection speeds. You can
run simple tests or perform advanced testing including multi-step
transactions, video capture, content blocking and much more. Your
results will provide rich diagnostic information including
resource-loading waterfall charts, Page Speed optimization checks and
suggestions for improvements.
- Sitespeed.io -
Sitespeed.io is an open-source tool that will check your site against
web performance best practice rules and use the Navigation Timing API to
collect metrics. It will create XML & HTML output of the
result.
- Grunt-phantomas
- Grunt plugin wrapping phantomas to measure frontend performance.
- Perfjankie -
Runtime Browser Performance regression suite (Demo).
- BrowserView
Monitoring - Continually checks web page load times in Internet
Explorer, Chrome and Firefox from multiple points around the world.
- New Relic Browser
Monitoring - Monitor your browser-side applications in real time,
with a focus on real end users’ experiences.
- DareBoost - Real Browser
Monitoring. Offers complete reports about web performance and quality
using YSlow, Page Speed and numerous custom tips.
- Bytes Matter Real User
Monitoring - Full featured Real User Monitoring solution. Free tier
for smaller sites. Includes monitoring for Google’s Core Web
Vitals.
Metrics Monitor - API
Metrics Monitor - EMAIL
- WebPerformance
Report - Web performance report every week in your inbox. Get a
Personalized Report on the Status of the E-commerce or Website that you
want to monitor in terms of Web performance and Web optimization, Core
Web Vitals are included.
Minifiers - HTML
- HTMLCompressor
- HtmlCompressor is a small, fast, and very easy to use Java library
that minifies given HTML or XML source by removing extra whitespaces,
comments, and other unneeded characters without breaking the content
structure. As a result page become smaller in size and load faster. A
command-line version of the compressor is also available.
- Django-htmlmin -
django-html in an HTML minifier for Python with full support for HTML 5.
It supports Django, Flask and any other Python web framework. It also
provides a command-line tool that can be used for static sites or
deployment scripts.
- HTMLMinifier -
HTMLMinifier is a highly configurable, well-tested, Javascript-based
HTML minifier, with lint-like capabilities.
- Grunt-contrib-htmlmin
- A grunt plugin to minify HTML that uses HTMLMinifier.
- Gulp-htmlmin -
A gulp plugin to minify HTML that uses HTMLMinifier.
- Grunt-htmlcompressor
- Grunt plugin for HTML compression, using htmlcompressor.
- HTML_minifier
- Ruby wrapper for kangax html-minifier.
- HTML_press
- Ruby gem for compressing html, that removes all whitespace junk, and
leaves only HTML.
- Koa HTML
Minifier - Middleware that minifies your HTML responses using
html-minifier. It uses html-minifier’s default options which are all
turned off by default, so you have to set the options otherwise it’s not
going to do anything.
- HTML Minifier
Online - A HTML min tool by kangax (HTMLMinifier Creator).
- Minimize -
Minimize is an HTML minifier based on the node-htmlparser,currently,
HTML minifier is only usable server-side. Client-side minification will
be added in a future release.
- Html-minifier - A
simple Windows command-line tool to minify your HTML, Razor views &
Web Forms views
Minifiers - JS & CSS
- YUI Compressor -
JavaScript compressor which, in addition to removing comments and
white-spaces, obfuscates local variables using the smallest possible
variable name. This obfuscation is safe, even when using constructs such
as ‘eval’ or ‘with’ (although the compression is not optimal is those
cases) Compared to jsmin, the average savings is around 20%.
- UglifyJS2 -
UglifyJS is a JavaScript parser, minifier, compressor or beautifier
toolkit, written in JavaScript.
- CSSO - CSS minimizer
unlike others. In addition to usual minification techniques, it can
perform structural optimization of CSS files, resulting in smaller file
size compared to other minifiers.
- CSSmin.js
- cssmin.js is a JavaScript port of YUICompressor’s CSS minifier.
- Grunt-contrib-concat
- A Grunt plugin to concatenate files.
- Grunt-contrib-uglify
- A Grunt plugin to concatenate and minify JavaScript files.
- Clean-css
- A fast, efficient, and well-tested CSS minifier for node.js.
- Django-compressor
- Compresses linked and inline JavaScript or CSS into a single cached
file.
- Django-pipeline
- Pipeline is an asset packaging library for Django, providing both CSS
and JavaScript concatenation and compression, built-in JavaScript
template support, and optional data-URI image and font embedding.
- JShrink - JShrink
is a PHP class that minifies JavaScript so that it can be delivered to
the client quicker.
- JSCompress - The most
minimalistic online JS Compress tool.
- CSSshrink -
Because CSS is ospon the critical path to rendering pages. It must be
small! Or else!
- Grunt-cssshrink
- This is just a grunt wrapper for CSS Shrink.
- Gulp-cssshrink -
Shrinks CSS files using cssshrink for Gulp.
- Prettyugly -
Uglify (strip spaces) or prettify (add consistent spaces) CSS code.
- Grunt-contrib-cssmin
- CSS Minifier for Grunt.
- Grunt-uncss
- A grunt task for removing unused CSS from your projects.
- Gulp-uncss - A
gulp task for removing unused CSS from your projects.
Miscellaneous
- Socialite.js - Socialite
provides a very easy way to implement and activate a plethora of social
sharing buttons — any time you wish. On document load, on article hover,
on any event.
- uCSS - uCSS is made
for crawling (large) sites to find unused CSS selectors, but not remove
unused CSS.
- HTTPinvoke- A
no-dependencies HTTP client library for browsers and Node.js with a
promise-based or Node.js-style callback-based API to progress events,
text, and binary file upload and download, partial response body,
request and response headers, status code.
- Critical -
Extract & Inline Critical-path CSS in HTML pages (alpha).
- Csscolormin -
Utility that minifies CSS colors, example: min(“white”); // minifies to
“#fff”.
- Lazysizes -
High-performance lazy loader for images (responsive and normal),
iframes, and scripts, that detects any visibility changes triggered
through user interaction, CSS or JavaScript without configuration.
- Perf-Tooling - Perf Tooling
is a shared resource to keep track of new and existing performance
tools.
- TMI - TMI (Too Many
Images) - discover your image weight on the web.
SVG
- SVGO - SVGO is a
Nodejs-based tool for optimizing SVG vector graphics files.
- SVG OMG -
SVGOMG is SVGO’s Missing GUI, aiming to expose the majority, if not all
the configuration options of SVGO.
- Grunt-svgmin -
Minify SVG using SVGO for Grunt.
- Gulp-svgmin
- Minify SVG with SVGO for Gulp.
- Scour - Scour is an
open-source Python script that aggressively cleans SVG files, removing a
lot of ‘cruft’ that certain tools or authors embed into their
documents.
- SVG Cleaner -
SVG Cleaner could help you to clean up your SVG files from unnecessary
data. It has a lot of options for cleanup and optimization, works in
batch mode, and provides threaded processing on multicore
processors.
Web Components
- Polymer
Bundler - Polymer-bundler is a library for packaging project assets
for production to minimize network round-trips.
- Gulp-vulcanize
- Concatenate a set of Web Components into one file that use
Vulcanize.
Web server Benchmarks
- HTTPerf - httperf
is a tool for measuring web server performance. It provides a flexible
facility for generating various HTTP workloads and for measuring server
performance.
- Apache
JMeter - Open source load testing tool: It is a Java platform
application.
- Locust - An open-source load testing
tool. Define user behaviour with Python code, and swarm your system with
millions of simultaneous users.
- Autoperf -
Autoperf is a ruby driver for httperf, designed to help you automate
load and performance testing of any web application - for a single
endpoint, or through log replay.
- HTTPerf.rb -
Simple Ruby interface for httperf, written in Ruby.
- PHP-httperf -
PHP Port of HTTPerf.rb.
- HTTPerf.js - JS
Port of HTTPerf.rb.
- HTTPerf.py -
Python Port of HTTPerf.rb.
- Gohttperf - Go
Port of HTTPerf.rb.
- wrk - A HTTP benchmarking
tool (with optional Lua scripting for request generation, response
processing, and custom reporting)
- beeswithmachineguns
- A utility for arming (creating) many bees (micro EC2 instances) to
attack (load test) targets (web applications).
- k6 - An open-source load testing tool
built for developers. Easy to integrate into CI pipelines. Tests are
written in ES6 JS and you can test APIs, microservices and sites using
HTTP/1.1, HTTP/2 and WebSocket.
Web server Modules
- PageSpeed
Module - PageSpeed speeds up your site and reduces page load time.
This open-source web server module automatically applies web performance
best practices to pages and associated assets (CSS, JavaScript, images)
without requiring that you modify your existing content or workflow.
PageSpeed is available as a module for Apache 2.x and Nginx 1.x.
- WebP-detect -
WebP with Accept negotiation.
Specs
- Web Performance Working
Group - The mission of the Web Performance Working Group, part of
the Rich Web Client Activity, is to provide methods to measure aspects
of application performance of user agent features and APIs.
- Page Visibility
- This specification defines a means for site developers to
programmatically determine the current visibility state of the page in
order to develop power and CPU-efficient web applications.
- Navigation
Timing - This specification defines a unified interface to store and
retrieve high resolution performance metric data related to the
navigation of a document.
- Resource Timing
- This specification defines an interface for web applications to access
the complete timing information for resources in a document.
- User Timing - This
specification defines an interface to help web developers measure the
performance of their applications by giving them access to
high-precision timestamps.
- Performance
Timeline - This specification defines a unified interface to store
and retrieve performance metric data. This specification does not cover
individual performance metric interfaces.
- CSS
will-change - This specification defines the
will-change CSS property which allows an author to declare
ahead-of-time what properties are likely to change in the future, so the
UA can set up the appropriate optimizations some time before they’re
needed. This way, when the actual change happens, the page updates in a
snappy manner.
- Resource Hints -
This specification defines the dns-prefetch, preconnect, prefetch, and
prerender relationships of the HTML Link Element (<link>). These
primitives enable the developer, and the server generating or delivering
the resources, to assist the user agent in the decision process of which
origins it should connect to, and which resources it should fetch and
preprocess to improve page performance.
Stats
- HTTP Archive - It’s a
permanent repository of web performance information such as size of
pages, failed requests, and technologies utilized. This performance
information allows us to see trends in how the Web is built and provides
a common data set from which to conduct web performance research.
Other Awesome Lists
Contributing
For contributing, open an
issue and/or a pull
request.