in
Written by Harry Roberts on CSS Wizardry.
View this web page as Markdown.
Desk of Contents
Impartial writing is delivered to you by way of my great
Supporters.
Which bike model raced forward within the browser in addition to the bunch?
At the moment, the 112th version of the Tour de
France got here to an in depth. Wout van
Aert received the ultimate stage in Paris,
and Tadej Pogačar,
predictably, received the general title, making it his fourth time taking the
maillot jaune.
I’m an enormous biking nerd, and the Tour de France is the head of the game.
Three weeks of racing — 21 levels — protecting 3,338.8 kilometers of terrain, it
actually is a marathon and never a dash.
However that isn’t to say that pace isn’t vital! Biking is a sport obsessed
with aerodynamics, weight financial savings, and marginal positive factors. Bike producers obsess
over each gram shaved or watt saved. Biking is the right sport for the
efficiency engineer as a result of issues can at all times be measured, and so they can at all times
be improved.
And whereas a lot of the success undoubtedly lies on the shoulders of the athletes,
as a motorcycle producer, having the lightest or quickest bike places you in a a lot
stronger place on race day. And certainly, this results in some pretty outlandish
statements:
Nothing is quicker than the Tarmac SL8 […] it’s greater than the quickest Tarmac
ever – it’s the world’s quickest race bike.
— Specialised
Or:
Having a number one high-tech wind tunnel on-site, distinctive for a biking model,
allows us to construct the quickest bikes on the planet.
— Ridley
Daring claims, however how do they stack up within the browser? For an business totally
obsessive about pace, how does that translate to its on-line presence? Each
particular person within the peloton desires to be the quickest rider, and each bike
producer that sponsors them claims to have the quickest bike, however who has
the quickest web site?
I took a have a look at the websites of each bike producer that has a presence in
2025’s Tour (all 21 of them) and ran the numbers. My query: does a motorcycle
model’s deal with internet efficiency predict their efficiency on race day?
The outcomes are in…
The Groups and Bikes of the 2025 Tour de France
In complete, 23 groups are sponsored by 21
completely different bike manufacturers. All groups that compete within the Tour de France are
WorldTeam standing, apart from
chosen ProTeams (marked under)
who’re invited to compete in the same method to wild playing cards in tennis.
See full record…
What I wish to work out is, of these groups, which of their bike producers
put as a lot effort into internet efficiency as they do race-day efficiency?
The Quickest Bike Websites within the 2025 Tour de France
To rank the bike manufacturers, I used my very own proprietary CrRRUX
rating (increased is
higher). CrRRUX is particularly designed to match the Core Internet
Vitals knowledge of a finite cohort of origins,
putting them proportionally on a 0–1 scale. Given simply how shut numerous the
websites appear to land, I needed to push CrRRUX to 4 decimal locations.
Core Internet Vitals, for people who haven’t come throughout them earlier than, are three internet
efficiency metrics which might be designed to measure site-speed in a method that
displays how they really really feel. Human-centric indicators of quick or sluggish:
- Largest Contentful Paint (LCP): How briskly did the web page and its content material
load? - Interplay to Subsequent Paint (INP): How rapidly did the web page reply to person
enter? - Cumulative Structure Shift (CLS): Did parts soar across the web page because it was
loading?
It’s round these three metrics that this meta evaluation is performed.
The headline information is correct right here. Based on their relative CrRRUX rating, right here
are the bike manufacturers from quickest to slowest:
| Rank | Model | Sponsors of… | CrRRUX Rating |
|---|---|---|---|
| 🥇 | Merida | Bahrain Victorious | 1.0000 |
| 🥈 | Issue | Israel–Premier Tech (ProTeam) | 0.9986 |
| 🥉 | Large | Jayco–AlUla | 0.9985 |
| 4 | LOOK | Cofidis | 0.9967 |
| 5 | Enve | Workforce TotalEnergies (ProTeam) | 0.9963 |
| 6 | Cervélo | Workforce Visma | Lease a Bike | 0.9942 |
| 7 | Van Rysel | Decathlon AG2R La Mondiale Workforce | 0.9895 |
| 8 | Canyon | Alpecin–Deceuninck, Movistar Workforce | 0.9879 |
| 9 | BMC | Tudor Professional Biking Workforce (ProTeam) | 0.9876 |
| 10 | Pinarello | Ineos Grenadiers | 0.9855 |
| 11 | Lapierre | Workforce Picnic PostNL | 0.7997 |
| 12 | Cannondale | EF Training–EasyPost | 0.7941 |
| 13 | Specialised | Crimson Bull–BORA–hansgrohe, Soudal Fast-Step | 0.7919 |
| 14 | CUBE | Intermarché–Wanty | 0.7878 |
| 15 | Bianchi | Arkéa–B&B Resorts | 0.7657 |
| 16 | XDS | XDS Astana Workforce | 0.7492 |
| 17 | Colnago | UAE Workforce Emirates–XRG | 0.6023 |
| 18 | Wilier | Groupama–FDJ | 0.5961 |
| 19 | Trek | Lidl–Trek | 0.4581 |
| 20 | Orbea | Lotto (ProTeam) | 0.2292 |
| 21 | Ridley | Uno–X Mobility (ProTeam) | 0.0000 |
Enormous congratulations to our podium!
- Merida, sponsors of Bahrain Victorious
- Issue, sponsors of Israel–Premier Tech
- Large, sponsors of Jayco AlUla
And the Core Internet Vitals scores for every model (on the time of writing):
| Model | LCP (ms) | INP (ms) | CLS |
|---|---|---|---|
| Merida | 1,188 | 77 | 0.00 |
| Issue | 1,248 | 119 | 0.00 |
| Large | 1,298 | 105 | 0.01 |
| LOOK | 1,486 | 112 | 0.00 |
| Enve | 1,552 | 85 | 0.01 |
| Cervélo | 1,552 | 137 | 0.01 |
| Van Rysel | 1,893 | 131 | 0.00 |
| Canyon | 1,394 | 145 | 0.06 |
| BMC | 2,069 | 83 | 0.00 |
| Pinarello | 1,415 | 83 | 0.09 |
| Lapierre | 2,215 | 144 | 0.13 |
| Cannondale | 2,704 | 121 | 0.07 |
| Specialised | 2,078 | 308 | 0.05 |
| CUBE | 2,179 | 110 | 0.19 |
| Bianchi | 3,381 | 109 | 0.01 |
| XDS | 3,651 | 135 | 0.01 |
| Colnago | 3,410 | 214 | 0.08 |
| Wilier | 3,150 | 266 | 0.10 |
| Trek | 2,869 | 210 | 0.15 |
| Orbea | 5,050 | 138 | 0.41 |
| Ridley | 4,694 | 1,121 | 0.61 |
Once we have a look at the uncooked knowledge with some color coding, a captivating sample
emerges: numerous websites carried out extremely properly. The quickest 10 move all three
Core Internet Vitals. The final state of internet efficiency within the biking business
appears very wholesome!

A transparent cliff seems between rows 12 (Lapierre) and 13 (Pinarello) when websites
abruptly transfer from failing one or the entire Core Internet Vitals to overwhelmingly
passing all three. That is measured by the Ordinal rating — round which CrRRUX
is closely
weighted — and
means any website that solely passes, say, two Core Internet Vitals can’t rank above any
website that passes all three.
The actual fact we go from high-70s to high-90s in a single leap isn’t one thing one
sometimes observes in these sorts of comparability. There’s no deep or hidden
that means there — it’s only a very attention-grabbing factor to see.
Deeper Evaluation
I made a decision to look additional into what made the highest three stand out (and the underside
three come over the road with the
gruppetto), so I did some
particular person evaluation of this subset of six bike manufacturers:
| Rank | Model | Sponsors of… | CrRRUX Rating |
|---|---|---|---|
| 🥇 | Merida | Bahrain Victorious | 1.0000 |
| 🥈 | Issue | Israel–Premier Tech (ProTeam) | 0.9986 |
| 🥉 | Large | Jayco–AlUla | 0.9985 |
| … | … | … | … |
| 19 | Trek | Lidl–Trek | 0.4581 |
| 20 | Orbea | Lotto (ProTeam) | 0.2292 |
| 21 | Ridley | Uno–X Mobility (ProTeam) | 0.0000 |
I examined the homepage and the product web page for the particular bike the groups are
possible to make use of in a race. It’s because the UCI mandates that each one bikes utilized by
race groups should both be already obtainable for buy by most of the people,
or have to be obtainable to them inside 12 months of the race:
Gear shall be of a sort that’s bought to be used by anybody practising biking
as a sport. Any tools in improvement part and never but obtainable on the market
(prototype) have to be topic of an authorization request to the UCI Gear
Unit earlier than its use. Authorization shall be granted just for tools which is
within the remaining stage of improvement and for which commercialization will take
place no later than 12 months after first use in competitors.
— Article 1.3.006
Crucially, meaning any of the bikes raced and websites examined are topic to make use of
by actual folks. This isn’t a theoretical train.
What follows is an extremely high-level have a look at how every website performs and
advised areas for enchancment. Subscribers will get to see rather more
in-depth evaluation.
🥇 Merida

Based in 1972, Merida is a Taiwan-based design and manufacture operation.
Apparently, for the primary 16 years of its life, Merida solely produced bikes
for different manufacturers, and solely launched its personal line of cycles in 1988.
Fascinatingly, Merida is quick regardless of its website, not due to it. Some
very quick-fire evaluation…
Basic Findings with Merida
| LCP (ms) | INP (ms) | CLS |
|---|---|---|
| 1,188 | 77 | 0.00 |
Regardless of utilising Vue.js 2.1.10 in locations, Merida’s website is a fairly
conventional — dare I say old fashioned — MPA. I can’t work out the precise stack too
rapidly, however it sticks to ‘basic’ CSS and JS, and age-old recommendation like
types on the prime; scripts on the backside
. This reminds of the
McMaster–Carr website that did the rounds a number of years in the past: web sites are quick
till builders begin messing round with them.
- They host all of their crucial path sources on a third-party
origin!- This provides numerous community overhead.
- They don’t have a correct font stack in place (
font-family: 'Uni Sans';) so
they get a FOUT displaying Instances New Roman. - Aggressive
cache-control: no-store, no-cache, must-revalidatemeans200s
on each request.- They might drop it down to only
no-store,
personal
in the event that they actually do wish to forgo HTTP
caching on each single web page view,
or a extra liberalno-cachecoupled with bothEtagorFinal-Modified
in the event that they needed to make sure freshness but in addition make use of cache after an
instant304.
- They might drop it down to only
- They cache their static belongings for six months however don’t connect revalidation
headers.- Based mostly on
Ageheaders (I noticed one at1990959seconds!), these recordsdata don’t
change fairly often in any respect.
- Based mostly on
- Their URLs work each with and with out a trailing
/however they haven’t any
rel=canonicals arrange.
Merida’s Homepage Highlights

Points particular to the homepage:
- Their LCP is
abackground-image
which is rarely nice with out some extra assist frompreload. - Not solely is the picture late-discovered, it suffers a big Aspect Render
Delay whereas the principle thread is busy with heavy Scripting and Rendering duties.
Merida’s Product Particulars Web page Insights

.tif extension, however their LCP picture isreally a
picture/jpeg content-type.And points particular to their product particulars web page:
- Their LCP picture is available in at a weighty 379.2KB! That’s fairly giant.
- They don’t make use of any type of responsive pictures, both. Which means
even on the smallest screens we nonetheless fetch a 2,500px picture.
- They don’t make use of any type of responsive pictures, both. Which means
- Their LCP picture is fetched with Medium precedence; we’d relatively that be Excessive.
- Though as a result of it’s an
<img>, it a minimum of hits the community earlier than their
JS, in contrast to within the homepage.
- Though as a result of it’s an
- Once more, we see a big Aspect Render Delay whereas we wait on the principle thread.
Takeaways
Merida is a superb instance of merely not getting in the way in which of the browser. Positive,
they’ve room for enchancment, however even then they’re nonetheless coming in at quantity
one. By not throwing each npm bundle on the planet on the website — by merely
betting on
boring — they’ve
sustained class-leading efficiency. That’s greater than will be stated for many
‘trendy’ stacks.
Chapeaux, Merida!
Subscribe
now to see detailed evaluation of Merida’s web site.
🥈 Issue

Based in 2007 in Norfolk, England, Issue Bikes started life as an offshoot of
motorsport engineering agency bf1systems. The corporate’s early tasks included
high-performance prototypes earlier than it launched its first industrial bike, the
Issue ONE, in 2013.
Basic Findings with Issue
| LCP (ms) | INP (ms) | CLS |
|---|---|---|
| 1,248 | 119 | 0.00 |
Our second quickest website, Issue, is constructed on Shopify’s headless Hydrogen
storefront and deployed onto their Oxygen.
- Issue is constructed as a Single Web page App with smooth navigations.
- I’ve by no means see
<head>tags so tiny! Solely 9 objects within the supply HTML. - Sadly, they do have plenty of belongings on third-party origins.
Persistently throughout the positioning, that may be a stylesheet on theunpkg.comCDN.- That is simply remedied by pulling the file onto first get together infrastructure.
- I should have stated this 1,000,000 occasions by now, however please, self-host your
static belongings!
- No
cache-controlheaders means HTML responses can’t be precisely
revalidated, at all times returning a200when it may have been a304.- The absence of a
cache-controlheader is just not sufficient to rely as a caching
technique. - Nevertheless, as the whole lot else is so properly cached, together with LCP pictures,
repeat-view LCP metrics are considerably sooner.
- The absence of a
- We’re additionally lacking proprietary
Oxygen-Cache-Managementheaders, that means we
can’t get edge cache hits both. - LCP pictures on each pages are each
background-images which might be
late-discovered.- In addition they stay on yet one more third-party origin that’s not
preconnected — Contentful’spictures.ctfassets.web.
- In addition they stay on yet one more third-party origin that’s not
Issue’s Homepage Highlights

- The homepage compounds the
unpkg.comdownside by additionally making requests to the
first/third-partycdn.shopify.comorigin.- It could be smart so as to add
HyperlinkHTTP response headers topreconnectthis
origin. Cloudflare, who Issue are fronted by, can then improve these to
103 Early Hintsfor them.
- It could be smart so as to add
- The homepage LCP picture could be very late found (entry 42 at 1.7s), and on
a special origin, as mentioned, however it’s additionally monumental! 1,235.1KB of WebP.- There may be some synchronous JS seen at round 1.7s on line 1 that have to be
additional blocking the invention of thebackground-image. - To make issues worse, Contentful’s response closely interleaves picture bytes
with much less crucial pictures, returning non-LCP sources (43–47) earlier than our
key candidate.
- There may be some synchronous JS seen at round 1.7s on line 1 that have to be
Issue’s Product Particulars Web page Insights

waterfall!
There actually isn’t a lot completely different between the homepage and product element pages.
Actually, there are extra similarities.
- Sadly, the LCP is a
background-imageas soon as once more.
Takeaways
This website is a exceptional train in restraint. No heavy-handed runtime, a really
thoughtful method to 3rd events. A contemporary stack with none trendy
baggage. I’m impressed, Issue!
Subscribe
now to see detailed evaluation of Issue’s web site.
🥉 Large

Established in 1972, Large is a Taiwanese model headquartered in Taichung.
Initially a producer for different firms, Large started producing bikes below
its personal title in 1981 and has since grown into the world’s largest bicycle
producer.
Basic Findings with Large
| LCP (ms) | INP (ms) | CLS |
|---|---|---|
| 1,298 | 105 | 0.01 |
Large took third place on our podium. It appears to be like as if they make use of
Vue.js — or a minimum of Vue Cart — however no apparent indicators of a framework corresponding to Nuxt.
- Large is constructed as a A number of Web page App. Or as we used to name them,
web sites. - No phrase of a lie, they’ve a
spacer.gif! - Pages open three new connections: two to
https://static.giant-bicycles.com
and one tohttps://images2.giant-bicycles.com.- The
static.origins are on the crucial path.
- The
- They make use of old fashioned, JS-based lazy loading.
- They use unquoted
attribute=worthpairs like I do — good. - Nice restraint proven right here — solely a small variety of sources loaded from the
<head>.- Non-critical CSS recordsdata are fetched asynchronously.
- They’re making good use of
font-display.
Large’s Homepage Highlights

- They’re lazily loading their homepage LCP!
- With JS, no much less. Tremendous sluggish. It’s the 84th request.
- It’s getting requested after Fb, Google Tag Supervisor, Google
Analytics, and Klaviyo have been fully returned. - They usually’re placing
fetchpriority=excessiveon there. Make your thoughts up!
Large’s Product Particulars Web page Insights

lengthy to color it.
- The LCP picture is
preloaded now, that means theimages2.connection is
negotiated a lot earlier on PDPs.- Because of this it’s now the sixth request versus the 84th.
- The
preloadwantsfetchpriority=excessive - The killer right here is the truth that we don’t put the LCP on the glass for
a really, very very long time. - Within the screenshot above, we see our LCP picture is on the gadget by about
1.5s, however our LCP occasion doesn’t hearth till roughly 7s (the dashed
inexperienced line). - This eyewatering Aspect Render Delay is all the way down to the truth that Large transfer
to a client-rendered structure for his or her picture gallery (and Add to
Cart) on PDPs.
- Our repeat view has closely cached belongings, however because the LCP occasion is so runtime
dependent, we get no customer-facing efficiency enhancements.
Takeaways
With the Large website, we’re in a spot the place taking a look at two pages in isolation
really look fairly dangerous — there are a few egregious choices that put them
on the again foot. However wanting on the website total, they’re glowing. It could be
attention-grabbing to drill down into particular page- and template-types.
Subscribe
now to see detailed evaluation of Large’s web site.
Trek

Based in 1976 in Waterloo, Wisconsin, Trek was created with a mission to construct
high-end bikes in the US. It has since turn into a significant international participant,
with a powerful deal with innovation and racing pedigree throughout street and mountain
disciplines.
Basic Findings with Trek
| LCP (ms) | INP (ms) | CLS |
|---|---|---|
| 2,869 | 210 | 0.15 |
Trek is a biking powerhouse! One of many larger manufacturers within the peloton, how have
they discovered themselves towards the again of the pack? Trek use totally
client-rendered Vue.js on prime of SAP Commerce Cloud, deployed on Azure and
fronted by Cloudflare.
- Absolutely client-rendered Vue.js (with out Nuxt, and so forth.).
- They nonetheless power laborious navigations, so each web page view runs right into a excessive boot-up
value — it runs as an MPA. - They’ve a foolish redirect whereby their brand hyperlinks to
/us/en_US, however the
ensuing URL is definitely/us/en_US/. This provides pure latency onto each
homepage click on. - Most pages don’t place-hold shopper rendered content material very properly in any respect,
explaining their excessive CLS scores.
Trek’s Homepage Highlights

picture.
- I haven’t included the complete waterfall for any of the websites to this point, however it’s
value noting that Trek’s homepage yielded 262 requests! - The homepage’s LCP (29) is definitely fetched comparatively rapidly, regardless of being
totally client-rendered.- And JS-lazy loaded as soon as it arrives — wow!
- This slow-path request for the LCP picture bought it onto the gadget by about
5 seconds, however we don’t show it till roughly 15 seconds!
- The homepage appears to have its app-shell fairly properly place-held as there is no such thing as a
CLS penalty. - One other very aggressive
cache-control: no-cache, no-store, max-age=0,header means we get
must-revalidate200responses on each subsequent
go to.- Nearly all different directives are redundant within the presence of
no-storeas
if there may be nothing to retailer, there may be nothing to cache, nothing to run out,
and nothing to revalidate. Nonetheless, it doesn’t do any hurt to incorporate them
all.
- Nearly all different directives are redundant within the presence of
- INP scores are pushed up by an enormous Recalculate Type occasion when opening the
nav.- In conditions like this, CSS containment
can typically assist localise that work. - They’re studying fashion properties whereas additionally making an attempt to put in writing them.
- As simply 2.9× CPU throttling, this occasion took an eyewatering 154ms!
- In conditions like this, CSS containment
Trek’s Product Particulars Web page Insights

API calls.
- Apparently sufficient, the video on the PDP isn’t classed because the LCP
candidate — it’s a bit of textual content that seems quite a bit earlier.- The PDP’s ‘apparent’ LCP candidate is a YouTube video loaded by way of an
iframe.
Each RUM and artificial testing can’t detectiframe-originated LCP’s for
privateness causes, however CrUX, being a part of Chrome, can. The upshot of that is
that builders would possibly wrongly assume that the positioning is far sooner than it’s
if they’re counting on Lighthouse, DevTools, WebPageTest, or something different
than CrUX.
- The PDP’s ‘apparent’ LCP candidate is a YouTube video loaded by way of an
- The remainder of the PDP’s LCP story is a little bit of a automobile crash. As content material masses on
the shopper, the LCP candidate retains on altering (all whereas CLS scores carry on
growing). As soon as the browser does decide on its LCP candidate, Trek fade it
in! Chrome takes the tip of the animation as its LCP timestamp, additional
exacerbating the problem.- The API response that comprises the LCP content material is the 148th
request!
- The API response that comprises the LCP content material is the 148th
- Product pages will not be sufficiently place-held to safeguard CLS scores: the
major app shell is empty, and oncoming content material is just not place-held both.
Takeaways
The Trek website going all in on client-side Vue has left it struggling to hit
first rate paint timings. This coupled with explicit web page sorts not being
adequately place-held provides us the CSR double whammy of LCP and CLS penalties.
I can solely think about (or hope) Trek may need a rebuild or replatform on the
horizon — seeing fully-client rendered Vue is already one thing of a relic.
Subscribe
now to see detailed evaluation of Trek’s web site.
Orbea

Based in 1840 within the Basque Nation of Spain, Orbea really began out
making weapons. It pivoted to bicycles within the Thirties and is now one of many oldest
bike producers on the planet, identified for its modern, performance-oriented
designs.
Basic Findings with Orbea
| LCP (ms) | INP (ms) | CLS |
|---|---|---|
| 5,050 | 138 | 0.41 |
Orbea is deployed as an MPA however makes use of Alpine.js for client-side templating. Different
than that, it’s fairly tough to see what stack they’re on.
- Orbea is deployed as an MPA.
- They undergo extremely excessive TTFB.
- They usually even have an especially aggressive
no-store, no-cache,coverage.
must-revalidate - This implies each web page view is a again end-heavy journey to origin:
cf-cache-status DYNAMIC.
- They hyperlink to numerous
render-blocking sources,
together with third-party ones. - They use Typekit which comprises an
@import— a
actual killer.- It’s significantly dangerous for Orbea as the majority of their JavaScript is
blocked behind it. - They’re making an attempt to make use of
Typekit.load()however it’s undefined.
- It’s significantly dangerous for Orbea as the majority of their JavaScript is
- Their fallback font could be very completely different to their customized font; completely different sufficient
to nearly go over 0.1 CLS on the homepage. - They appear to have the identical
rel=canonicalpoints as Merida. - They make sporadic use of
font-display.
Orbea’s Homepage Highlights

- They lazy load their LCP on the homepage.
- The sheer quantity of JS that runs beforehand means it’s found extremely
late — entry 89.
- The sheer quantity of JS that runs beforehand means it’s found extremely
- Nevertheless they don’t lazy load pictures a lot additional down the web page.
- In addition they omit
altandwidthandtopattributes.
- In addition they omit
- They fetched about 11.8MB of pictures.
Orbea’s Product Particulars Web page Insights

- The PDP introduces two new third get together blocking origins.
- One factors at
https://unpkg.com/tippy.js@6which then302s to
/tippy.js@6.3.7/dist/tippy-bundle.umd.min.js. - This provides a complete spherical journey of latency to the crucial path and is barely
cacheable for one minute.
- One factors at
- They seem like making an attempt a JS-based lazy loading technique with
data-src
attributes however additionally they have a non-emptysrcthat factors to the cell
picture anyway.- This implies desktop will fetch the cell picture and, conditionally, the
desktop picture.
- This implies desktop will fetch the cell picture and, conditionally, the
- The PDP has two close to (if not fully) similar carousels on it — extra
extra fetches.- JS hides one of many carousels, however not earlier than incurring a extreme structure
shift.
- JS hides one of many carousels, however not earlier than incurring a extreme structure
- You see these two color swatch pictures within the screenshot above? The 2
bisected circles? They’re each 822KB JPEGs.
Takeaways
It’s first byte occasions which might be crippling Orbea. Setting even a modest max-age
(and permitting Cloudflare to serve cached HTML responses) would take the sting
off. Typekit — and the way in which they’ve positioned it — trigger them extreme paint-timing
points. Blocking on prime of blocking on prime of blocking. The double-carousel
problem on the PDP accounts nearly precisely for his or her CLS scores. That might be
a fast win for them.
Subscribe
now to see detailed evaluation of Orbea’s web site.
Ridley

Established in 1997 in Belgium by Jochim Aerts, Ridley has constructed a status
round aerodynamic innovation and cobble-tough endurance bikes. Its roots in
Flemish biking tradition are unmistakable, and its bikes are an everyday fixture in
the professional peloton.
Basic Findings with Ridley
| LCP (ms) | INP (ms) | CLS |
|---|---|---|
| 4,694 | 1,121 | 0.61 |
- Ridley is constructed on Nuxt and is a soft-navigation SPA.
- They fetch Google Maps in a blocking method.
- In addition they have a blocking monitoring script on a separate origin which at all times
causes a community request because it’s markedmax-age=0. - Their LCP candidates stay on separate asset domains.
- The fallback font is so removed from the online font that it causes extreme structure
shifts. - There are not any caching headers in any way, which is inadvisable.
- However as they do have an
ETagheader,304s are doable.
- However as they do have an
- Nuxt is doing that annoying sample the place it
preloads a CSS file then
instantly requests it withrel=stylesheetproper after.- It’s not dangerous, however it’s not useful both, and finally ends up marking blocking
requests as non-blocking which is deceptive. - With regards to
preload, they’repreloading Google
Fonts but in addition async-injecting it with
JavaScript. Once more, not dangerous, but in addition not a lot level both.
- It’s not dangerous, however it’s not useful both, and finally ends up marking blocking
- The actual killer for Ridley is a near-infinite
requestAnimationFrame(). The
entire time we’ve got a web page open,rAF()is in a continuous repetition.- That is how we find yourself with a 1s+ INP rating.
- You may see this within the waterfalls under. It stops after about 20 seconds.
- Apparently, regardless of being seen a lot earlier, the precise LCP occasion in
WebPageTest didn’t hearth till the nonstoprAF()settles down briefly. - Fortunately, belongings are fingerprinted and cached for
a yr. - Their Nuxt JS bundles are outlined on the
</physique>with eachasyncand
defer. On this situation,asyncat all times
wins.asyncis an open invite for race circumstances, so I can solely assume their
bundles have been designed to run independently (in any other case, count on numerous
errors and bugs).
Ridley’s Homepage Highlights

dangerous information.
- The LCP picture is 1.4MB!
- On slower connections, this can be a killer.
- It’s within the HTML a minimum of — they need to stick
fetchpriority=excessiveon there.
- The homepage ‘carousel’ is definitely stacked one pane on prime of the opposite
relatively than in a row like a conventional carousel.- Which means whereas the heavy pictures are downloading, we see a great deal of
stacked textual content nodes which appears to be like very damaged.
- Which means whereas the heavy pictures are downloading, we see a great deal of
Ridley’s Product Particulars Web page Insights

- The LCP picture is within the preliminary HTML as an
<img>, however lacking
fetchpriority=excessive.- They’re really making an attempt to lazy load it! However fortunately additionally getting it
improper:lazy=true.
- They’re really making an attempt to lazy load it! However fortunately additionally getting it
- Once you change between completely different bike sizes, you get enormous structure shifts.
- We’ve got extra poorly optimised pictures.
- 16MB of the 24MB transferred is picture knowledge.
- The PDP’s HTML payload is gargantuan.
- Nearly 4MB decompressed — nearly all of it’s Nuxt state (
window.__NUXT__).
- Nearly 4MB decompressed — nearly all of it’s Nuxt state (
- We’ve got an eyewatering 5MB of JS.
- 12MB of the entire 37MB uncompressed web page bytes are JavaScript.
- That’s not a typo.
Takeaways
Earlier than we deal with the dangerous, Ridley’s new Noah 3.0 received its first ever race. And
on the Tour de France, no much less. It additionally marked the primary ever Tour stage win for
Uno-X Mobility, the workforce that experience Ridley’s bikes. That’s extra of a win than any
Core Internet Vitals, so congratulations are so as. Let’s take a second.
However onto the job at hand. Ridley is struggling so much with all three metrics. LCP
is hampered by already-high first-byte occasions, leaving solely a 500ms funds to get
from TTFB to LCP. The vast majority of their misplaced time occurs between FCP and
LCP — that is nearly all misplaced to Aspect Render Delay. This could be the
phenomenon noticed above: the LCP occasion doesn’t hearth till the principle thread dies
down.
With regards to the principle thread, the constantly-firing
requestAnimationFrame() is dragging them into the very pits of INP — properly over
one second! This isn’t as a result of the principle thread is essentially blocked — rAF() is
comparatively noninvasive and every one solely lasts a small period of time — however the
major thread is simply stored so busy, it’s laborious to sneak any person enter in.

Lastly, as a result of INP is so excessive, numerous interactions take over 500ms which
then places us outdoors of the 500ms grace interval for CLS: hadRecentUserInput:.
false
I actually suppose simply finding out that requestAnimationFrame() would begin to
take chunks out of the opposite metrics, too.
Subscribe
now to see detailed evaluation of Ridley’s web site.
Patterns and Insights
As a biking fanatic, maybe essentially the most stunning perception for me was that
a lot of the bigger, wealthier, and most prestigious manufacturers have a tendency to look within the
slower half of the cohort. Is that this complacency? An Apple-esque vanity? Who
is aware of.
Large manufacturers aren’t at all times one of the best performers.
A number of of the business’s most recognisable names fall startlingly low on this
record. Trek, Orbea, and Specialised — manufacturers with international attain and important
advertising clout — rank 19th, 20th, and 13th
respectively. Their reputations far outpace their internet efficiency.
Excessive-end doesn’t at all times imply excessive CrUX scores.
Colnago (17th), Wilier (18th), and Bianchi
(15th) are all manufacturers dripping with status and heritage (and the
value tags to match), however by way of internet efficiency, they’re clustered in the direction of
the underside of the group. This would possibly recommend that legacy and luxurious don’t at all times
translate into digital excellence — or maybe that their buyer base tolerates
slower experiences in change for status and notion.
The underdog story is online-first.
Merida and Issue may not be the primary names followers consider when naming
top-tier race bikes, however they do prime this desk with near-perfect CrRRUX scores.
These manufacturers present that operational excellence, trendy manufacturing, and
consideration to digital expertise can co-exist with out the century-old heritage.
The Quickest Workforce Websites within the 2025 Tour de France
As a little bit of an added stretch purpose, I made a decision to run the numbers for every of the
workforce websites to see if any patterns emerged. These are the CrRRUX scores for every
workforce website that raced the 2025 Tour de France:
- Workforce Picnic PostNL – 0.9999
- Bahrain Victorious – 0.9982
- Israel–Premier Tech – 0.9978
- Ineos Grenadiers – 0.9972
- Intermarché–Wanty – 0.9928
- Lotto – 0.9919
- UAE Workforce Emirates–XRG – 0.9895
- Uno–X Mobility – 0.9893
- Groupama–FDJ – 0.9892
- EF Training–EasyPost – 0.9888
- Arkéa–B&B Resorts – 0.9847
- Soudal Fast-Step – 0.9792
- Cofidis – 0.9761
- Workforce TotalEnergies – 0.9705
- XDS Astana Workforce – 0.9701
- Lidl–Trek – 0.9587
- Movistar Workforce – 0.9585
- Workforce Visma | Lease a Bike – 0.7959
- Tudor Professional Biking Workforce – 0.7941
- Crimson Bull–BORA–hansgrohe – 0.7445
- Decathlon AG2R La Mondiale Workforce – 0.7175
- Alpecin–Deceuninck – 0.5588
- Jayco–AlUla – 0.5562
- Workforce Picnic PostNL, sponsored by Lapierre
- Bahrain Victorious, sponsored by Merida
- Israel–Premier Tech, sponsored by Issue
The quickest bike model additionally helps a mid-ranked workforce.
Merida tops the CrRRUX rankings for producers (1.0000) however sponsors Bahrain
Victorious — solely 17th within the remaining Tour standings. The Bahrain
Victorious workforce website, nonetheless, is the second-fastest total. It’s a uncommon
alignment: quick bike website, quick workforce website, middling outcome.
Issue and Israel–Premier Tech ship on each fronts.
Issue comes second within the CrRRUX bike desk (0.9986) and Israel–Premier Tech
ranks third amongst workforce websites (0.9978). That is certainly one of solely two pairings the place
each bike and workforce website land within the prime three for efficiency. Their Tour
placement? 18th. Quick website, sluggish legs.
Jayco–AlUla experience one of many quickest bike websites however have the slowest workforce website
Large ranks third within the bike CrRRUX desk (0.9985), however Jayco–AlUla come useless
final for workforce web site efficiency (0.5562). Their Tour
end — 17th — sits towards the underside. Maybe the workforce ought to take some
efficiency ideas from Large’s builders?
Might we conclude that Merida and Issue and Bahrain Victorious and
Israel–Premier Tech care about efficiency in all features of their operations?
Appendix
Credit and Inspiration
My good good friend and peer Jake Archibald wrote
a multi-part piece in 2021 asking Who has the quickest F1 web site in
2021?. That ought to
positively be seen because the genesis of this submit.
Methodology
I took essentially the most up-to-date CrUX
knowledge (blended cell and
desktop knowledge) for the newest time interval obtainable on the ultimate stage of
the Tour (27 July 2025). CrUX knowledge is predicated on actual customers’ experiences.
I pulled that knowledge into Google Sheets the place I ran it by means of my very own CrRRUX
algorithm — a metric
designed to objectively and pretty rank a cohort of origins’ Core Internet Vitals
knowledge.
For every of the quickest and slowest three websites, I took the homepage and the
product particulars web page for his or her flagship, high-end street race bike. I then ran
a sequence of artificial assessments with WebPageTest.
Under are the assessments and the related scripts.
WebPageTest URLs and Scripts
URLs examined (US-locale homepage and flagship bike web page; cell):
https://www.merida-bikes.com/en/
https://www.webpagetest.org/outcome/250804_ZiDcGY_AFS/
https://www.merida-bikes.com/en/bike/4850/reacto-team
https://www.webpagetest.org/outcome/250804_ZiDcZS_AFT/
https://factorbikes.com/
https://www.webpagetest.org/outcome/250804_ZiDcJ3_AFV/
https://factorbikes.com/bikes/ostro-vam
https://www.webpagetest.org/outcome/250804_ZiDc69_AFW/
https://www.giant-bicycles.com/us
https://www.webpagetest.org/outcome/250804_ZiDc67_AFX/
https://www.giant-bicycles.com/us/propel-advanced-sl-0-red
https://www.webpagetest.org/outcome/250804_ZiDcBC_AFY/
https://www.trekbikes.com/us/en_US/
https://www.webpagetest.org/outcome/250804_ZiDcS3_AFZ/
https://www.trekbikes.com/us/en_US/bikes/road-bikes/performance-road-bikes/madone/f/F213/madone-slr-9-gen-8/46707/5320708
https://www.webpagetest.org/outcome/250804_ZiDc8W_AG0/
https://www.orbea.com/us-en/
https://www.webpagetest.org/outcome/250804_ZiDc6C_AG1/
https://www.orbea.com/us-en/bicycles/street/orca-aero/cat/orca-aero-m10i-replica
https://www.webpagetest.org/outcome/250804_ZiDc96_AG2/
https://www.ridley-bikes.com/en_US
https://www.webpagetest.org/outcome/250804_ZiDcBP_AG3/
https://www.ridley-bikes.com/en_US/bikes/SBINF3RID082
https://www.webpagetest.org/outcome/250804_ZiDcYD_AG4/
Cookie consent script:
setCookie https://www.merida-bikes.com cookie_consent_status=["necessary","statistics","media"]
setCookie https://www.giant-bicycles.com cookieControlPrefs=["essential","marketing","statistics"]
setCookie https://factorbikes.com/ preferredCountry=US
setCookie https://factorbikes.com/ preferredMarket=US
setCookie https://www.trekbikes.com/ CookieConsent={stamp:%27atAx5dV3eelO+NTJEeE2/2hjQP8EfzneY261Azp3e9ayU+Ns0nlBKQ==%27percent2Cnecessary:truepercent2Cpreferences:truepercent2Cstatistics:truepercent2Cmarketing:truepercent2Cmethod:%27explicitpercent27percent2Cver:1percent2Cutc:1753619313310percent2Cregion:%27gbpercent27}
setCookie https://www.orbea.com/ CookieConsent={stamp:%27-1percent27percent2Cnecessary:truepercent2Cpreferences:truepercent2Cstatistics:truepercent2Cmarketing:truepercent2Cmethod:%27impliedpercent27percent2Cver:1percent2Cutc:1753619371996percent2Cregion:%27GBpercent27}
setCookie https://www.ridley-bikes.com/ __BCF_CONSENT={"classes":["functional","product_enhancement_content_tracking","personalisation","marketing","social_media"],"degree":["functional","product_enhancement_content_tracking","personalisation","marketing","social_media"],"revision":0,"knowledge":null,"rfc_cookie":false,"consent_date":"2025-07-27T12:30:56.243Z","consent_uuid":"d5fbdb16-4793-42ca-b748-c517c6b4f427","last_consent_update":"2025-07-27T12:30:56.243Z"}
setCookie https://www.ridley-bikes.com/ _BCF_CONSENT={"classes":["functional","product_enhancement_content_tracking","personalisation","marketing","social_media"],"degree":["functional","product_enhancement_content_tracking","personalisation","marketing","social_media"],"revision":0,"knowledge":null,"rfc_cookie":false,"consent_date":"2025-07-27T12:30:56.243Z","consent_uuid":"d5fbdb16-4793-42ca-b748-c517c6b4f427","last_consent_update":"2025-07-27T12:30:56.243Z"}
navigate %URL%

