Routebench
CDN benchmark across Cloudflare, Fastly, and CloudFront. Same bytes from each, every provider on its own apex with co-located DNS, real-user measurement from browsers.
cold = fresh TLS handshake. warm = reused connection, so DNS/TCP/TLS are 0 by definition. Successful fetches without browser Resource Timing are excluded from latency p50/p95/p99 and sample counts. TTFB = DNS + TCP + TLS + WAIT · TOTAL = TTFB + DL. Each row is a (provider, protocol) pair; bars end at that row's real p50 of total_ms, stripes show proportionally where the time goes. Bars scale to the slowest row in the ranking. "fastest" marks the lowest p50. p95 / p99 live in the detail table behind the toggles.
1p.gif 43 B 3,400,015 probes · 96.9% ok · 96h
Cloudflare
Fastly
CloudFront
close race <5%
insufficient data
81 countries colored · floor: ≥500 warm probes per provider (totalled across both files) · p50 shown per file · 11 close race <5%
cold
fresh TLS handshake
2,006,644 cold probes · 59% of file · h3 1,555,599 · h2 440,610 · 10,435 on h1/unknown (not ranked)
| DNS | TCP | TLS | WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|---|---|---|
| Fastly h3 | p50 | 21.7 | 0.7 | 28.3 | 21.7 | 0.7 | 89.9 | 91.4 |
| p95 | 182.7 | 3 | 127.1 | 104.6 | 4.7 | 437.2 | 440.9 | |
| p99 | 476.7 | 6.2 | 334.9 | 296.8 | 18 | 1118.1 | 1120.4 | |
| Cloudflare h3 | p50 | 18.5 | 1 | 32 | 46.8 | 0.5 | 119 | 120.4 |
| p95 | 162.2 | 3 | 145 | 212.6 | 5 | 505.9 | 510.1 | |
| p99 | 458.8 | 6 | 317.1 | 597.6 | 15.1 | 1326.5 | 1327.3 | |
| CloudFront h3 | p50 | 36 | 1 | 44 | 43 | 0.5 | 157.7 | 158.5 |
| p95 | 239 | 3 | 207 | 292 | 4.2 | 682.1 | 684 | |
| p99 | 732 | 5.7 | 357.1 | 489.2 | 12.1 | 1427.4 | 1428.8 | |
| Cloudflare h2 | p50 | 24.5 | 23.7 | 48.2 | 46 | 0.8 | 224.8 | 226.9 |
| p95 | 227.4 | 412.1 | 378.6 | 248.4 | 6 | 1190 | 1206 | |
| p99 | 838.5 | 802 | 1056.2 | 715.3 | 41.9 | 3221.4 | 3263.7 | |
| Fastly h2 | p50 | 2 | 22.3 | 41 | 27 | 0 | 242.9 | 243 |
| p95 | 120.6 | 148.3 | 251 | 166.3 | 3.8 | 986.9 | 990.5 | |
| p99 | 423.7 | 409.4 | 761.5 | 472.1 | 11.2 | 2484.8 | 2485.3 | |
| CloudFront h2 | p50 | 38 | 27 | 66 | 40.9 | 0.6 | 264.2 | 265.2 |
| p95 | 273.6 | 350.6 | 540.4 | 285.7 | 4.3 | 1298.9 | 1303.9 | |
| p99 | 1093.2 | 701.4 | 1242.7 | 613.2 | 13.7 | 3256.9 | 3257 |
warm
reused connection
1,168,740 warm probes · 34% of file · h3 770,084 · h2 370,052 · 28,604 on h1/unknown (not ranked)
| WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|
| Fastly h3 | p50 | 21 | 0.6 | 23.6 | 24.8 |
| p95 | 110 | 3.6 | 122 | 124 | |
| p99 | 289.2 | 10.5 | 442.1 | 445.8 | |
| Fastly h2 | p50 | 23.8 | 0 | 26 | 27 |
| p95 | 135.6 | 2.1 | 156 | 161.4 | |
| p99 | 382.4 | 7.1 | 475.1 | 483.3 | |
| CloudFront h3 | p50 | 30.7 | 0.3 | 32 | 33 |
| p95 | 191 | 2.5 | 196 | 197.3 | |
| p99 | 365.2 | 7.1 | 399.2 | 399.4 | |
| Cloudflare h3 | p50 | 33.5 | 0.5 | 35.1 | 36 |
| p95 | 163.5 | 3.1 | 170.3 | 174.4 | |
| p99 | 428.5 | 8.4 | 469.1 | 480.1 | |
| Cloudflare h2 | p50 | 36.1 | 0.7 | 40.8 | 42 |
| p95 | 199.8 | 4.3 | 233.1 | 246.8 | |
| p99 | 555 | 37.1 | 647.8 | 722.5 | |
| CloudFront h2 | p50 | 38 | 0.5 | 51 | 52.1 |
| p95 | 241.4 | 2.7 | 305 | 307.4 | |
| p99 | 526 | 8.9 | 720.6 | 756.8 |
100.bin 100 KB 3,379,752 probes · 97.1% ok · 96h
Cloudflare
Fastly
CloudFront
close race <5%
insufficient data
81 countries colored · floor: ≥500 warm probes per provider (totalled across both files) · p50 shown per file · 11 close race <5%
cold
fresh TLS handshake
1,995,425 cold probes · 59% of file · h3 1,541,234 · h2 444,248 · 9,943 on h1/unknown (not ranked)
| DNS | TCP | TLS | WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|---|---|---|
| Fastly h3 | p50 | 21.4 | 0.7 | 29 | 23.1 | 26.4 | 92 | 124.2 |
| p95 | 192.8 | 3.2 | 124.6 | 107.6 | 152.4 | 436 | 571.2 | |
| p99 | 534 | 6 | 317.9 | 272 | 452.7 | 1216.7 | 1661.2 | |
| Cloudflare h3 | p50 | 17.5 | 1 | 31.8 | 48.2 | 54 | 121 | 184 |
| p95 | 157.6 | 3 | 150 | 222.1 | 342.1 | 508.9 | 824.1 | |
| p99 | 419.1 | 6 | 324 | 583.4 | 758.4 | 1228.3 | 2013.3 | |
| CloudFront h3 | p50 | 35.8 | 1 | 43.2 | 43.3 | 46 | 156.1 | 210.2 |
| p95 | 233.1 | 3 | 211 | 295 | 305.8 | 706.3 | 993.7 | |
| p99 | 565.1 | 6.6 | 380.6 | 516 | 632.6 | 1314.3 | 1984.3 | |
| Cloudflare h2 | p50 | 24 | 22.4 | 47 | 46.9 | 31 | 225.4 | 272.7 |
| p95 | 215.7 | 376.4 | 365.2 | 230.1 | 300.7 | 1113.4 | 1424.8 | |
| p99 | 735.6 | 807.6 | 969.5 | 577.2 | 939.4 | 2535.4 | 3416.5 | |
| Fastly h2 | p50 | 2 | 22.9 | 41 | 28 | 39 | 240 | 289 |
| p95 | 112.2 | 146 | 252.9 | 162.1 | 251.4 | 1008.8 | 1252.9 | |
| p99 | 379.4 | 361.3 | 757.1 | 404 | 693.3 | 2283.1 | 2873.4 | |
| CloudFront h2 | p50 | 36.7 | 25 | 61 | 47 | 42.9 | 262.9 | 321 |
| p95 | 269.4 | 333 | 559.1 | 357.4 | 362.9 | 1281.8 | 1636.8 | |
| p99 | 1006.5 | 668.5 | 1158.2 | 685.6 | 879.9 | 2903.2 | 3751.6 |
warm
reused connection
1,164,968 warm probes · 34% of file · h3 765,190 · h2 369,223 · 30,555 on h1/unknown (not ranked)
| WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|
| Fastly h3 | p50 | 22.3 | 16 | 25 | 44.4 |
| p95 | 102.7 | 116.2 | 118.4 | 230.8 | |
| p99 | 276.1 | 344.2 | 398.5 | 687 | |
| Fastly h2 | p50 | 25 | 16 | 27.2 | 49 |
| p95 | 143 | 173.3 | 163 | 337.9 | |
| p99 | 327.1 | 655 | 415.1 | 962.8 | |
| Cloudflare h2 | p50 | 37.9 | 17 | 42.6 | 66 |
| p95 | 197.3 | 263.9 | 237 | 474.6 | |
| p99 | 492 | 743.1 | 631.5 | 1223.9 | |
| CloudFront h3 | p50 | 32.7 | 28 | 35 | 67 |
| p95 | 199 | 233.2 | 207 | 425.1 | |
| p99 | 404.5 | 428.1 | 478 | 829.8 | |
| Cloudflare h3 | p50 | 33.4 | 29 | 35 | 70 |
| p95 | 153 | 232.7 | 157.9 | 385.4 | |
| p99 | 454.2 | 765.4 | 461.5 | 1238 | |
| CloudFront h2 | p50 | 48 | 25 | 60.9 | 96 |
| p95 | 319.8 | 284.7 | 366.7 | 626 | |
| p99 | 619.1 | 783.5 | 761.9 | 1349.6 |
By device p50 total_ms · last 96h
| device | variant | file | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|---|---|
| mobile | cold | 1p.gif | 1,094,464 | 152.9 ms | 188 ms | 178 ms |
| cold | 100.bin | 1,084,199 | 224 ms | 231.4 ms | 238.1 ms | |
| warm | 1p.gif | 669,195 | 41 ms | 28 ms | 35.1 ms | |
| warm | 100.bin | 666,335 | 79 ms | 54.2 ms | 69 ms | |
| desktop | cold | 1p.gif | 912,180 | 112.5 ms | 87 ms | 158.8 ms |
| cold | 100.bin | 911,226 | 167.1 ms | 116 ms | 202.8 ms | |
| warm | 1p.gif | 499,545 | 34.9 ms | 24.3 ms | 41.5 ms | |
| warm | 100.bin | 498,633 | 62 ms | 43.7 ms | 86.2 ms |
By country top 15 by volume · p50 total_ms · last 96h
1p.gif 43 B
cold
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 263,650 | 96.4 ms | 110.6 ms | 87 ms |
| US | 236,837 | 144.3 ms | 167 ms | 146 ms |
| DE | 143,285 | 140.5 ms | 124.3 ms | 99.5 ms |
| BR | 147,592 | 118.4 ms | 102.3 ms | 362.8 ms |
| FR | 117,631 | 87.9 ms | 107 ms | 84 ms |
| TR | 83,582 | 209.3 ms | 187 ms | 175.8 ms |
| ES | 69,572 | 102 ms | 91.8 ms | 100.6 ms |
| MX | 69,733 | 191 ms | 176 ms | 174.6 ms |
| IT | 50,500 | 130 ms | 130.9 ms | 116.2 ms |
| NL | 50,096 | 110 ms | 116 ms | 101.6 ms |
| CA | 42,423 | 115 ms | 120.3 ms | 113 ms |
| AU | 40,583 | 96 ms | 119 ms | 515.9 ms |
| HK | 24,279 | 145 ms | 264 ms | 548 ms |
| AR | 36,050 | 115.1 ms | 105.1 ms | 459.9 ms |
| PL | 34,993 | 116.8 ms | 142.5 ms | 161 ms |
warm
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 145,127 | 30 ms | 21 ms | 19 ms |
| US | 148,681 | 36.5 ms | 24 ms | 25 ms |
| DE | 83,859 | 43.3 ms | 22.4 ms | 21.2 ms |
| BR | 65,662 | 34 ms | 20.2 ms | 130.4 ms |
| FR | 64,596 | 28 ms | 18 ms | 17.4 ms |
| TR | 52,579 | 73 ms | 55 ms | 38 ms |
| ES | 34,547 | 31.1 ms | 20.6 ms | 21.2 ms |
| MX | 33,448 | 62.4 ms | 42.1 ms | 35 ms |
| IT | 27,355 | 36 ms | 24 ms | 26 ms |
| NL | 25,958 | 33 ms | 20 ms | 23 ms |
| CA | 26,221 | 33.4 ms | 20 ms | 21 ms |
| AU | 22,973 | 27 ms | 15.2 ms | 175.1 ms |
| HK | 36,947 | 19.9 ms | 40.1 ms | 158.5 ms |
| AR | 17,352 | 31.3 ms | 21 ms | 151 ms |
| PL | 18,172 | 33.5 ms | 37.8 ms | 41 ms |
100.bin 100 KB
cold
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 262,130 | 150.6 ms | 145.9 ms | 115.9 ms |
| US | 242,463 | 201 ms | 199 ms | 187.3 ms |
| DE | 141,836 | 223.9 ms | 166 ms | 133.8 ms |
| BR | 146,317 | 174 ms | 138.1 ms | 564.4 ms |
| FR | 117,377 | 133.9 ms | 138.6 ms | 109 ms |
| TR | 83,201 | 289.2 ms | 253.2 ms | 236.8 ms |
| ES | 68,611 | 151.9 ms | 123.6 ms | 127.3 ms |
| MX | 68,598 | 280 ms | 222.5 ms | 225.6 ms |
| IT | 50,179 | 200.2 ms | 169.8 ms | 156.4 ms |
| NL | 49,880 | 170.5 ms | 148.3 ms | 132.8 ms |
| CA | 42,326 | 165.1 ms | 157 ms | 145 ms |
| AU | 40,083 | 145 ms | 148.8 ms | 777 ms |
| HK | 23,683 | 206.3 ms | 337.5 ms | 802 ms |
| AR | 35,364 | 171.4 ms | 142 ms | 692 ms |
| PL | 34,330 | 167.9 ms | 195 ms | 217 ms |
warm
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 144,013 | 56 ms | 39 ms | 37 ms |
| US | 155,518 | 65 ms | 45.8 ms | 49.8 ms |
| DE | 83,273 | 83 ms | 45.9 ms | 42 ms |
| BR | 65,045 | 61.7 ms | 37.1 ms | 251 ms |
| FR | 64,568 | 49 ms | 32.4 ms | 32 ms |
| TR | 51,948 | 115 ms | 90 ms | 72 ms |
| ES | 34,460 | 58.1 ms | 38 ms | 42 ms |
| MX | 33,640 | 106 ms | 70.5 ms | 66 ms |
| IT | 27,416 | 70 ms | 45 ms | 49 ms |
| NL | 26,236 | 65.2 ms | 39.9 ms | 43.9 ms |
| CA | 25,868 | 56 ms | 35.1 ms | 38 ms |
| AU | 22,870 | 52.7 ms | 31 ms | 338 ms |
| HK | 37,272 | 25.3 ms | 57.4 ms | 303.8 ms |
| AR | 17,657 | 54.7 ms | 38 ms | 284.7 ms |
| PL | 18,172 | 61.4 ms | 71 ms | 76 ms |