So you've built an application using Milvus as the vector database, using Standalone or Distributed . You've reached a point where the application is working, customers are using it and the data volume is growing. At some point managing the vector database starts consuming more time, pod failures cause service jitter, you're running out of RAM on the server, or etcd becomes a painful bottleneck.…
Static site generators (SSGs) such as 11ty allow us to build super-fast websites with great developer experience. Hosting platforms like Netlify allow us to rapidly iterate and release directly from GitHub. SSGs are perfect for (mostly) static sites such as blogs (like this one!), corporate sites, documentation sites etc. Search, however, is not static. You can build static-ish site search using…
Approximately 40% of my clients have single-page applications (SPAs), and approximately 100% of my clients care about core web vitals - the key performance metrics which impact Google search ranking. Consistently measuring performance of every website and framework is an impossible task, so the core web vitals (largest contentful paint, first input delay and cumulative layout shift) are lowest…
I'm currently working on a client project using Cloudflare Workers Sites. Mostly development has been a joy, the wrangler CLI is easy to use and production deployment happens in seconds. There was one strange issue reported by the client which left me looking for answers: sometimes the pages wouldn't render, other times no styles were applied. Occasionally images wouldn't render. These issues were…
Introduction # Way back in 2010, an engineer at YouTube kicked off Project Feather : the goal was to reduce the weight of the popular video player page to improve performance. The project was a success: the page weight was reduced from 1,200kB to 98kB and the total number of requests was cut by 90%. The analytics of Project Feather experiences did not reflect the improvements though: the aggregate…
I have been employed in web performance roles for about a decade. From load testing and synthetic monitoring to CDN configuration and true consultancy. In 2022 I became an independent web performance consultant. One thing has stood out from my experience working with hundreds of brands — from small national websites to massive multi-national ecommerce websites: folks generally understand web…
Introduction # Caching headers are one of those deceptively complex web technologies which are so often overlooked or misconfigured. The fastest request is the one that is not made, and caching headers allow us to tell browsers when they can reuse an asset that they have already downloaded. The reason that these headers are often misconfigured, or at least configured suboptimally, is often through…
Landing page hero videos are increasingly popular, especially in high fashion and luxury goods. Hero videos can have a detrimental effect on user experience though, delaying page load times and causing the page to jump around. In this post we will take an example homepage and see how we can optimise it to deliver fast, responsive videos for great UX. Jump straight to the conclusion to see the…
Back in 2010 Foviance ran an EEG study [1] which showed that participants had to concentrate 50% harder when websites were slow, as measured by alpha waves. In 2011 Harris International conducted a study for Tealeaf [2] which found that American respondents got more frustrated by failed mobile transactions (58%) than being stuck in traffic (56%). 35% of respondents had cursed at their phone,…
June 15th 2021: Multiple updates from Google I/O 2021 , a Web Vitals Q&A session and another Google blog post . April 19th 2021: Google have announced a delay to the rollout of the Page Experience update. The SEO changes will now gradually roll out from mid-June 2021. April 13th 2021: Google have updated the CLS metric to better account for complex web applications. This should generally result in…
One of the outcomes of the release of Core Web Vitals (and subsequent inclusion in Google's page ranking algorithm) is that we have been paying more attention to unexpected layout shifts and the cumulative layout shift (CLS) score. Some sources of layout shifts have been simple to resolve: pre-allocate the correct space for dynamic elements, use width and height attributes on images and prioritise…
Introduction # Web performance is often seen as a technical discipline, arranging bits and bytes to shave off milliseconds of load time, applying best practices, using the latest protocols and formats. Users don't perceive milliseconds though, they don't (typically) care if you use HTTP/1.1 vs HTTP/2 or JPEG vs WebP. Web performance optimisation is really optimising the speed of user experiences,…
Animated spinners are one of the lingering legacies of the 1990's web. In this post I will use an insurance quote service as an example, but these techniques can be applied anywhere that a spinner is currently used. First, though, let's look at the psychology of waiting. Rules for waiting time # In The Psychology of Waiting Lines , David H. Maister describes the psychology of queueing. His…
I wrote an article in 2019 where I predicted five top technologies for 2020. Well, 2020 was a strange year! Some things were correct though, for example the growth of JAMStack sites: the Web Almanac shows that JAMStack now powers 154% more mobile pages than in 2019! As for 2021, there are some key trends which I expect to have a significant impact on the web ecosystem: The Page Experience Update…
Let's Encrypt recently announced that it is moving to using its own root certificate on January 11, 2021. This will reduce operating costs and complexity for Let's Encrypt, helping their mission to make all websites secure by default. December 21, 2020: Let's Encrypt have now announced a solution to resolve this issue and prevent any impact to Android users! The potential footprint for this change…
Introduction # Extended Validation or EV Certificates were once prized for their impression of increased security. Sites with an EV certificate would be rewarded with a nice green padlock and their company name in the address bar, potentially giving customers an increased sense of security when making purchases or entering sensitive data. EV Certificates used to give a benefit in the address bar…
If you've ever trained for a big sporting event: a marathon, bike race or similar, you'll know how tough it is to train to get to your peak performance. You'll also know that after the event you feel totally drained, your performance will not be the same for weeks while your body recovers. Training for a tough physical event is a project, a focused effort on getting to a goal. This approach does…
The recent updates from Google on Core Web Vitals are a great effort to find universal speed metrics that reflect quality of user experience. Google's goals are closely aligned with yours: fast user experiences result in better business outcomes. Where your goals may differ from Google is that you know your users and your pages better. You know that marketing landing pages have to deliver the…
Site speed is an important but often-overlooked component in user experience. We know intuitively that slow experiences are unpleasant and make us more likely to leave a site, but building evidence of this effect has always been tricky. The charts below were built with data collected using mPulse RUM. Loading chart... Slow Landing Pages = High Bounce Rate This chart shows the page speed…
10 Nov update: Google has announced that the Page Experience update will go live in May 2021! Introduction # Google announced updates to the Page Experience ranking algorithm in May of 2020. This update includes two key highlights: Three new performance metrics will be used as ranking signals for SEO Top Stories no longer requires an AMPHTML page, and performance will become a ranking factor The…
Introduction # I've been in technical pre-sales for about ten years, and software demos have been a part of my role since day one. I'm still working on perfecting my demos, but I do have some tips on getting the best results from the short time you have with your clients. Key takeaways for those in a hurry: demo to the people in the meeting no demo should be the same as another start with the…
In Summary # Save-data is a client hint which indicates that your users want you to send less content to them. It is an option on Google Chrome Mobile and it's used predominantly in Asia, Africa and South America. There is a strong relationship between the value of a user's device and their likelihood to opt-in to save-data: the more expensive the device, the less likely they are to opt-in. While…
Introduction # Cookie consent has given users control over the data that is shared with websites and third-parties, but it has made measuring performance difficult. Cookie consent is managed outside of standard APIs, so it can be implemented any way a website wants. Within the EU (and generally for websites hosted in the EU) consent is not assumed, so a visitor must opt-in to third-party tracking…
Introduction # I recently discovered that Firefox introduced a feature called RCWN (Race Cache With Network) in 2017 . This feature was intended to improve web performance by racing cached requests against the network. Fig 1. Firefox network panel showing cached resources 'raced' againt the network This seemed odd to me, surely using a cached response would always be faster than making the whole…
Web performance has been a hot topic in web development and browser engineering since the first public web pages. The first book on the topic, Web Performance Tuning: Speeding Up the Web was published in 1998, with Steve Souders kicking off the Web Performance Optimisation industry when he published his book High Performance Websites nine years later in 2007. As an industry-within-an-industry we…
Now that you've got your Pi set up with Influx & Grafana , you're collecting some system stats , and measuring network performance , it's time to collect data from SmartThings! Samsung SmartThings is a multi-protocol smart home hub produced by Samsung, it supports Z-Wave, Zigbee and Bluetooth and is surprisingly configurable. One of my main frustrations with the service is the lack of visibility…
Now that you've got your Pi set up with Influx & Grafana and you're collecting some system stats , it's time to measure network performance! SpeedTest.net by Ookla is probably the most popular connection testing services, and they handily provide a CLI to run tests programmatically. We'll create a simple python script which runs a test and sends the data to influxdb, then set it to run once every…
Now that you've got your Pi set up with Influx & Grafana , it's time to start collecting some data! We will use a simple Python script to collect system statistics and push it to Influx - you can use this as-is or modify it to your needs. We will need to first install the PIP package manager if it is not already on your Pi: sudo apt install -y python-pip And then use pip to install the python…
Step 0: Initial Setup # Follow these steps first if you have a brand new rPi: Download the latest lite Raspbian image from raspberrypi.org Get a reasonable micro SD card - 32GB is the maximum supported size. I use a SanDisk Ultra Burn the image to your SD card, I recommend using balenaEtcher . Balena will eject your SD card once it is complete, re-mount your card by physically removing and…
This website is powered by Netlify, it also has Content-Security-Policy and cache-control HTTP response headers to improve client security and performance. In this short article I'll describe the key response headers you should be aware of and how how I configured them on Netlify. The configuration is simple when you know how, but it can take a while to work out! Intro to HTTP Headers # I am…
Introduction # Reading the technical press you would be forgiven for thinking that 2020 is going to be a great year for web performance. Repeatedly touted are the blazing fast speeds we will achieve with 5G, the fundamental improvements that HTTP/3 will bring and how new devices will be faster than premium laptops. I fear this outlook could make us lackadaisical about performance. 5G isn’t…
Lazy Loading Images # Web browsers are complex pieces of software, but still treat images relatively naïvely. See, for example, a section of this waterfall where almost 100 images are loaded immediately on first-view: Waterfall section showing bandwidth consumed by off-screen images On this client's site all but four of the images downloading in the screenshot (shown in purple) are off-screen.…
I recently configured a new private WebPageTest instance on AWS to use SSL provided by Let's Encrypt , using EFF's awesome CertBot . When running my first set of tests I noticed big delays (multiple minutes per test) and when the tests finally completed they all reported The test completed but there were no successful results. . A quick look at the access log showed that the agents were getting…
It has been well documented that site speed is a major factor in business success for e-commerce websites. If you can demonstrate that improving page load times by 500ms increases revenue by 5% there is a clear return on investment to make the speed improvements. Digital publishing has not had so much documented evidence for the benefits for site speed. There are multiple factors behind this,…
Alice Goldfuss - The Container Operator’s Manual # Containers are generally presented in theory, Alice tells us how they work in real-life. Alice is an SRE at GitHub and has run Docker in production for 3.5 years, so knows a bit about containers in the wild! Containers have strengths. Stateless applications / processes Containers have weaknesses. Stateful applications / databases Don't…
Tammy Everts - Hunting the Unicorn # Tammy started researching user experience on the web in a laboratory setting - measuring individuals as they used websites. Now she works with SpeedCurve trying to connect the dots between real people and the stream of data being collected from Real User Monitoring. How do we scale empathy? As we collect millions or billions of user experience data points, how…
Tim Kadlec - Redefining Web Performance # There is a lot of under-appreciated creativity in technical work. Definitions change - dictionaries are out of date as soon as they are printed - like JS frameworks. Network Constraint - 71% of global connections are 2G or 3G, we live with a rose-tinted view of the world. Device Constraint - new adoption is on low-end Android devices. 90th percentile JS…
The promise of PWAs # Progressive Web Apps bring a native-like application experience to websites. This is achieved through a combination of specifications like the web application manifest, service worker, web push API and (soon) webAPKs. The advantages of using a website over a native application are numerous for consumers: faster install, more rapid updates and a significant reduction in the…
The site speed fallacy # In a recent webinar, Andy Davies and I asked a poll of the attendees: where do you get your site speed data? Bear in mind that the majority of the attendees on the webinar were from Ecommerce or Digital Management. The results were just about what we were expecting, over half of attendees use web analytics to get their speed data: Poll showing that 58% use web analytics to…
CSS image sprites can provide a performance benefit for most sites. A sprite combines multiple small images into one file and CSS slices out the relevant sections of the image when they are required. This reduces the number of requests required to render a page, potentially meaning that the page renders faster over HTTP/1.1. The humble sprite can become critical to web performance. It is common to…
1) Performance KPIs are broken # This was one of the themes that ran like an undercurrent through the whole conference, starting with Steve Souders at WebPerfDays talking about the death of window.onload for performance measurement. It's been known for a while that the onload event is flawed for measuring performance, but it has been universal across browsers so was the lowest friction measure.…
(p.s., the video of my talk on performance for low powered devices is up!) Real User Monitoring is getting exciting, but has gaps # Everyone is using RUM. The vendors are maturing rapidly to be able to offer either: Single view of customer - integration with Application Performance Monitoring. Insight - analysis of user behaviour and business events to create actionable insight. An example of a…