I didn’t have anything planned for the Web Performance Calendar this year. That all changed after I read Tim Vereecke’s interesting proposal about a “Frustration Index” on Day 17. His post got my attention, as a performance analyst, because some things looked familiar to me, while other things confused me. Eventually, it all became a […]

At Cloudflare, we develop protocols at multiple layers of the network stack. Earlier we focused on HTTP 1.1, HTTP 2.0, TLS 1.3 protocols. Now, we are working on QUIC and HTTP/3, which is still in IETF draft, but gaining a lot of interest recently. Cloudflare also had UDP based transport protocol for mobile apps from […]

QUIC, the new Internet transport protocol designed to accelerate HTTP traffic, is delivered on top of UDP datagrams, to ease deployment and avoid interference from network appliances that drop packets from unknown protocols. This also allows QUIC implementations to live in user-space, so that, for example, browsers will be able to implement new protocol features […]

Have you ever wanted to quickly test a new performance idea, or see if the latest performance wisdom is beneficial to your site? As web performance appears to be a stochastic process, it is really important to be able to iterate quickly and review the effects of different experiments. The challenge is to be able […]

At the Wikimedia Foundation, we collect RUM data on Wikipedia and sister sites on a sampled pageview basis. This data, collected from various browser APIs like NavigationTiming is then stored on our self-hosted Hadoop cluster. At a smaller scale, a single database instance could be more than enough to achieve the same thing. You might […]

This case study shows one way to implement partial Server-Side Rendering (SSR) and achive performance gains without big investments in middleware for cloud-based platforms. Cloud CMSs: quick background All cloud CMSs, such as Salesforce Commerce Cloud (SFCC) and Magento, have their pros and cons. In those CMSs, we have lots of restrictions, but the major […]

I recently redesigned my personal site and the first version was very lean. As I started adding content to pages and writing new blog posts, it made sense to implement image lazy-loading to improve performance. There are many JS-based solutions for image lazy-loading but I did not want to invest time in finding the best […]

Me and the rest of the performance team of Wikimedia share a dream: A JavaScript free version of Wikipedia for readers. But at the moment we ship a lot of JavaScript to every user. We ship it asynchronously but we ship a lot! Wikipedia loves JavaScript! We have a long history and a lot of […]

We’re about to enter into a new decade – 2020 and beyond, so what a good time to re-evaluate our best practices of yesteryear to see if they still hold up. Sometimes the best practices of yesterday become the antipatterns of today… I’ll be looking at three approaches with bundling a simple React.js “hello world” […]

I confess, I’m not a statistician. While I pride myself on the ‘A’ I received in my college statistics class, admittedly it was on a pretty steep curve. That said, I’ve been looking at performance data for many years and have found myself on both sides of the debate about whether or not the practice […]

Performance Optimization is Great Sure, optimising performance for increasing profit is great. It’s great for improving the experience for your end users too. No doubt you can navigate DevTools like a champ, and you know your progressive jpeg from your interlaced png. But what about saving the planet? You heard me right, buddy. You can […]

FRUSTRATIONindex – mind the gap FRUSTRATIONindex, a new KPI which will change how we look at web performance in 2020. This easy to consume index quantifies frustration loading web pages: It is a meaningful KPI for both business and IT It quickly identifies frustration hotspots FRUSTRATIONindex looks at the gap between metrics instead of looking […]

The basic premise of a content delivery network (CDN) is straightforward enough. We (the CDN provider) become the public face of your website, and with thousands of servers all over the world, end users will connect to a server close to them. If we have the page they want, we give it to them right […]

Fiddler is a great free web troubleshooting tool that has been available on Microsoft Windows since 2003 with a new cross-platform version called Fiddler Everywhere currently in beta. Fiddler functions by acting as a proxy between the web client and the web server, which gives it the ability to not only monitor traffic but also […]

I would like to return to the last year Performance Calendar post Magic numbers by Gilles Dubuc. When I read it, I had an urge to reply – but then realized that too many subtle topics are involved and the reply would be too long for a comment. So replying by a full post this […]

Background I work on Chrome’s Speed Metrics team. We develop Chrome’s top level performance metrics — the metrics that measure the performance of the web’s most key user experiences. For years, we’ve been working towards a metric that captures when the main content of the page has displayed, both in the lab and in real-user […]

Many of us are facing the challenge of promoting the idea of speed of user experience within our organizations and crave any support data to help “sell” it to business stakeholders, product managers and engineers. Real User Measurement (RUM) is a great tool to capture speed from actual users in the wild, measure their engagement […]

When I blog I always write something that has practical value for readers but I also like to share a short story that relates to it. This is my intention in this article as well. This post will be a bit of story-telling and will give examples of how I do things on a lower […]

Over the past years, more and more frontend optimizers had offered a way to self-host or proxy third-party resources. Akamai offers a way to specify a specific behavior for self-crafted URLs, Cloudflare has its Edge Worker and Fasterize can rewrite URLs on a page to reference third-party resources via the primary domain. If you know […]

CSS-in-JS is becoming a popular choice for any new front-end app out there, due to the fact that it offers a better API for developers to work with. Don’t get me wrong, I love CSS, but creating a proper CSS architecture is not an easy task. Unfortunately though, besides some of the great advantages CSS-in-JS […]

Despite having more bandwidth than ever, web pages don’t load much faster. That’s because the bottleneck is latency, and unfortunately it’s here to stay due to the limitations of physics. Cheating latency We can actually bypass latency — with preloading. More specifically with the prefetch resource hint, . Last year in Performance Calendar, Katie Hempenius […]

There’s one tool that you immediately refer to if you want to capture data about your website’s performance. At first glance it looks quite unremarkable, but underneath the mid-2000’s GUI lies a literal treasure trove of data at your finger tips. I am of course, talking about WebPageTest. Originally developed by Patrick Meenan at AOL, […]

When you order a burger with fries in any restaurant in America, the waiter often brings a bottle of ketchup to the table before the burger is even ready to be served. Though you may not have explicitly asked for ketchup, the waiter assumes you’ll be asking for it, since most Americans eat burgers with […]

Table Of Contents Introduction Boomerang Loader Snippet Improvements ResourceTiming Compression Optimization Debug Messages Minification Cookie Size Cookie Access MD5 plugin SPA plugin Brotli Performance Test Suite Next Boomerang is an open-source JavaScript library that measures the page load experience of real users, commonly called RUM (Real User Measurement). Boomerang is used by thousands of websites […]

Video on the web can be a double-edged sword. Sites with autoplaying video report increasing engagement (who hasn’t stopped in their social media feeds to see what the video is about?), leading to longer website visits. However, if the video doesn’t playback quickly or smoothly, customers can become frustrated, and you risk alienating those same […]

In November 2019, the Web Almanac by HTTP Archive was launched at Chrome Dev Summit. This online report reviews the state of the web across 20 chapters split into four sections. The project was the brainchild of, and led by, Rick Viscomi, one of the HTTP Archive’s core maintainers. It ran from January 2019 and […]

Read any performance blog or attend any performance talk and everyone will advise you that optimising images is the best place to start (insert the ever present low hanging fruit phrase here). With the use of automated services you can achieve smaller images in a relatively short period of time. And we all know smaller […]

Let’s talk a bit about keeping tabs on how much CPU is consumed by an application’s JavaScript. And let’s frame the discussion around components – the atomic building blocks of the application. This way any performance improvement efforts (or regression investigations) can be focused on small (hopefully) self-contained pieces. I’ll assume that, as many other […]