7 ms·
My challenge to the web performance community
- he_is_legend 5y agoWhile google use CWV as a part of pagerank (higher scores get higher ranking) most site owners will demand higher scores. They don't care why their site scores bad, or necessarily want any of those useless javascript trackers and animated widgets removed. They want a higher score and you had better well use every trick you can think of to get them there or they'll pay someone else to do it instead. This is not a developer issue, this is a capitalism issues. Websites are used to make money, ergo they must rank high in search engines. A google engineer framing this as anything else is simply naive. SEO is a high stakes game, and they are the chief architects that made it so. Don't get me wrong, personally I am happy that Google have forced sites to follow standards, move to more modern solutions and stop using so much javascript and other cpu and bandwidth hogging resources, but while they also continue to demand tracking of the world they are also contributing to the bloat, and being just a little bit hypocritical: "no bragging about scoring well in lighthouse, but it would be a pity if your scores went down and nobody could find you in a search ... ".
- lelandfe 5y ago> higher scores get higher ranking Not exactly the way it works. It's a pass/fail. > For example, a page with an LCP of 1750 ms (better than the “good” LCP guidance) and another one with 2500 ms (at the “good” guidance) would not be distinguished on the basis of the LCP signal [0] [0] https://support.google.com/webmasters/thread/104436075/core-web-vitals-page-experience-faqs-updated-march-2021 https://support.google.com/webmasters/thread/104436075/core-...
- onion2k 5y agoIf you're going to talk about the performance of a production site, use real-user data. To do that I'd have to implement features that track users, or at least report back to a server with data I could use to track users, and I don't want to do that. As unfortunate as lab-data-only tests are, I'd rather accept those limitations than gather data I don't have any genuine need for. Heck, I'd rather deliver a slightly slower website than do that. Some websites probably do have a need for super accurate perf metrics, and the devs who build those sites will have to wrestle with the question of what data get to from users for themselves, but I believe we ought to be normalising limiting what data we gather in the real world for everything else. Ultimately, when I ask myself whether performance is more important than user privacy, I end up answering no.
- maven29 5y agoA beta/early-access program?
- onion2k 5y agoTracking people almost always a bad idea in my opinion. Even if they get something in return like early access to something. Even if they're happy to accept being tracked. There just isn't a good justification for it in most cases. For a start, most sites that track users don't even use the data they gather. They're just gathering it because they're think they're expected to. So many sites implement Google Analytics, Hotjar, etc and then use the data as nothing more than a web counter. That's beyond infuriating to anyone who thinks privacy is worth fighting for. If you're going to violate my privacy, at least do it for a good reason. In the case of the article there could be solid reasons for hoovering up lots of information about users. But really, unless you're in a massive company with significant resources, all of that perf data is just going to sit in a database and a senior might occasionally look at the dashboard overview and think "We should make our images smaller." or "Huh, users have a sucky time when they're on Android. Oh well.". Those are not good reasons to gather real-world user data instead of relying on Lighthouse scores. Lighthouse is "good enough" for most people. I imagine that a frustrating part of working on web perf is that small companies and startups don't have the resources to do it well, so they end up cargo-culting what Google does but without spending time or effort to make good on what they might learn. To be fair to the author, I'm much more at fault here than they are. I have no doubt that the article is aimed it at a much smaller audience (the web perf community), and now I'm here saying it's not applicable in a much broader context because it was posted to HN. I apologize to them for that. This is something I care about and it was an opportunity to rant. :)
- lelandfe 5y agoI’m not sure we are in agreement on what tracking means. This article advocates logging performance timings. You can’t track someone with that.
- 5y ago
- forgotmypw17 5y agoMy challenge to the web developer community: Can you write something which works in any browser, regardless of device age, browser version, connection speed, with progressive enhancement for more modern features?
- alserio 5y agoSure, if you don't want what the ux guys have designed or if you are prepared to give me more people and time
- WJW 5y agoWhy not a challenge to the sysadmins of this world: Can you make sure all machines under your care have a browser not older than (say) 5 years?
- goodpoint 5y ago3 billion people on this planet cannot afford a new phone or a new desktop every 5 years (to put it mildly).
- gherkinnn 5y agoNone of those 3 billion people were ever the target of the products I happened to work on. But 10% of our user bases were limited by their IT departments. It depends so much on what you're building.
- forgotmypw17 5y agoI don't agree. I think while I have a device that's working, it has the right to exist and I have the right to keep using it for 20 years if I want to. Not everyone agrees, certainly not the majors, but I'm OK with just my little comfortable corner of the Web, which also happens to have no ads, trackers, bloat.js, and so on.
- dotancohen 5y agoIn 2014 or so a client with whom I hadn't spoken to a few years contacted me. He told me that he originally wanted to contact me about updating the web app he uses to run his business to support his new iPad. But upon trying it, he was surprised to find that everything just worked! That's because I wrote his control panel in simple HTML with almost no CSS, just clean markup and barely a whiff of Javascript. It even works well enough on his Android phone to not require an update, provided he rotates the screen to landscape. That, on a page that was designed before the terms "mobile first" or "responsive" ever existed. Because good clean markup was, and remains, good clean markup.
- the_gipsy 5y agoLighthouse kind of drives you to add (possibly) useless PWA stuff: offline mode with its manifest.json and a webworker, IIRC.
- pornel 5y agoAnd Google Lighthouse doesn't like progressive images. You can have a well-optimized progressive JPEG that renders with just 15% of the data, but you get dinged for not using Google WebP, and your LCP is counted only when it fully loads (this is a known bug, and it died a painful death in a bikeshed of what a "contentful" image looks like.)
- lelandfe 5y ago> your LCP is counted only when it fully loads Great point. Wonder how it handles things like LQIP
- samhw 5y agoI think the issue is exactly that: 'When a measure becomes a target, it ceases to be a good measure' (https://en.wikipedia.org/wiki/Goodhart%27s_law https://en.wikipedia.org/wiki/Goodhart%27s_law). If you don't specifically optimise for Lighthouse, and then score well in Lighthouse, it's likely a good measure of your site's performance. But if you specifically optimise for Lighthouse and then score well in Lighthouse, it's like practising for a psychiatric examination - it's now measuring your ability to game a test, and not much else.
- megous 5y agoFYI, if you disable timing API used for this in the browser, you lose access to all cloudflare protected websites, because CF will endlessly loop on its "verifying your browser" page. :)
- southerntofu 5y agoFYI, CloudFlare like most (all?) big corps, hates privacy and will block Tor/VPN users as well as NoScript users. Clear win-win solution: don't use CloudFlare unless you absolutely have to.
- DeathArrow 5y agoI didn't know there is a web performance community. But I deal every day with web sluggishness community.
- southerntofu 5y agoIt's a problem we all encounter. Personally, Tor Browser's Safest mode (no javascript) is the only way i find the web usable these past few years. I can have hundreds of tabs open and still browse in a breeze, but if i dare enable JS in a browser, somewhere somehow one tab will manage to tank my whole machine in under a few hours.
- TomGullen 5y agoI don't encounter this problem - and have rarely disabled JS. Perhaps having hundreds of tabs open is the cause of your issues? Isn't this what bookmarks are for?
- southerntofu 5y agoOr maybe you have a higher-end machine than i do? I can tell you it's a common occurrence in my circles where we mostly use second-hand hardware. I remember when JS was not that common it took much less resources to browse the web: now people have gotten used to being unable to have different pages open at the same time. "I should close youtube so discord isn't terribly slow". Also, i don't always have hundreds of tabs open. But even just following links published on HN regularly pops up an article with simple text and images that for some reason will try to run many scripts eating away all my resources. Tor Browser's Safest mode is perfectly able to run dozens/hundreds of tabs. If you want to be more technical about it, there's obvious reasons for this. Of course, the client-side scripts are vastly inefficient because they're interpreted or JITed. And the scripts often have more than suboptimal ways to perform basic tasks which arguably could (should?) be declarative HTML/CSS elements which the browser could optimize for. Moreover, a single DOM change triggers redrawing, and some scripts are very keen on editing the DOM. Then of course we could talk about cryptominers and trackers and whatnot. Some people on this very forum have advertised that it would be acceptable to embed miners in web pages so that clients "pay for" the content. This outlines the high-level problem with client-side scripting on the web: who decides what gets computed on our machines? The declarative model is arguably empowering users whereas client-side scripting (in a client-to-server model like HTTP) is certainly empowering website operators to abuse their users.
- hoseja 5y agoHow come it's possible to see visual bands in the main graph [0]? It's clearly using a perceptually uniform modern colormap (magma I think), where might be the artifacts coming from? [0] https://philipwalton.com/static/lh-cwv-correlation-1400w-65493a1b29.png https://philipwalton.com/static/lh-cwv-correlation-1400w-654...
- systoll 5y agoMethodology is at: https://discuss.httparchive.org/t/lighthouse-scores-as-predictors-of-page-level-crux-data/2232 https://discuss.httparchive.org/t/lighthouse-scores-as-predi... All pages with two 'good' core-web-vital grade, and one 'poor' get exactly 200. All pages with one 'good' and two 'poors' get exactly 100. Getting 99/101/201/199 requires a much more specific set of performance characteristics.