@@ -665,7 +665,7 @@ manufacturer.
665665| 1,298 | 105 | 0.01 |
666666
667667Giant took third place on our podium. It looks as though they make use of
668- Vue.js—or at least Vue Cart— but no obvious signs of a framework such as Nuxt.
668+ Vue.js—or at least Vue Cart—but no obvious signs of a framework such as Nuxt.
669669
670670* Giant is built as a _ Multiple Page App_ . Or as we used to call them,
671671 _ websites_ .
@@ -674,7 +674,7 @@ Vue.js—or at least Vue Cart— but no obvious signs of a framework such as Nux
674674 and one to ` https://images2.giant-bicycles.com ` .
675675 * The ` static. ` origins are on the critical path.
676676* They make use of old school, JS-based lazy loading.
677- * They use unquoted ` attribute=value ` pairs like I do—nice .
677+ * They use unquoted ` attribute=value ` pairs like I do—_ nice _ .
678678* Great restraint shown here—only a small number of resources loaded from the
679679 ` <head> ` .
680680 * Non-critical CSS files are fetched asynchronously.
@@ -823,7 +823,8 @@ API calls.</figcaption>
823823 Both RUM and synthetic testing cannot detect ` iframe ` -originated LCP’s for
824824 privacy reasons, but CrUX, being part of Chrome, can. The upshot of this is
825825 that developers might wrongly assume that the site is much faster than it is
826- if they are relying on Lighthouse, DevTools, or WebPageTest.
826+ if they are relying on Lighthouse, DevTools, WebPageTest, or anything other
827+ than CrUX.
827828* The rest of the PDP’s LCP story is a bit of a car crash. As content loads on
828829 the client, the LCP candidate keeps on changing (all while CLS scores keep on
829830 increasing). Once the browser does settle on its LCP candidate, Trek fade it
@@ -1048,16 +1049,16 @@ bad news.</figcaption>
10481049 * 16MB of the 24MB transferred is image data.
10491050* The PDP’s HTML payload is gargantuan.
10501051 * Almost 4MB decompressed—almost all of it is Nuxt state (` window.__NUXT__ ` ).
1051- * We have an eyewatering 5MB of uncompressed JS.
1052+ * We have an eyewatering 5MB of JS.
10521053 * 12MB of the total 37MB uncompressed page bytes are JavaScript.
10531054 * That’s not a typo.
10541055
10551056#### Takeaways
10561057
1057- Before we focus on the bad, Ridley’s new Noah 3.0 won its first ever race—at the
1058- Tour de France, no less. It also marked the first ever Tour stage win for Uno-X
1059- Mobility, the team that ride Ridley’s bikes. That’s more of a win than any Core
1060- Web Vitals— congratulations.
1058+ Before we focus on the bad, Ridley’s new Noah 3.0 won its first ever race. And
1059+ at the Tour de France, no less. It also marked the first ever Tour stage win for
1060+ Uno-X Mobility, the team that ride Ridley’s bikes. That’s more of a win than any
1061+ Core Web Vitals, so congratulations are in order. Let’s take a moment .
10611062
10621063But onto the job at hand. Ridley is struggling a lot with all three metrics. LCP
10631064is hampered by already-high first-byte times, leaving only a 500ms budget to get
@@ -1069,7 +1070,7 @@ down.
10691070On the subject of the main thread, the constantly-firing
10701071` requestAnimationFrame() ` is dragging them into the very pits of INP—well over
10711072one second! This isn’t because the main thread is necessarily blocked—` rAF() ` is
1072- relatively noninvasive and each one only lasts a small amount of time, but the
1073+ relatively noninvasive and each one only lasts a small amount of time— but the
10731074main thread is just kept _ so_ busy, it’s hard to sneak any user input in.
10741075
10751076<figure >
0 commit comments