Web-Perf Wednesday 004 – A Quiet Week Is Time to Investigate
A quiet week in web performance is a useful chance to investigate the evidence and problems teams already have.
– Web Performance and Site Speed Consultant
A quiet week in web performance is a useful chance to investigate the evidence and problems teams already have.
Chrome 151 and web-vitals v6 bring native SPA measurement into production, while new browser controls reshape device and third-party governance.
CrUX’s seasonal decline, Safari 27’s user-experience fixes, richer INP attribution, and long-session third-party costs all demand better interpretation.
Measure how entire components render with the Container Timing API: how it differs from Element Timing, where it helps, and how to try it today.
The 2026 update to my real-world device testing recommendations paints a clearer picture than ever…
Chrome 151 brings native soft-navigation measurement closer, alongside better redirect timing, revealing CrUX data, and more trustworthy browser tooling.
The TBT Window is the FCP-to-TTI interval used to calculate Total Blocking Time. If FCP or TTI moves, TBT can change even when long tasks do not.
Obs.js is a tiny inline script that helps you adapt your site to real-world network, battery, CPU, and memory conditions.
No-Vary-Search lets HTTP caches ignore irrelevant query parameters such as UTM tags, while still keeping meaningful ones like product variants in the cache key.
A quick but important reminder that font-family declarations don’t inherit fallback stacks the way many developers assume.
CSS containment lets you isolate layout and paint work to self-contained ‘islands’. Here’s what each contain value does and how to use it safely.
If your design system can only apply `loading=lazy` or `fetchpriority=high` blindly, it may be safer not to apply them at all.
Obs.js is a tiny inline script that exposes network, battery, CPU, and memory signals to CSS and JavaScript so you can adapt to user context.
Discover the most representative low- and mid-tier mobile devices for web performance testing in 2025.
How fast are pro cycling teams’ and manufacturers’ websites? A CrRRUX-powered deep dive into bike brand performance, visibility, and missed opportunities.
Making sense—and use!—of the new Performance Extensibility API in Chrome DevTools.
Learn how the Cache-Control request header works, how browsers handle refresh and hard refresh caching, and when developers should use it themselves.
Is HTML a programming language? In this short post, I explore why HTML is powerful, fundamental, and essential—but not a programming language.
What is the real, long-term cost of adopting a JavaScript framework?
I’ve recently decided to apply the permissive MIT License to all content on CSS Wizardry by default. How does this affect you?
The new Speculation Rules API is incredibly powerful, but we can do so much more! By taking a layered approach, we can add more progressive functionality.
Why design another new performance score?! Good question…
If, like me, you frequently require the Core Web Vitals colour palete, here it is!
If you want to start consulting, you’re gonna need some paperwork!
We can’t do much to change latency, so how can we work around it?
Quantifying the importance of caching just got a lot easier
Why on earth would you make something render-blocking?!
We’re probably familiar with preconnect, but are we getting it right?
We know we should do it, but do we know how?
How long?! RFC9111 lets max-age reach 68 years—far beyond the usual one that developers set. Here are the raw numbers, the spec, and when to use it.
There’s a super quick and easy way to clear cache on your customers’ devices. Are you using it yet?
Can Low-Quality Image Placeholders and LCP play nicely together?
There’s still a lot of misunderstanding about CWV for SEO. Let’s work it out together.
If HTTP/2 is so much better, why does it look so similar to HTTP/1?!
Is there any reason to still measure the DOMContentLoaded event? Perhaps…
Revisiting and remapping my Site-Speed Topography technique for assessing web performance at large
We’re often told not to use document.write(), but… why?!
Async snippets used to improve performance, but now they’re a legacy anti-pattern. How do we handle them now?
Critical CSS promises faster loading, but is it worth the complexity? Learn when Critical CSS actually boosts performance or when it might slow you down.
When implementing performance fixes, it’s imperative that you measure the right thing—but what is ‘right’?
Let’s look at some more technical and non-obvious aspects of optimising Largest Contentful Paint
How often do you test your site in iOS Safari? Do you even know how?!
Learning the lay of the land
Google Fonts is fast. Now it’s faster. Much faster.
How effective is Brotli, really?
If you’ve ever struggled to define performance budgets, this off-the-shelf trick is what you’re looking for.
Using prefetch for fun and profit
What issues does Hoefler&Co’s Cloud.typography introduce, and how can we mitigate them?
Just how much does TTFB matter when it comes to front-end performance?
Why is it so much better to self-host your static assets?