We’ve all been there. You’re putting together a proposal or a slide deck or a blog post, and you think to yourself “Oh, man… it sure would be great to include some stats around how performance affected [insert metric of your choice]. Now how the heck do I find that stat?” Sure, you may be […]

We’re deep in the holiday season and you’re looking for that last minute speed gift. Here’s something valuable and 100% free ­ Real User Metrics from Google Analytics. It checks your site speed where it counts ­ from the user’s computer. And GA has plenty of sophisticated functionality, like filters to prevent robots from faking […]

A lot of different factors can affect a web page’s performance. For this reason, truly effective Web Performance Optimization starts with identifying the most significant perf bottlenecks of your site. This is usually done with tools like DevTools, WebPagetest, PageSpeed Insights, etc. Once you’ve identified a possible lead, and taken the time to refactor and […]

An interesting topic of discussion in recent times has been around static resource (JS/CSS) packaging for web applications. Craig Silverstein’s and Rebecca Murphey’s write-ups on this topic provide great insights into the reality of packaging in today’s frontend engineering world. The main question that comes up is, should the strategy for JavaScript and CSS bundling […]

Did your site put on a bit of weight in 2015? The new Brotli compression algorithm can help you lose the weight (and the wait) in 2016! Brot—what?? I love Zopfli, Google’s DEFLATE compression engine that often shrinks output by 5% or better when compared to the popular zlib engine. The beauty of Zopfli is […]

Summary The middle-mile RTT, or the time it takes for a data packet to perform a round-trip between two servers located on the internet backbone, has a critical impact on website performance. Yet if you ask people how to compute it, chances are they’ll pause and admit there is no good formula to predict it, […]

Until now, there has been a dangerous blind spot in our performance testing. Our test configurations have all lacked authentication, which is the means by which users are able to log in to a website. Some pages or even the entire site may be completely inaccessible to testing without authentication. Personalization is also an important […]

Two years ago, I wrote about how making the entire web fast is the real challenge. How only the big few companies are able to have very fast websites, because only they have the resources to optimize for performance. Many (if not most) organizations are happy just to have a functioning, decent looking site. In […]

This year I’ve helped people measure performance using the sitespeed.io dashboard, doing synthetic testing with sitespeed.io/WebPageTest. I’ve learnt a few things along the way, and would like to share them with you. It doesn’t matter if you use Open Source or proprietary software (well actually it does but that’s another story), my learnings are applicable […]

TL;DR: bla, bla, bla, chroma, luma, color theory, human eyes, bla, bla, bla 60% of images don’t use chroma-subsampling; but 40% do use 4:2:0 Subsampling is good for mobile: reduces bytes and saves memory on the device You can expect to reduce image size by ~17% by using Subsampling 4:2:0 Recent advances in the sampling […]

Ten years ago, increasing the performance of a website usually meant tweaking the server side code to spit out responses faster. Web Performance engineering has come a long way since then. We have discovered patterns and practices that make the (perceived) performance of websites faster for users just by changing the way the front end […]

What happens if one of our first of our third party libraries fails to load on our website? This is a question we are now used to answering, thanks to incredible tools like WebPageTest and its genius request blocking feature, or even SPOF-O-Matic. But, how do we answer the same question on native iOS or […]

tl;dr: Use responsive images and asynchronous loading to lower initial page weight by ~80% and improve the Speed Index. For further improvements, use mozjpeg smartly to reduce JPEG file size for initially visible images and consider alternate formats such as BPG for initially invisible images. High performance images are hard: compression techniques are complex and […]

A big change in the World of Performance for 2015 is the shift to metrics that do a better job of measuring the user experience. The performance industry grew up focusing on page load time, but teams with more advanced websites have started replacing PLT with metrics that have more to do with rendering and interactivity. The best examples of […]

Summary for the impatient Third parties cause performance and security issues. Some of the impact can be mitigated today. Lack of control over third party content is damaging the ecosystem. Users gain control by installing ad blockers Embedders gain control by moving to formats such as Instant Articles, Apple News and AMP. Browsers need to […]

TL;DR: 2% win Motivation Lossless image optimization is a no-brainer. Same pixels, smaller files – what’s not to like? More concretely, when talking about JPEG images, a few years ago one study showed 13% win if you run all JPEG images found on the top 1000 sites through the jpegtran tool. But what if you […]

Every year when it comes time to plan for what WebPageTest is missing it always feels like it’s basically “done” but then when the year closes out there’s always a fairly long list of things that were added or improved. One of the main focus areas for 2015 was to continue improving the situation for […]

UserTiming is a modern browser performance API that gives developers the ability the mark important events (timestamps) and measure durations (timestamp deltas) in their web apps. For an in-depth overview of how UserTiming works, you can see my article UserTiming in Practice or read Steve Souders’ excellent post with several examples for how to use […]

Writing JavaScript in a modular way has been an interesting field for exploration for many years. Since modules were not defined in the specification, the community invented a few different modules systems, three of which deserve a special attention: AMD – this was the most popular format for many years, primary used for JavaScript, running […]

[TL:DR]: Your NIC offload settings can interfere with certain mechanisms like Early Flush, HEAD flush, progressive HTML flush inducing delays Background & Motivation Like all webperf geeks I read the article with great interest. While the main takeaway of the article was well taken about compression, I really did not grok why each JS resource […]

Dec 2015

The AMP Project aims to bring instant rendering to web content. This is an unsorted list of optimizations that apply to all AMP based documents, which in aggregate makes them load fast. Every web page can have these optimizations, but AMP pages cannot not have them. While this article is about optimizations in AMP, it […]

Over the past year, I’ve given a talk at a few conferences called “Re-evaluating Performance Best Practices”. In it, I basically share some interesting research results made by people far more smarter than me. Topics like: why domain sharding isn’t as important anymore, why script injected “async scripts” are bad now, etc. The goal of […]

This being the Performance Calendar, you probably already know that slower websites lead to customer frustration, disengagement, and eventually loss in sales. You may also know that these effects are even higher amongst mobile users. Testing tools like WebPageTest (WPT) are regularly used to test website performance (desktop and mobile) to ensure that webpages are […]

Web performance matters. Studies have shown that improvements in website performance – such as page load times – can dramatically increase user engagement and profits. However, life’s short, and time is money. As web developers, we’re paid to get the job done – by clients, bosses and colleagues who may not appreciate the importance of […]

The same way website designers specify screen-width based breakpoints, TCP data transfer also works in step functions, whereby the amount of data that can be fetched per unit of time is rarely linear. An understanding of these download breakpoints allows us to maximize the asset sizes for a given number of round-trip to the origin […]

I split my time primarily between working on WebPageTest and making Chrome faster. The two go along with each other really well because on the WebPageTest side of things I look at a LOT of waterfalls of web pages loading and when something looks like it could be done better I can try to find […]

Bundling JavaScript files The traditional advice for web developers is to bundle the JavaScript files used by their webpages into one or (at most) a few “packages.” Multiple tools have been developed to do this, such as Browserify and Webpack. They tend to work like this: for a given HTML page, you write a single […]

What is Load Testing? Let us first define load testing as the terminology is rather vague here. The term is used here for everything requiring the application of a multi-user, synthetic load. Many different names may be used for such multi-user testing, such as performance, concurrency, stress, scalability, endurance, longevity, soak, stability, or reliability testing. […]

If you are building a website today there’s a good chance that you rely on 3rd party libraries to provide you with extra functionality. Tracking scripts, A/B testing and adverts are just a few of the many reasons why you would want to use a 3rd party library. The problem is that if the library […]