Benchmark report

jsDelivr thumbnail

Is jsDelivr slow?

CDN response times from 6 cities

Fast globally

jsDelivr responds quickly from all 6 test locations. Amsterdam was fastest at 9 ms; San Francisco took 38 ms.

Fastest
9 ms
Amsterdam
Slowest
38 ms
San Francisco
Successful requests
100%
6 locations

Response time around the world

Amsterdam 9ms typicalSan Francisco 38ms typicalMontreal 17ms typicalSingapore 11ms typicalTokyo 16ms typicalMumbai 17ms typical
  • NetherlandsAmsterdam
    9 ms
  • SingaporeSingapore
    11 ms
  • JapanTokyo
    16 ms
  • CanadaMontreal
    17 ms
  • IndiaMumbai
    17 ms
  • United StatesSan Francisco
    38 ms

Why is San Francisco slower?

In the controlled run of 27 September five cities had the 2.1 KB file in 8 to 10 ms, with no phase above 4 ms. San Francisco took 33 ms and every phase grew with it: 10 ms to connect, 12 ms for the secure handshake and 10 ms waiting for the first byte. When all the stages stretch together, the likely cause is a longer path to the cache that answered rather than a slow cache. San Francisco was the slowest of the six on 11 of the 14 days, so the gap is steady. The PyPI page, also served by Fastly, shows the same San Francisco pattern.

Click the location to see each stage.

ConnectTLSServer waitDownload
United StatesSan Francisco
33 ms
Finding the server
13 ms
Reaching the server
10 ms
Setting up security: most of the time
12 ms
Waiting for the server
10 ms
Receiving the response
1 ms
Total
33 ms

Finding the server is measured once per location, so it sits outside these bars. Open a city to see it.

Bars show the typical request, so the parts add up to its total. Why

Compare all locations

Click a city to see its stage-by-stage breakdown.

ConnectTLSServer waitDownload
NetherlandsAmsterdam
10 ms
Finding the server
2 ms
Reaching the server
2 ms
Setting up security
3 ms
Waiting for the server: most of the time
4 ms
Receiving the response
1 ms
Total
10 ms
United StatesSan Francisco
33 ms
Finding the server
13 ms
Reaching the server
10 ms
Setting up security: most of the time
12 ms
Waiting for the server
10 ms
Receiving the response
1 ms
Total
33 ms
CanadaMontreal
9 ms
Finding the server
3 ms
Reaching the server
2 ms
Setting up security: most of the time
4 ms
Waiting for the server
3 ms
Receiving the response
0 ms
Total
9 ms
SingaporeSingapore
10 ms
Finding the server
3 ms
Reaching the server
2 ms
Setting up security: most of the time
4 ms
Waiting for the server
4 ms
Receiving the response
0 ms
Total
10 ms
JapanTokyo
8 ms
Finding the server
1 ms
Reaching the server
2 ms
Setting up security: most of the time
3 ms
Waiting for the server
3 ms
Receiving the response
0 ms
Total
8 ms
IndiaMumbai
10 ms
Finding the server
2 ms
Reaching the server
2 ms
Setting up security: most of the time
4 ms
Waiting for the server
4 ms
Receiving the response
0 ms
Total
10 ms

The phases come from the controlled run of 27 September 2026. Typical and slower times pool the daily requests. 6 of 6 test locations included: Amsterdam, San Francisco, Montreal, Singapore, Tokyo, Mumbai.

Finding the server is measured once per location, so it sits outside these bars. Open a city to see it.

Bars show the typical request, so the parts add up to its total. Why

jsDelivr still feels slow?

Check jsDelivr’s status page
Incidents and degraded regions are posted there. A slow file during one is not your network.
This is one small cached file
We fetch normalize.min.css 8.0.1, a 2.1 KB file that is almost always in cache. A large bundle, a file nobody has asked for lately, a version range jsDelivr has to resolve, or a directory listing can take longer.
Two CDNs behind one name
Five of our cities reached Fastly and Montreal reached Cloudflare, so which network answers depends on where you are. Montreal's daily median was 9 to 18 ms on most days and 33 to 71 ms on five of them (19 to 22 and 25 September).

Response time over the last 18 days

Daily median of 5 requests per location, 9 September 2026 to 27 September 2026.
050100 ms9 Sept27 SeptMontreal, 21 September 2026: 48 ms, well above its usual level.Montreal, 22 September 2026: 71 ms, well above its usual level.Montreal, 25 September 2026: 50 ms, well above its usual level.

A dot marks a day well above that location’s usual level.

Show the numbers
DayAmsterdamSan FranciscoMontrealSingaporeTokyoMumbai
9 September 202612 ms37 ms12 ms11 ms21 ms22 ms
10 September 20269 ms45 ms20 ms23 ms19 ms17 ms
11 September 20269 ms44 ms23 ms27 ms20 ms23 ms
12 September 20268 ms40 ms9 ms10 ms18 ms10 ms
13 September 20268 ms42 ms9 ms11 ms15 ms16 ms
14 September 20269 ms36 ms10 ms10 ms16 ms20 ms
15 September 20269 ms46 ms15 ms10 ms21 ms17 ms
16 September 202610 ms36 ms18 ms11 ms9 ms22 ms
17 September 20268 ms38 ms10 ms28 ms14 ms20 ms
18 September 20268 ms38 ms17 ms11 ms15 ms15 ms
19 September 20269 ms39 ms33 ms11 ms10 ms9 ms
20 September 20269 ms40 ms33 ms12 ms14 ms9 ms
21 September 20269 ms37 ms48 ms ▲12 ms17 ms22 ms
22 September 20269 ms40 ms71 ms ▲16 ms17 ms22 ms
23 September 20268 ms38 ms9 ms11 ms15 ms9 ms
24 September 20268 ms40 ms9 ms10 ms17 ms20 ms
25 September 20269 ms38 ms50 ms ▲13 ms16 ms18 ms
26 September 20269 ms35 ms10 ms12 ms10 ms20 ms
27 September 20269 ms35 ms17 ms10 ms16 ms9 ms

About this measurement

GET cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css · 70 requests per location over 14 daily runs · 14 September 2026 to 27 September 2026

What we tested · Static file. normalize.min.css 8.0.1 from cdn.jsdelivr.net: 2.1 KB of CSS, immutable, served from a Fastly cache behind Cloudflare, the same file cdnjs serves.

How LatencyRadar measures response time →

Technical details

Doesn’t measure: Larger bundles, jsDelivr's GitHub or npm directory listings, or a cache miss. This file is a hit almost everywhere.

One jsDelivr surface: normalize.min.css 8.0.1 from cdn.jsdelivr.net, 2.1 KB of CSS marked immutable. jsDelivr serves npm and GitHub files through more than one CDN; in our runs five cities reached Fastly and Montreal reached Cloudflare. This is the request a browser makes when a page links a library file from jsDelivr, and a file this popular is almost always in cache. It is the same file cdnjs serves.

Not measured: larger bundles, jsDelivr's npm or GitHub directory listings, version ranges it has to resolve, or a cache miss.

Between 14 and 27 September 2026 the typical time was 9 ms in Amsterdam, 11 ms in Singapore, 16 ms in Tokyo, 17 ms in Montreal and Mumbai, and 38 ms in San Francisco. Amsterdam was the fastest city on 13 of the 14 days, and its daily median never left 8 to 10 ms; San Francisco's stayed between 35 and 46 ms. Montreal is the one city with a slow tail, 74 ms for the slowest 5% of requests, from the five days its daily median rose to 33 to 71 ms. Compare unpkg, which serves the unminified copy of the same stylesheet.

Test locationTypical response timeSlower response timeRequests
Amsterdam9 ms10 ms20
San Francisco38 ms52 ms20
Montreal17 ms74 ms20
Singapore11 ms38 ms20
Tokyo16 ms27 ms20
Mumbai17 ms26 ms20

Typical: half of the requests finished within this time (technical: p50). Slower: 95% of requests finished within this time (technical: p95). Statistics

Request
GET cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css
Measured from
Amsterdam · San Francisco · Montreal · Singapore · Tokyo · Mumbai
Requests
Daily measurements from 14 September 2026 to 27 September 2026. 6 of 6 test locations included: Amsterdam, San Francisco, Montreal, Singapore, Tokyo, Mumbai. · 14 September 2026 to 27 September 2026
Timings taken
DNS, connect, TLS, waiting for the server, download
Report coverage
6 of 6 test locations included: Amsterdam, San Francisco, Montreal, Singapore, Tokyo, Mumbai.
Daily requests in each location
Amsterdam: 70 · San Francisco: 70 · Montreal: 70 · Singapore: 70 · Tokyo: 70 · Mumbai: 70
Typical response time
Median of the eligible daily requests in each included location.
Slower response time
The 95th percentile of the same eligible daily requests in each included location.

jsDelivr

https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css

Independent measurement by LatencyRadar. Not affiliated with jsDelivr. · How we measure (v1.2)

How fast does your site load around the world?

Run a free speed test from multiple cities and find out where your users are waiting. No setup, no account required.

Test my site

No account required · Takes about 30 seconds.

More benchmarks

All benchmarks →