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,091,249 probes · 96.9% ok · 96h
Cloudflare
Fastly
CloudFront
close race <5%
insufficient data
78 countries colored · floor: ≥500 warm probes per provider (totalled across both files) · p50 shown per file · 15 close race <5%
cold
fresh TLS handshake
1,845,048 cold probes · 60% of file · h3 1,424,699 · h2 410,742 · 9,607 on h1/unknown (not ranked)
| DNS | TCP | TLS | WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|---|---|---|
| Fastly h3 | p50 | 22.6 | 0.7 | 29.7 | 22.2 | 0.7 | 93.9 | 95.2 |
| p95 | 198.7 | 3.2 | 128.3 | 107 | 4.4 | 451.1 | 453.1 | |
| p99 | 484.5 | 6.9 | 328.2 | 282 | 15 | 1206.8 | 1211 | |
| Cloudflare h3 | p50 | 18.3 | 1 | 33 | 49 | 0.6 | 124 | 125.6 |
| p95 | 174.8 | 3 | 154.2 | 237 | 5.1 | 560 | 564 | |
| p99 | 466.7 | 6.4 | 355.7 | 813.8 | 16 | 1734 | 1734.5 | |
| CloudFront h3 | p50 | 36.9 | 1 | 45.4 | 44 | 0.6 | 163 | 164 |
| p95 | 233.9 | 3 | 210 | 289 | 4.4 | 700.4 | 703.2 | |
| p99 | 599.4 | 5.9 | 397.4 | 546.5 | 15 | 1551 | 1555.7 | |
| Cloudflare h2 | p50 | 25 | 23 | 49 | 47.3 | 0.9 | 235.6 | 237.6 |
| p95 | 233.4 | 409.9 | 386.6 | 274.6 | 6.1 | 1196.4 | 1220.5 | |
| p99 | 866.7 | 861.5 | 936.1 | 942.5 | 48.1 | 3259.1 | 3292.7 | |
| Fastly h2 | p50 | 2 | 22.7 | 40.1 | 27 | 0 | 240 | 241 |
| p95 | 122.5 | 136.3 | 261 | 155.2 | 3.3 | 1014 | 1014.4 | |
| p99 | 469.6 | 402.2 | 789.7 | 425.1 | 11 | 2816.8 | 2817.2 | |
| CloudFront h2 | p50 | 39.1 | 27 | 68.9 | 43 | 0.6 | 271.9 | 274 |
| p95 | 290.7 | 362.4 | 546.9 | 283.8 | 4 | 1261.7 | 1270.2 | |
| p99 | 1045.5 | 725.8 | 1146.4 | 611.9 | 15.6 | 2975.6 | 2977.1 |
warm
reused connection
1,045,804 warm probes · 34% of file · h3 688,091 · h2 333,372 · 24,341 on h1/unknown (not ranked)
| WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|
| Fastly h3 | p50 | 21.6 | 0.6 | 24.1 | 25.1 |
| p95 | 114 | 3.8 | 147 | 151.2 | |
| p99 | 270.8 | 12.4 | 506.4 | 511.5 | |
| Fastly h2 | p50 | 24 | 0 | 27 | 27.7 |
| p95 | 143.8 | 2.3 | 167.1 | 171.5 | |
| p99 | 379.7 | 13.3 | 514.2 | 551.2 | |
| CloudFront h3 | p50 | 31 | 0.3 | 33 | 34 |
| p95 | 196 | 2.5 | 205 | 206 | |
| p99 | 379.1 | 8.5 | 443.8 | 448.2 | |
| Cloudflare h3 | p50 | 34 | 0.6 | 36 | 37 |
| p95 | 174 | 3.5 | 191 | 194 | |
| p99 | 655.1 | 11.8 | 664.4 | 667.8 | |
| Cloudflare h2 | p50 | 37.2 | 0.8 | 42 | 43.5 |
| p95 | 219.2 | 5 | 271.2 | 291.6 | |
| p99 | 743.6 | 71 | 914.2 | 993.8 | |
| CloudFront h2 | p50 | 39.9 | 0.5 | 52 | 53.9 |
| p95 | 246.8 | 3 | 302.9 | 313.9 | |
| p99 | 490 | 16.6 | 772.7 | 846.8 |
100.bin 100 KB 3,087,011 probes · 97% ok · 96h
Cloudflare
Fastly
CloudFront
close race <5%
insufficient data
78 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,841,397 cold probes · 60% of file · h3 1,412,279 · h2 419,769 · 9,349 on h1/unknown (not ranked)
| DNS | TCP | TLS | WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|---|---|---|
| Fastly h3 | p50 | 22.4 | 0.7 | 29.8 | 23.5 | 27.2 | 94.1 | 127.3 |
| p95 | 186.9 | 3.3 | 132.6 | 114.6 | 159.9 | 446.5 | 599.5 | |
| p99 | 487.3 | 6.3 | 311.5 | 262.4 | 492.9 | 1078.9 | 1572.3 | |
| Cloudflare h3 | p50 | 18.7 | 1 | 32.1 | 50 | 55 | 126.8 | 193.8 |
| p95 | 170.9 | 3 | 157.4 | 249 | 361.9 | 565.4 | 919.1 | |
| p99 | 478 | 6 | 346.2 | 708.2 | 968 | 1583.1 | 2327.3 | |
| CloudFront h3 | p50 | 35.7 | 1 | 45 | 45 | 48.2 | 160 | 214.3 |
| p95 | 232.6 | 3 | 207 | 286 | 298.6 | 666.7 | 960.8 | |
| p99 | 562.1 | 5.6 | 361 | 485.1 | 548.3 | 1307.7 | 1810.3 | |
| Cloudflare h2 | p50 | 25.5 | 23 | 48.1 | 48.3 | 30.4 | 235 | 284 |
| p95 | 244 | 404.6 | 378.1 | 269.7 | 321.4 | 1204.3 | 1519 | |
| p99 | 997.5 | 821.3 | 958.7 | 841.9 | 925.1 | 3021.3 | 3711.3 | |
| Fastly h2 | p50 | 2 | 22 | 39 | 27 | 37 | 239 | 284 |
| p95 | 122 | 141 | 245.7 | 161.2 | 246.7 | 942.3 | 1205.8 | |
| p99 | 357.2 | 384.3 | 700.4 | 424.2 | 696.6 | 2312.4 | 2840.2 | |
| CloudFront h2 | p50 | 37 | 25.2 | 60.2 | 48.2 | 43.9 | 271.2 | 329.8 |
| p95 | 268.8 | 339 | 550.7 | 365.3 | 369.6 | 1311.1 | 1649.3 | |
| p99 | 925.8 | 680.4 | 1093.4 | 643.6 | 867.4 | 2532.5 | 3329.5 |
warm
reused connection
1,047,010 warm probes · 34% of file · h3 682,987 · h2 332,264 · 31,759 on h1/unknown (not ranked)
| WAIT | DL | TTFB | TOTAL | ||
|---|---|---|---|---|---|
| Fastly h3 | p50 | 22.8 | 16.2 | 25.4 | 45.5 |
| p95 | 120 | 121.3 | 143.5 | 262.1 | |
| p99 | 280 | 408.1 | 475.1 | 774.2 | |
| Fastly h2 | p50 | 26 | 16.8 | 29 | 51 |
| p95 | 143 | 191.3 | 169 | 356.2 | |
| p99 | 353.3 | 656.6 | 492.2 | 1040.8 | |
| CloudFront h3 | p50 | 32.7 | 28 | 35 | 66 |
| p95 | 196 | 229.6 | 208.1 | 420.9 | |
| p99 | 359.2 | 492.9 | 431.6 | 861.1 | |
| Cloudflare h2 | p50 | 39.1 | 17.9 | 44 | 68 |
| p95 | 219.3 | 289.8 | 266.7 | 572.3 | |
| p99 | 610.6 | 911.5 | 845.2 | 1701.9 | |
| Cloudflare h3 | p50 | 35 | 30 | 37 | 72.9 |
| p95 | 179.7 | 256.9 | 193.4 | 454 | |
| p99 | 631.3 | 790.4 | 663.4 | 1379.7 | |
| CloudFront h2 | p50 | 50 | 26.3 | 63 | 99.5 |
| p95 | 322.1 | 279.1 | 366 | 604 | |
| p99 | 625.3 | 689.7 | 792.9 | 1354.2 |
By device p50 total_ms · last 96h
| device | variant | file | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|---|---|
| mobile | cold | 1p.gif | 1,007,385 | 157 ms | 191 ms | 185 ms |
| cold | 100.bin | 997,661 | 229 ms | 235 ms | 243.5 ms | |
| warm | 1p.gif | 594,309 | 40.2 ms | 28.9 ms | 35.7 ms | |
| warm | 100.bin | 591,283 | 78.2 ms | 53 ms | 69 ms | |
| desktop | cold | 1p.gif | 837,663 | 114.6 ms | 89.4 ms | 152 ms |
| cold | 100.bin | 843,736 | 170.3 ms | 118.5 ms | 210.3 ms | |
| warm | 1p.gif | 451,495 | 35.6 ms | 24.3 ms | 46.5 ms | |
| warm | 100.bin | 455,727 | 65.1 ms | 45.4 ms | 100.1 ms |
By country top 15 by volume · p50 total_ms · last 96h
1p.gif 43 B
cold
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 239,879 | 100.7 ms | 113.2 ms | 86 ms |
| US | 216,022 | 146.1 ms | 170 ms | 147.2 ms |
| DE | 128,859 | 141 ms | 127.8 ms | 101 ms |
| BR | 139,202 | 125.5 ms | 104.7 ms | 368.3 ms |
| FR | 108,739 | 90 ms | 104.1 ms | 83.4 ms |
| TR | 76,720 | 213.3 ms | 188.9 ms | 175.4 ms |
| MX | 64,917 | 188 ms | 179 ms | 177.8 ms |
| ES | 63,378 | 105.6 ms | 93.9 ms | 103 ms |
| IT | 47,062 | 133 ms | 131.8 ms | 117 ms |
| NL | 46,679 | 112 ms | 116.1 ms | 102.5 ms |
| CA | 38,504 | 118 ms | 124 ms | 115 ms |
| AU | 37,871 | 97.8 ms | 116.2 ms | 512 ms |
| HK | 21,856 | 151 ms | 271.7 ms | 564.2 ms |
| AR | 33,595 | 116 ms | 108.9 ms | 460 ms |
| JP | 28,795 | 138 ms | 155 ms | 447 ms |
warm
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 128,445 | 30.8 ms | 21 ms | 19 ms |
| US | 129,707 | 37 ms | 24.9 ms | 25 ms |
| DE | 73,395 | 43 ms | 22 ms | 21 ms |
| BR | 60,671 | 36 ms | 20 ms | 130 ms |
| FR | 57,985 | 28.1 ms | 18 ms | 17.2 ms |
| TR | 46,744 | 74 ms | 55 ms | 38 ms |
| MX | 30,174 | 61.2 ms | 41.5 ms | 35.9 ms |
| ES | 30,451 | 31.4 ms | 20.6 ms | 21.7 ms |
| IT | 24,718 | 36.3 ms | 24.2 ms | 26 ms |
| NL | 24,062 | 33.8 ms | 20 ms | 23 ms |
| CA | 23,088 | 34 ms | 20 ms | 20.5 ms |
| AU | 20,680 | 27 ms | 15 ms | 175 ms |
| HK | 33,575 | 20 ms | 41.2 ms | 158.8 ms |
| AR | 15,674 | 31.2 ms | 20.9 ms | 151 ms |
| JP | 19,743 | 33 ms | 17.2 ms | 130.7 ms |
100.bin 100 KB
cold
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 237,524 | 154 ms | 140.9 ms | 116.4 ms |
| US | 227,734 | 206.9 ms | 201 ms | 195.1 ms |
| DE | 127,155 | 225 ms | 165.3 ms | 136 ms |
| BR | 138,311 | 181.8 ms | 138.9 ms | 563.2 ms |
| FR | 108,693 | 133.9 ms | 135.5 ms | 108.6 ms |
| TR | 76,413 | 297 ms | 258.3 ms | 234.8 ms |
| MX | 64,183 | 278.2 ms | 229.5 ms | 231 ms |
| ES | 62,690 | 155 ms | 125 ms | 128.3 ms |
| IT | 46,631 | 204.2 ms | 168.3 ms | 156.2 ms |
| NL | 46,237 | 173 ms | 148.5 ms | 133.1 ms |
| CA | 38,565 | 166 ms | 154 ms | 146.8 ms |
| AU | 37,346 | 147.3 ms | 150 ms | 772 ms |
| HK | 21,387 | 209 ms | 348 ms | 831.2 ms |
| AR | 33,042 | 176.1 ms | 144.2 ms | 689.9 ms |
| JP | 28,487 | 203 ms | 184 ms | 641.5 ms |
warm
| country | probes | Cloudflare | Fastly | CloudFront |
|---|---|---|---|---|
| GB | 127,388 | 57.5 ms | 40 ms | 37 ms |
| US | 140,889 | 66 ms | 45 ms | 54.3 ms |
| DE | 72,817 | 83 ms | 45 ms | 41.9 ms |
| BR | 59,791 | 64.2 ms | 38 ms | 250 ms |
| FR | 58,181 | 50.8 ms | 32.7 ms | 32 ms |
| TR | 46,342 | 118.5 ms | 90.4 ms | 70 ms |
| MX | 30,133 | 104 ms | 69.6 ms | 66.9 ms |
| ES | 30,420 | 58.3 ms | 38 ms | 42 ms |
| IT | 24,821 | 69.7 ms | 45.7 ms | 49.1 ms |
| NL | 24,216 | 66 ms | 39 ms | 44.6 ms |
| CA | 22,870 | 56 ms | 34.9 ms | 38.1 ms |
| AU | 20,568 | 52.7 ms | 30.5 ms | 333.8 ms |
| HK | 33,635 | 25.9 ms | 67 ms | 308 ms |
| AR | 16,032 | 55.6 ms | 38 ms | 283.9 ms |
| JP | 19,612 | 64.1 ms | 34 ms | 252 ms |