Skip to content

Site Speed of CDN Websites

Content delivery networks sell solutions to improve website speed: "Use our CDN and your website will load much faster!"

It seems obvious to expect the website of a CDN provider is fast, because surely the CDN provider wants to make a good first impression and show the visitor how fast their CDN is.

Let's compare CDN website speed using Google's real-user measurement data. Do all CDN websites provide a fast user experience and score 'all green' for the Core Web Vitals?

Speed of CDN Websites Compared

The table below shows the speed of CDN websites in July 2023, based on CRuX data.

  • Main website (www) only, not the support/docs/kb or customer portal
  • All pages
  • Mobile
  • 75th percentile
CDN TTFB FCP LCP CLS INP
Akamai 1.7 2.6 3.1 0 400
Amazon CloudFront 1.3 3.2 4.1 0 550
bunny 0.9 3.0 3.7 0 400
CacheFly 1.9 4.5 4.7 0.05 375
CDN77 1.3 2.0 2.7 0 300
CDNetworks 3.8 6.0 6.3 0 450
Cloudflare 0.7 1.4 1.6 0 750
EdgeNext 2.7 5.3 6.1 0.15 700
Edgio 2.7 4.7 5.2 0 325
Fastly 0.6 1.6 1.9 0.05 375
Gcore 1.6 3.2 3.7 0.05 300
Medianova 2.2 3.1 3.1 0 175
StackPath 3.4 7.3 7.3 0.25 400

Fastest & Slowest

Fastly and Cloudflare have the fastest websites, with all metrics in the green except INP. Funnily, Cloudflare posted an article on their blog in June titled INP. Get ready for the new Core Web Vital. Well, they should, indeed, get ready ;-)
To my surprise, Fastly and Cloudflare are the only CDN providers that score a Good for TTFB, FCP and LCP 🤯

Users on Medianova's website experience the lowest interaction latency (INP).

CDNetworks, EdgeNext, Edgio and StackPath all score a Poor for TTFB, FCP and LCP. Visitors of their websites need to wait too long for anything to appear on the screen, let alone the (likely) most important content element.

StackPath has the worst overall website performance, with FCP and LCP p75 values at a very high 7.3 seconds. CDNetworks has the worst TTFB and Cloudflare the worst INP.

TTFB is Disappointing

TTFB is mostly about server response time and contributes to FCP and LCP. Sadly, only 2 of the 13 CDN websites have a low TTFB: Cloudflare and Fastly. The other CDNs are not able to deliver the HTML at high speed to site visitors 🙁

Why is the TTFB of most CDN websites poor?
EdgeNext website is hosted on GoDaddy (ugh).
The other websites are on the CDN's own platform, but some have edge caching disabled (CDNetworks, Gcore).
The back/forward cache is not working for CDNetworks, Edgio, Fastly and Gcore.

Fetch Priority for LCP Image

It's a site speed best practice to specify fetchpriority="high" on the LCP image element, to make the browser load the image sooner and so improve the user experience. Learn more on web.dev at Optimizing resource loading with the Fetch Priority API.

Only three CDN websites have fetchpriority="high" on HTML images or preload with fetchpriority="high" on CSS background image: CDNetworks, Medianova and StackPath. Too bad all three do it in an ineffective way:
CDNetworks has fetchpriority on an image that is not the LCP element.
Medianova and StackPath use a lazy loading Wordpress plugin that sets fetchpriority="high" on the placeholder transparent SVG image (ugh). Later during the page load/render flow, on the Medianova homepage fetchpriority="high" is set on the actual LCP image (too late) but on the StackPath homepage the image that gets fetchpriority="high" is not the LCP element ().

The following two snippets can be used in the browser's Dev Tools console to get a list of image URLs with fetchpriority="high":

[...new Set($$('img[fetchpriority=high]').map(i => i.src))]
[...new Set(
$$('link[rel=preload][as=image]')
.filter(link => link.fetchpriority && link.fetchpriority == 'high')
.map(link => link.href)
)]

Drag this link to your browser favourites/bookmarks to one-click see output of those two snippets in console.

Site Speed Metrics Explained

What is TTFB?

Time to First Byte (TTFB) is the time between sending a request and receiving the first byte from the server. A low TTFB signifies the server responds quickly. TTFB includes DNS, TCP, TLS and redirects.
Time to First Byte (TTFB) is a foundational metric for measuring connection setup time and web server responsiveness in both the lab and the field. It helps identify when a web server is too slow to respond to requests. In the case of navigation requests—that is, requests for an HTML document—it precedes every other meaningful loading performance metric.
Source: web.dev

What is FCP?

First Contentful Paint (FCP) marks the time when the user can see anything on the screen.
First Contentful Paint (FCP) is an important, user-centric metric for measuring perceived load speed because it marks the first point in the page load timeline where the user can see anything on the screen—a fast FCP helps reassure the user that something is happening.
Source: web.dev

What is LCP?

Largest Contentful Paint (LCP) marks the time when the page's main content has likely loaded.
Largest Contentful Paint (LCP) is an important, stable Core Web Vital metric for measuring perceived load speed because it marks the point in the page load timeline when the page's main content has likely loaded—a fast LCP helps reassure the user that the page is useful.
Source: web.dev

What is CLS?

Cumulative Layout Shift (CLS) quantifies how often users experience unexpected layout shifts.
Cumulative Layout Shift (CLS) is a stable Core Web Vital metric. It is an important, user-centric metric for measuring visual stability because it helps quantify how often users experience unexpected layout shifts—a low CLS helps ensure that the page is delightful.
Source: web.dev

What is INP?

Interaction to Next Paint (INP) measures interaction latency. It captures the full event time, from initial input until the next frame is painted and event handlers have run. For pages with many interactions, it uses the maximum duration with some approximations.
Interaction to Next Paint (INP) is a pending Core Web Vital metric that will replace First Input Delay (FID) in March 2024. INP assesses responsiveness using data from the Event Timing API. When an interaction causes a page to become unresponsive, that is a poor user experience. INP observes the latency of all interactions a user has made with the page, and reports a single value which all (or nearly all) interactions were below. A low INP means the page was consistently able to respond quickly to all—or the vast majority—of user interactions.
Source: web.dev

We ❤️ Treo

Treo provides site speed monitoring, including competitive analysis based on real-users data. The Site Speed Report allows you to view historical CWV data for all websites tracked by Google's CrUX. The data visualizations at Treo are really, really good.

Treo.sh site speed audit for Fastly screenshot