Benchmark report
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 43 ms.
- Fastest
- 9 ms
- Amsterdam
- Slowest
- 43 ms
- San Francisco
- Successful requests
- 100%
- 6 locations
Response time around the world
Amsterdam
9 msMumbai
9 msTokyo
10 msSingapore
11 msMontreal
15 msSan Francisco
43 ms
Why is San Francisco slower?
In the controlled run of 4 October five cities had the 2.1 KB file in 9 to 12 ms, with no connect, handshake or wait phase above 6 ms. San Francisco took 38 ms and every phase grew with it: 12 ms to connect, 15 ms for the secure handshake and 11 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 13 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.
San Francisco38 ms
- Finding the server
- 13 ms
- Reaching the server
- 12 ms
- Setting up security: most of the time
- 15 ms
- Waiting for the server
- 11 ms
- Receiving the response
- 0 ms
- Total
- 38 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 locationsHide the comparison
Click a city to see its stage-by-stage breakdown.
Amsterdam10 ms
- Finding the server
- 1 ms
- Reaching the server
- 2 ms
- Setting up security: most of the time
- 5 ms
- Waiting for the server
- 3 ms
- Receiving the response
- 0 ms
- Total
- 10 ms
San Francisco38 ms
- Finding the server
- 13 ms
- Reaching the server
- 12 ms
- Setting up security: most of the time
- 15 ms
- Waiting for the server
- 11 ms
- Receiving the response
- 0 ms
- Total
- 38 ms
Montreal12 ms
- Finding the server
- 15 ms
- Reaching the server
- 2 ms
- Setting up security
- 4 ms
- Waiting for the server: most of the time
- 5 ms
- Receiving the response
- 1 ms
- Total
- 12 ms
Singapore11 ms
- Finding the server
- 3 ms
- Reaching the server: most of the time
- 4 ms
- Setting up security
- 4 ms
- Waiting for the server
- 2 ms
- Receiving the response
- 1 ms
- Total
- 11 ms
Tokyo9 ms
- Finding the server
- 2 ms
- Reaching the server
- 2 ms
- Setting up security: most of the time
- 4 ms
- Waiting for the server
- 2 ms
- Receiving the response
- 1 ms
- Total
- 9 ms
Mumbai10 ms
- Finding the server
- 9 ms
- Reaching the server
- 2 ms
- Setting up security: most of the time
- 6 ms
- Waiting for the server
- 2 ms
- Receiving the response
- 0 ms
- Total
- 10 ms
The phases come from the controlled run of 4 October 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 8 to 19 ms on ten of the 13 days and 32 to 50 ms on the other three (28 September, 3 and 6 October).
Response time over the last 29 days
A dot marks a day well above that location’s usual level.
Show the numbers
| Day | Amsterdam | San Francisco | Montreal | Singapore | Tokyo | Mumbai |
|---|---|---|---|---|---|---|
| 11 September 2026 | 9 ms | 44 ms | 23 ms | 27 ms | 20 ms | 23 ms |
| 12 September 2026 | 8 ms | 40 ms | 9 ms | 10 ms | 18 ms | 10 ms |
| 13 September 2026 | 8 ms | 42 ms | 9 ms | 11 ms | 15 ms | 16 ms |
| 14 September 2026 | 9 ms | 36 ms | 10 ms | 10 ms | 16 ms | 20 ms |
| 15 September 2026 | 9 ms | 46 ms | 15 ms | 10 ms | 21 ms | 17 ms |
| 16 September 2026 | 10 ms | 36 ms | 18 ms | 11 ms | 9 ms | 22 ms |
| 17 September 2026 | 8 ms | 38 ms | 10 ms | 28 ms | 14 ms | 20 ms |
| 18 September 2026 | 8 ms | 38 ms | 17 ms | 11 ms | 15 ms | 15 ms |
| 19 September 2026 | 9 ms | 39 ms | 33 ms | 11 ms | 10 ms | 9 ms |
| 20 September 2026 | 9 ms | 40 ms | 33 ms | 12 ms | 14 ms | 9 ms |
| 21 September 2026 | 9 ms | 37 ms | 48 ms ▲ | 12 ms | 17 ms | 22 ms |
| 22 September 2026 | 9 ms | 40 ms | 71 ms ▲ | 16 ms | 17 ms | 22 ms |
| 23 September 2026 | 8 ms | 38 ms | 9 ms | 11 ms | 15 ms | 9 ms |
| 24 September 2026 | 8 ms | 40 ms | 9 ms | 10 ms | 17 ms | 20 ms |
| 25 September 2026 | 9 ms | 38 ms | 50 ms ▲ | 13 ms | 16 ms | 18 ms |
| 26 September 2026 | 9 ms | 35 ms | 10 ms | 12 ms | 10 ms | 20 ms |
| 27 September 2026 | 9 ms | 35 ms | 17 ms | 10 ms | 16 ms | 9 ms |
| 28 September 2026 | 8 ms | 43 ms | 50 ms ▲ | 235 ms ▲ | 17 ms | 9 ms |
| 29 September 2026 | 8 ms | 38 ms | 11 ms | 30 ms | 10 ms | 9 ms |
| 30 September 2026 | 9 ms | 39 ms | 15 ms | 13 ms | 15 ms | 9 ms |
| 1 October 2026 | 9 ms | 38 ms | 15 ms | 9 ms | 18 ms | 23 ms |
| 2 October 2026 | 9 ms | 40 ms | 11 ms | 10 ms | 17 ms | 9 ms |
| 3 October 2026 | 10 ms | 49 ms | 32 ms | 12 ms | 9 ms | 16 ms |
| 4 October 2026 | 8 ms | 47 ms | 13 ms | 10 ms | 8 ms | 9 ms |
| 5 October 2026 | 35 ms | 45 ms | 19 ms | 10 ms | 9 ms | 8 ms |
| 6 October 2026 | 9 ms | 44 ms | 47 ms ▲ | 9 ms | 8 ms | 19 ms |
| 7 October 2026 | 38 ms | 42 ms | 8 ms | 10 ms | 9 ms | 9 ms |
| 9 October 2026 | 9 ms | 51 ms | 11 ms | 34 ms | 10 ms | 9 ms |
| 10 October 2026 | 9 ms | 43 ms | 15 ms | 11 ms | 9 ms | 9 ms |
About this measurement
GET cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css · 65 requests per location over 13 daily runs · 27 September 2026 to 10 October 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.
Between 27 September and 10 October 2026 the typical time was 9 ms in Amsterdam and Mumbai, 10 ms in Tokyo, 11 ms in Singapore, 15 ms in Montreal, and 43 ms in San Francisco. Amsterdam's daily median sat at 8 to 10 ms except on 5 and 7 October (35 and 38 ms); San Francisco's stayed between 35 and 51 ms. Singapore has the longest slow tail, 235 ms for the slowest 5% of requests; on 28 September its daily median was 235 ms, against 9 to 34 ms on every other day. Montreal's 72 ms tail lines up with its three slower days. Compare unpkg, which serves the unminified copy of the same stylesheet.
| Test location | Typical response time | Slower response time | Requests |
|---|---|---|---|
| Amsterdam | 9 ms | 38 ms | 65 |
| San Francisco | 43 ms | 60 ms | 65 |
| Montreal | 15 ms | 72 ms | 65 |
| Singapore | 11 ms | 235 ms | 65 |
| Tokyo | 10 ms | 22 ms | 65 |
| Mumbai | 9 ms | 25 ms | 65 |
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 27 September 2026 to 10 October 2026. 6 of 6 test locations included: Amsterdam, San Francisco, Montreal, Singapore, Tokyo, Mumbai. · 27 September 2026 to 10 October 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: 65 · San Francisco: 65 · Montreal: 65 · Singapore: 65 · Tokyo: 65 · Mumbai: 65
- 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.3)
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.
No account required · Takes about 30 seconds.