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 20 ms; Montreal took 48 ms.
- Fastest
- 20 ms
- Tokyo
- Slowest
- 48 ms
- Montreal
- Successful requests
- 100%
- 6 locations
Response time around the world
Tokyo
20 msMumbai
25 msSan Francisco
27 msSingapore
32 msAmsterdam
40 msMontreal
48 ms
Why is Mumbai sometimes slow?
On ten of the 13 days Mumbai had the module in 19 to 36 ms. On the other three (7, 9 and 10 October) its daily median was 231 to 236 ms, about ten times longer. The controlled run of 4 October caught both in one run: the median request took 20 ms and the slowest 5% about 250 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.
Mumbai20 ms
- Finding the server
- 9 ms
- Reaching the server
- 2 ms
- Setting up security: most of the time
- 9 ms
- Waiting for the server
- 9 ms
- Receiving the response
- 0 ms
- Total
- 20 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.
Amsterdam39 ms
- Finding the server
- 1 ms
- Reaching the server
- 10 ms
- Setting up security
- 13 ms
- Waiting for the server: most of the time
- 16 ms
- Receiving the response
- 0 ms
- Total
- 39 ms
San Francisco23 ms
- Finding the server
- 29 ms
- Reaching the server
- 3 ms
- Setting up security
- 6 ms
- Waiting for the server: most of the time
- 13 ms
- Receiving the response
- 1 ms
- Total
- 23 ms
Montreal46 ms
- Finding the server
- 46 ms
- Reaching the server
- 11 ms
- Setting up security
- 14 ms
- Waiting for the server: most of the time
- 21 ms
- Receiving the response
- 0 ms
- Total
- 46 ms
Singapore29 ms
- Finding the server
- 7 ms
- Reaching the server
- 3 ms
- Setting up security
- 8 ms
- Waiting for the server: most of the time
- 18 ms
- Receiving the response
- 0 ms
- Total
- 29 ms
Tokyo20 ms
- Finding the server
- 1 ms
- Reaching the server
- 2 ms
- Setting up security
- 8 ms
- Waiting for the server: most of the time
- 10 ms
- Receiving the response
- 0 ms
- Total
- 20 ms
Mumbai20 ms
- Finding the server
- 9 ms
- Reaching the server
- 2 ms
- Setting up security: most of the time
- 9 ms
- Waiting for the server
- 9 ms
- Receiving the response
- 0 ms
- Total
- 20 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
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 4 October 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. From 27 September to 10 October it stayed at 45 to 52 ms.
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 | 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 |
| 28 September 2026 | 43 ms | 30 ms | 52 ms | 29 ms | 21 ms | 36 ms |
| 29 September 2026 | 38 ms | 23 ms | 45 ms | 30 ms | 22 ms | 23 ms |
| 30 September 2026 | 40 ms | 27 ms | 50 ms | 30 ms | 20 ms | 21 ms |
| 1 October 2026 | 40 ms | 25 ms | 51 ms | 28 ms | 18 ms | 29 ms |
| 2 October 2026 | 37 ms | 29 ms | 49 ms | 33 ms | 21 ms | 21 ms |
| 3 October 2026 | 37 ms | 26 ms | 45 ms | 43 ms | 18 ms | 28 ms |
| 4 October 2026 | 38 ms | 24 ms | 46 ms | 34 ms | 18 ms | 19 ms |
| 5 October 2026 | 38 ms | 22 ms | 51 ms | 28 ms | 20 ms | 26 ms |
| 6 October 2026 | 40 ms | 27 ms | 49 ms | 42 ms | 22 ms | 21 ms |
| 7 October 2026 | 38 ms | 32 ms | 48 ms | 35 ms | 19 ms | 231 ms ▲ |
| 9 October 2026 | 42 ms | 31 ms | 48 ms | 33 ms | 24 ms | 236 ms ▲ |
| 10 October 2026 | 45 ms | 38 ms | 46 ms | 64 ms ▲ | 19 ms | 231 ms ▲ |
About this measurement
GET esm.sh/preact@10.19.3 · 65 requests per location over 13 daily runs · 27 September 2026 to 10 October 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.
Between 27 September and 10 October 2026 the typical time was 20 ms in Tokyo, 25 ms in Mumbai, 27 ms in San Francisco, 32 ms in Singapore, 40 ms in Amsterdam and 48 ms in Montreal. Mumbai's typical hides two states, 19 to 36 ms on ten days and 231 to 236 ms on three, which is why its slower time is 250 ms, ten times its typical. Singapore's slower time, 72 ms, is also more than twice its typical; its daily median stayed between 28 and 43 ms except on 10 October, when it reached 64 ms.
| Test location | Typical response time | Slower response time | Requests |
|---|---|---|---|
| Amsterdam | 40 ms | 51 ms | 65 |
| San Francisco | 27 ms | 49 ms | 65 |
| Montreal | 48 ms | 54 ms | 65 |
| Singapore | 32 ms | 72 ms | 65 |
| Tokyo | 20 ms | 39 ms | 65 |
| Mumbai | 25 ms | 250 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 esm.sh/preact@10.19.3
- 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.
esm.sh
https://esm.sh/preact@10.19.3
Independent measurement by LatencyRadar. Not affiliated with esm.sh. · 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.