In 2003, to normalize a setClass function across browsers, I created my first JavaScript library. It checked for support of the standard document.getElementById, gracefully degraded to check for the non-standard document.all, and used UA sniffing to check for old Netscape. I used it to do only one thing: change class names. It was ugly, but […]

As mobile growth accelerates, the value of single-minded viewport optimization has diminished. The way you approach web page optimization requires a reboot. No one disputes the importance of viewport metrics like Speed Index or First Contentful Paint. Each provide meaningful benchmarks for web devs to determine progress in web optimization initiatives. In fact, it’s rare […]

… because 24++ awesome articles on web performance is not enough!

An instantly loading, self-rewriting application using ServiceWorker. It is like server rendering inside your browser.

tl;dr: Progressive images render faster on HTTP2, thus increasing perceived performance. Take control of progressive JPEG’s scan layers to show meaningful image content with only 25% of image data sent. Use HTTP2 Server Push for progressive JPEG scan layers to maximize rendering performance for key images. We Have An Image Problem Images make the world […]

PNG is a popular format for icons, sprites, logos, screenshots, and many others. Creating PNG images is fairly easy, but what do we need to do if we want to get the smallest file possible without any perceptible loss of quality? In this context, we define an image as a two-dimensional array of color values, […]

Nowadays it is not uncommon to publish your site on the root domain (aka ‘naked domain’ or ‘domain apex’). Instead of using www.awesomesite.com you go for awesomesite.com. Looks good, right? Yeah. Running the whole site through a CDN is also the modern thing to do and can help give your users an excellent experience. The […]

One request. One journey. There comes a time when you need to fulfill your destiny and find a matching resource.

Two years ago I wrote about Leveraging Browser Storage for a Faster Web. The gist of the technique is to persist AJAX payloads in either localStorage or IndexDB so future network requests can be avoided. The overall mechanism allows you to control data life spans and purge stale data. By avoiding excess network requests the […]

As soon as you want to industrialize your work (think Continuous Integration), you need a private WPT instance.

Typography is an integral part of design, so it’s no wonder web fonts usage soared once browsers started supporting them. Based on the statistics gathered by the HTTP Archive, nearly 65% of all websites use web fonts as of November 2016. This is great. But there’s a downside: web fonts have become a performance and […]

Support everything everywhere always? Or step into the present and simplify?

Like any performance optimisation, once implemented we should measure and tweak.

When it comes to web performance and user experience, every image matters.

Web Workers are perfect for making backend calls, converting data into formats the UI can consume, sync local storage with backend…

Without Cache Digests there is no clear-cut performance win for HTTP/2 Server Push over HTTP/1 Asset Bundling. However, a Bloom filter based technique, called Cache Digests, makes Server Push more efficient than Asset Bundling in both latency and bandwidth.

Track your perf numbers over time with a new open source tool.

Speed Index is a key web performance metric, useful to both developers and designers,

From cookies to Cache API and all things in between

To DEFER or to ASYNC, that is the question.

… and why are we here anyway?

“Performance budgets are exceeded.”, “Budgets be damned, we’ve got to get that site out the door!”, “But, but…”

Peter is looking for a needle in a haystack the size of the universe.

1996: Everything is cacheable except HTML. 2016: Everything is cacheable.

Are we designing paintings or movies? Static PSD files or short films? And how do we think about performance and transitions when designing an interactive product?

How many WebPageTest test runs are enough? And how conclusive are the results? Ask Pierre.

Tim introducing webworldwide.io to help us realize what it means to access today’s web.

Are we there yet? Robin has the nitty-gritty of HTTP/2 in this monster of a post.

Brotli is a new compression method for text based assets poised to dethrone the king of compression on the web (gzip) soon. How can you benefit from it today?

Dean Hume shows us how to use Google’s new Lighthouse tool to evaluate web performance.

Patrick has a run-down of tools you can use to simulate networking conditions that are representative of your users. And he also fills a glaring hole in the available tools with his new release.