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 2,415,665 probes · 96.8% ok · 96h
Cloudflare
Fastly
CloudFront
close race <5%
insufficient data
71 countries colored · floor: ≥500 warm probes per provider (totalled across both files) · p50 shown per file · 13 close race <5%
cold
fresh TLS handshake
1,425,031 cold probes · 59% of file · h3 1,079,792 · h2 334,025 · 11,214 on h1/unknown (not ranked)
| DNS | TCP | TLS | WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|---|---|---|
| Fastly h3 | p50 | 24.6 | 0.7 | 29.9 | 22.9 | 0.8 | 96.5 | 98.1 |
| p95 | 204.5 | 3.1 | 143.5 | 121.3 | 5.1 | 489.9 | 497.9 | |
| p99 | 605.2 | 6.5 | 309.7 | 282.1 | 20.6 | 1269.7 | 1291.3 | |
| Cloudflare h3 | p50 | 19 | 1 | 33.2 | 49.7 | 0.6 | 126.6 | 128.4 |
| p95 | 183.5 | 3 | 158 | 205.4 | 5.2 | 534 | 538.4 | |
| p99 | 526 | 7.1 | 337.7 | 491.4 | 16.5 | 1248.9 | 1259.7 | |
| CloudFront h3 | p50 | 38.2 | 1 | 48 | 46.6 | 0.6 | 173.9 | 175 |
| p95 | 255.2 | 3 | 219.9 | 296.4 | 4.5 | 725.9 | 730.9 | |
| p99 | 682.6 | 6.3 | 428 | 532.4 | 16 | 1447.1 | 1451.4 | |
| Cloudflare h2 | p50 | 26.9 | 24 | 51.2 | 49.5 | 0.9 | 235.1 | 237.3 |
| p95 | 253.4 | 362.6 | 427 | 242.2 | 6 | 1224.3 | 1239.5 | |
| p99 | 1009.5 | 851.4 | 1222.1 | 754.9 | 43.7 | 3624.9 | 3630.6 | |
| Fastly h2 | p50 | 2 | 22 | 41 | 27 | 0 | 245 | 245.8 |
| p95 | 150 | 173 | 297.3 | 173.5 | 3.5 | 1060.2 | 1060.4 | |
| p99 | 462.9 | 491 | 849.7 | 449.2 | 12 | 2760.2 | 2765.7 | |
| CloudFront h2 | p50 | 38.1 | 27 | 75.1 | 46 | 0.7 | 304 | 306 |
| p95 | 289.4 | 394.2 | 613.1 | 317 | 4.5 | 1467.6 | 1473.5 | |
| p99 | 1034 | 864.2 | 1414.9 | 792.5 | 19.8 | 3918.3 | 3918.7 |
warm
reused connection
841,829 warm probes · 35% of file · h3 554,636 · h2 280,524 · 6,669 on h1/unknown (not ranked)
| WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|
| Fastly h3 | p50 | 19.2 | 0.5 | 21.6 | 22.8 |
| p95 | 100.2 | 3.6 | 111.6 | 114.6 | |
| p99 | 252.1 | 11.8 | 306.5 | 336.9 | |
| Fastly h2 | p50 | 25 | 0 | 27.4 | 28 |
| p95 | 184.1 | 2.1 | 208.2 | 210.7 | |
| p99 | 837.2 | 6.5 | 1016.8 | 1032.5 | |
| CloudFront h3 | p50 | 30 | 0.2 | 32 | 33 |
| p95 | 197.5 | 2.5 | 205 | 206 | |
| p99 | 384.1 | 6.5 | 434.2 | 437.1 | |
| Cloudflare h3 | p50 | 33 | 0.5 | 35 | 36 |
| p95 | 154 | 3.1 | 158.7 | 161.7 | |
| p99 | 330.2 | 8.7 | 342 | 342.2 | |
| Cloudflare h2 | p50 | 40 | 0.7 | 45 | 46.9 |
| p95 | 271.4 | 4.1 | 317.5 | 339 | |
| p99 | 1401 | 33.5 | 1581.6 | 1627.5 | |
| CloudFront h2 | p50 | 48.2 | 0.5 | 65.4 | 67.4 |
| p95 | 381.6 | 2.9 | 456.6 | 469.6 | |
| p99 | 1811.2 | 9.8 | 1929.8 | 1970.6 |
100.bin 100 KB 2,416,939 probes · 97% ok · 96h
Cloudflare
Fastly
CloudFront
close race <5%
insufficient data
71 countries colored · floor: ≥500 warm probes per provider (totalled across both files) · p50 shown per file · 13 close race <5%
cold
fresh TLS handshake
1,424,148 cold probes · 59% of file · h3 1,070,118 · h2 342,911 · 11,119 on h1/unknown (not ranked)
| DNS | TCP | TLS | WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|---|---|---|
| Fastly h3 | p50 | 24.2 | 0.7 | 30.6 | 24 | 27.7 | 99 | 134.2 |
| p95 | 206.3 | 3.2 | 142.2 | 114.8 | 165 | 481.9 | 644.3 | |
| p99 | 514.8 | 6.9 | 351.2 | 273.9 | 486 | 1112.4 | 1549.1 | |
| Cloudflare h3 | p50 | 19 | 1 | 33 | 51 | 58 | 128 | 197.7 |
| p95 | 184.5 | 3 | 153 | 207 | 353 | 548.9 | 867.2 | |
| p99 | 529.9 | 6.2 | 346.3 | 480.6 | 897.2 | 1368.1 | 2154.7 | |
| CloudFront h3 | p50 | 37.8 | 1 | 45 | 46 | 49 | 167 | 221 |
| p95 | 257.8 | 3 | 215.6 | 283 | 306.8 | 723 | 1032.4 | |
| p99 | 620.7 | 6 | 414.1 | 533.1 | 575 | 1415.3 | 1944 | |
| Cloudflare h2 | p50 | 26 | 21.5 | 49 | 49 | 29.5 | 234.4 | 280 |
| p95 | 244.7 | 349.1 | 368.2 | 243.7 | 338.2 | 1176.8 | 1535.2 | |
| p99 | 864 | 786 | 996 | 690.1 | 1048.3 | 3139.2 | 3706.2 | |
| Fastly h2 | p50 | 2 | 22 | 40.8 | 27 | 36.1 | 243.5 | 289 |
| p95 | 140.1 | 153.3 | 271.6 | 172 | 262 | 1016 | 1296.7 | |
| p99 | 499.4 | 421.7 | 920.3 | 445.3 | 871 | 2504.2 | 3359.9 | |
| CloudFront h2 | p50 | 40 | 28.4 | 72 | 56.1 | 50 | 319 | 383.7 |
| p95 | 304.4 | 392.1 | 589.7 | 414.6 | 420.9 | 1478.1 | 1920 | |
| p99 | 935 | 797.9 | 1434.7 | 874.5 | 1130.6 | 3538.9 | 4437.5 |
warm
reused connection
846,179 warm probes · 35% of file · h3 550,378 · h2 278,493 · 17,308 on h1/unknown (not ranked)
| WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|
| Fastly h3 | p50 | 20.2 | 13.3 | 22.6 | 40 |
| p95 | 106.6 | 112.7 | 116.7 | 227.6 | |
| p99 | 255.6 | 361.9 | 299.2 | 644.6 | |
| Fastly h2 | p50 | 26.9 | 17 | 29.7 | 53 |
| p95 | 185 | 260.1 | 216.1 | 480.9 | |
| p99 | 745.4 | 1334.9 | 934.2 | 2360.7 | |
| CloudFront h3 | p50 | 30 | 26 | 32 | 61.1 |
| p95 | 192.7 | 232.5 | 199.7 | 421 | |
| p99 | 341.2 | 473.8 | 393 | 814.2 | |
| Cloudflare h3 | p50 | 34.6 | 28 | 36.1 | 70 |
| p95 | 141.4 | 225.6 | 147.4 | 358.3 | |
| p99 | 311.1 | 670.3 | 322 | 917.9 | |
| Cloudflare h2 | p50 | 41.8 | 19 | 47 | 72 |
| p95 | 361 | 512.6 | 426.7 | 1025.4 | |
| p99 | 1871.9 | 1435.2 | 2046.7 | 3175.6 | |
| CloudFront h2 | p50 | 58 | 29 | 74.9 | 119.2 |
| p95 | 554.5 | 655.4 | 638.6 | 1329.8 | |
| p99 | 2351.4 | 1744.5 | 2465.9 | 3893.1 |
By device p50 total_ms · last 96h
| device | variant | file | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|---|---|
| mobile | cold | 1p.gif | 757,028 | 164 ms | 196.1 ms | 193.5 ms |
| cold | 100.bin | 749,101 | 237.9 ms | 242 ms | 254.4 ms | |
| warm | 1p.gif | 465,018 | 42 ms | 29 ms | 37 ms | |
| warm | 100.bin | 459,957 | 78 ms | 54 ms | 69 ms | |
| desktop | cold | 1p.gif | 668,003 | 118.5 ms | 94.2 ms | 170.9 ms |
| cold | 100.bin | 675,047 | 178.1 ms | 124.6 ms | 219 ms | |
| warm | 1p.gif | 376,811 | 34.5 ms | 21.6 ms | 32.8 ms | |
| warm | 100.bin | 386,222 | 62.5 ms | 39.9 ms | 64.1 ms |
By country top 15 by volume · p50 total_ms · last 96h
1p.gif 43 B
cold
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| US | 187,881 | 152.8 ms | 169.4 ms | 148.2 ms |
| GB | 170,775 | 100.5 ms | 110.9 ms | 89.8 ms |
| BR | 110,015 | 124.5 ms | 105.8 ms | 373.3 ms |
| DE | 99,765 | 136.5 ms | 130.3 ms | 103.2 ms |
| TR | 63,673 | 217 ms | 189.7 ms | 180 ms |
| FR | 64,014 | 98 ms | 109 ms | 89 ms |
| MX | 48,009 | 196.5 ms | 179 ms | 179 ms |
| ES | 47,287 | 108 ms | 100 ms | 105.4 ms |
| IT | 37,002 | 136 ms | 139.1 ms | 124 ms |
| NL | 33,768 | 110.6 ms | 115.1 ms | 103.9 ms |
| AU | 32,871 | 106 ms | 121.5 ms | 524.7 ms |
| CA | 32,403 | 127 ms | 130 ms | 120 ms |
| HK | 20,475 | 199.8 ms | 286 ms | 564.6 ms |
| AR | 27,983 | 124.8 ms | 120 ms | 479 ms |
| JP | 23,116 | 153 ms | 158 ms | 466 ms |
warm
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| US | 120,086 | 38 ms | 25 ms | 26 ms |
| GB | 125,533 | 28 ms | 16 ms | 16.9 ms |
| BR | 48,821 | 34 ms | 20 ms | 131 ms |
| DE | 59,004 | 43 ms | 22.2 ms | 22 ms |
| TR | 39,381 | 76 ms | 56.6 ms | 41 ms |
| FR | 35,222 | 29.1 ms | 18 ms | 18 ms |
| MX | 23,289 | 61.2 ms | 39.8 ms | 35.5 ms |
| ES | 23,670 | 32 ms | 20.1 ms | 21.5 ms |
| IT | 19,403 | 37.9 ms | 25.7 ms | 27 ms |
| NL | 17,996 | 32.5 ms | 19.8 ms | 22 ms |
| AU | 18,569 | 28 ms | 16 ms | 177 ms |
| CA | 18,908 | 36.4 ms | 20 ms | 21.4 ms |
| HK | 28,690 | 32.2 ms | 70.5 ms | 211.1 ms |
| AR | 14,602 | 30.1 ms | 19.6 ms | 146.1 ms |
| JP | 16,372 | 33.7 ms | 16.6 ms | 129 ms |
100.bin 100 KB
cold
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| US | 199,853 | 210.3 ms | 199 ms | 191 ms |
| GB | 169,621 | 154.2 ms | 146.1 ms | 118.9 ms |
| BR | 108,535 | 183.6 ms | 141.9 ms | 567 ms |
| DE | 98,576 | 220.2 ms | 168 ms | 141.1 ms |
| TR | 63,521 | 309.3 ms | 256 ms | 238.2 ms |
| FR | 63,921 | 143 ms | 143.1 ms | 114.6 ms |
| MX | 47,636 | 287.1 ms | 230.5 ms | 232.8 ms |
| ES | 47,198 | 161.1 ms | 131.5 ms | 135 ms |
| IT | 36,692 | 213 ms | 175 ms | 165 ms |
| NL | 33,358 | 171.4 ms | 151 ms | 133.1 ms |
| AU | 32,503 | 161.1 ms | 152 ms | 793 ms |
| CA | 31,510 | 182 ms | 161 ms | 152.7 ms |
| HK | 19,841 | 281 ms | 363 ms | 819.5 ms |
| AR | 27,622 | 187.1 ms | 153.9 ms | 702 ms |
| JP | 22,878 | 224.5 ms | 191 ms | 659.9 ms |
warm
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| US | 129,467 | 73 ms | 47 ms | 47 ms |
| GB | 125,324 | 46.2 ms | 27 ms | 30 ms |
| BR | 48,625 | 61.1 ms | 37.8 ms | 260.7 ms |
| DE | 58,522 | 79 ms | 43.8 ms | 43 ms |
| TR | 39,719 | 117 ms | 93 ms | 73.9 ms |
| FR | 34,917 | 51.9 ms | 32 ms | 33 ms |
| MX | 23,081 | 104 ms | 65.5 ms | 66.9 ms |
| ES | 23,331 | 58.1 ms | 38 ms | 42.1 ms |
| IT | 19,004 | 71 ms | 46 ms | 50 ms |
| NL | 17,894 | 62.2 ms | 37 ms | 42 ms |
| AU | 18,183 | 55 ms | 32 ms | 348 ms |
| CA | 18,562 | 60 ms | 36.3 ms | 40 ms |
| HK | 28,410 | 50.1 ms | 114 ms | 419.8 ms |
| AR | 14,547 | 55.7 ms | 34.2 ms | 274.7 ms |
| JP | 15,922 | 67.1 ms | 33 ms | 250.2 ms |