Benchmark report
Is esm.sh slow?
Module response times from 6 cities
Fast globally
esm.sh responds quickly from all 6 test locations. Tokyo was fastest at 21 ms; Mumbai took 47 ms.
- Fastest
- 21 ms
- Tokyo
- Slowest
- 47 ms
- Mumbai
- Successful requests
- 100%
- 6 locations
Response time around the world
Tokyo
21 msSan Francisco
27 msSingapore
30 msAmsterdam
39 msMontreal
45 msMumbai
47 ms
Why is Mumbai sometimes slow?
On eight of the 14 days Mumbai had the module in 19 to 55 ms. On the other six (15, 17, 20, 21, 22 and 25 September) its daily median was 223 to 253 ms, about ten times longer. The controlled run of 27 September caught both in one run: the median request took 23 ms and the slowest 5% about 233 ms. From outside we cannot see why; the pattern looks like a cache that sometimes answers in Mumbai and sometimes has to fetch the file from further away.
Click the location to see each stage.
Mumbai23 ms
- Finding the server
- 5 ms
- Reaching the server
- 3 ms
- Setting up security: most of the time
- 10 ms
- Waiting for the server
- 10 ms
- Receiving the response
- 0 ms
- Total
- 23 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.
Amsterdam38 ms
- Finding the server
- 9 ms
- Reaching the server
- 9 ms
- Setting up security
- 12 ms
- Waiting for the server: most of the time
- 16 ms
- Receiving the response
- 1 ms
- Total
- 38 ms
San Francisco21 ms
- Finding the server
- 13 ms
- Reaching the server
- 4 ms
- Setting up security
- 7 ms
- Waiting for the server: most of the time
- 10 ms
- Receiving the response
- 0 ms
- Total
- 21 ms
Montreal45 ms
- Finding the server
- 4 ms
- Reaching the server
- 11 ms
- Setting up security: most of the time
- 18 ms
- Waiting for the server
- 16 ms
- Receiving the response
- 0 ms
- Total
- 45 ms
Singapore28 ms
- Finding the server
- 3 ms
- Reaching the server
- 2 ms
- Setting up security
- 11 ms
- Waiting for the server: most of the time
- 15 ms
- Receiving the response
- 0 ms
- Total
- 28 ms
Tokyo20 ms
- Finding the server
- 5 ms
- Reaching the server
- 2 ms
- Setting up security
- 5 ms
- Waiting for the server: most of the time
- 12 ms
- Receiving the response
- 1 ms
- Total
- 20 ms
Mumbai23 ms
- Finding the server
- 5 ms
- Reaching the server
- 3 ms
- Setting up security: most of the time
- 10 ms
- Waiting for the server
- 10 ms
- Receiving the response
- 0 ms
- Total
- 23 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
esm.sh still feels slow?
- esm.sh has no status page
- It runs behind Cloudflare, so a Cloudflare incident can show up here. Cloudflare's status page is the closest thing to one.
- This is one resolve step
- We fetch the preact 10.19.3 entry module, an 81-byte file that points to the build. The build itself, a full bundle, a package esm.sh has not built before, and npm install are not measured.
- Montreal is answered from Newark
- In the controlled run of 27 September Montreal's requests were answered by Cloudflare in Newark, while every other city had a nearby site. Montreal's daily median went from 17 to 23 ms to 44 to 54 ms on 20 September, which suggests its route changed that day.
Response time over the last 18 days
A dot marks a day well above that location’s usual level.
Show the numbers
| Day | Amsterdam | San Francisco | Montreal | Singapore | Tokyo | Mumbai |
|---|---|---|---|---|---|---|
| 9 September 2026 | 46 ms | 26 ms | 20 ms | 30 ms | 32 ms | 238 ms ▲ |
| 10 September 2026 | 38 ms | 26 ms | 21 ms | 27 ms | 33 ms | 39 ms |
| 11 September 2026 | 41 ms | 32 ms | 24 ms | 49 ms | 20 ms | 26 ms |
| 12 September 2026 | 44 ms | 23 ms | 20 ms | 32 ms | 25 ms | 227 ms ▲ |
| 13 September 2026 | 41 ms | 34 ms | 23 ms | 42 ms | 31 ms | 35 ms |
| 14 September 2026 | 38 ms | 28 ms | 19 ms | 31 ms | 24 ms | 25 ms |
| 15 September 2026 | 39 ms | 24 ms | 21 ms | 33 ms | 26 ms | 253 ms ▲ |
| 16 September 2026 | 37 ms | 29 ms | 23 ms | 28 ms | 20 ms | 55 ms |
| 17 September 2026 | 43 ms | 24 ms | 21 ms | 46 ms | 27 ms | 223 ms ▲ |
| 18 September 2026 | 39 ms | 30 ms | 17 ms | 30 ms | 21 ms | 26 ms |
| 19 September 2026 | 39 ms | 29 ms | 19 ms | 28 ms | 21 ms | 19 ms |
| 20 September 2026 | 37 ms | 27 ms | 44 ms | 27 ms | 23 ms | 233 ms ▲ |
| 21 September 2026 | 42 ms | 26 ms | 50 ms | 29 ms | 21 ms | 226 ms ▲ |
| 22 September 2026 | 37 ms | 27 ms | 54 ms ▲ | 34 ms | 19 ms | 233 ms ▲ |
| 23 September 2026 | 42 ms | 32 ms | 49 ms | 30 ms | 22 ms | 28 ms |
| 24 September 2026 | 43 ms | 27 ms | 51 ms | 29 ms | 20 ms | 21 ms |
| 25 September 2026 | 39 ms | 26 ms | 47 ms | 25 ms | 21 ms | 235 ms ▲ |
| 26 September 2026 | 35 ms | 26 ms | 53 ms ▲ | 33 ms | 19 ms | 24 ms |
| 27 September 2026 | 41 ms | 26 ms | 48 ms | 28 ms | 18 ms | 21 ms |
About this measurement
GET esm.sh/preact@10.19.3 · 70 requests per location over 14 daily runs · 14 September 2026 to 27 September 2026
What we tested · Static file. The preact 10.19.3 entry module from esm.sh: an 81-byte file that re-exports the build, immutable behind Cloudflare. One resolve step of an npm import.
How LatencyRadar measures response time →
Technical details
Doesn’t measure: The module it points to, a full bundle, esm.sh's build step for a package it has not seen, or npm install.
One esm.sh surface: the entry module for preact 10.19.3, an 81-byte file that re-exports the build, marked immutable and served behind Cloudflare. A browser that imports a package from esm.sh asks for this file first and then follows it to the build, so this measures that first step of the import, not the whole thing.
Not measured: the build the entry module points to, full bundles, esm.sh building a package it has not seen before, or npm install.
Between 14 and 27 September 2026 the typical time was 21 ms in Tokyo, 27 ms in San Francisco, 30 ms in Singapore, 39 ms in Amsterdam, 45 ms in Montreal and 47 ms in Mumbai. Mumbai's typical hides two states, 19 to 55 ms on eight days and 223 to 253 ms on six, which is why its slower time is 259 ms, more than five times its typical. San Francisco also has a long tail for a file this small, 101 ms, from a handful of slow requests; its daily median never left 24 to 32 ms.
| Test location | Typical response time | Slower response time | Requests |
|---|---|---|---|
| Amsterdam | 39 ms | 47 ms | 20 |
| San Francisco | 27 ms | 101 ms | 20 |
| Montreal | 45 ms | 55 ms | 20 |
| Singapore | 30 ms | 56 ms | 20 |
| Tokyo | 21 ms | 33 ms | 20 |
| Mumbai | 47 ms | 259 ms | 20 |
Typical: half of the requests finished within this time (technical: p50). Slower: 95% of requests finished within this time (technical: p95). Statistics
- Request
- GET esm.sh/preact@10.19.3
- 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.
esm.sh
https://esm.sh/preact@10.19.3
Independent measurement by LatencyRadar. Not affiliated with esm.sh. · 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.
No account required · Takes about 30 seconds.