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.

DNSresolve
TCPconnect
TLShandshake
WAITserver + 1 RTT
DLbody transfer

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
Fastly h3
98.1 ms293,770
Cloudflare h3
128.4 ms389,785
CloudFront h3
175 ms396,237
Cloudflare h2
237.3 ms82,929
Fastly h2
245.8 ms176,489
CloudFront h2
306 ms74,607
1,425,031 cold probes · 59% of file · h3 1,079,792 · h2 334,025 · 11,214 on h1/unknown (not ranked)
DNSTCPTLSWAITDLTTFBTOTAL
Fastly h3p5024.60.729.922.90.896.598.1
p95204.53.1143.5121.35.1489.9497.9
p99605.26.5309.7282.120.61269.71291.3
Cloudflare h3p5019133.249.70.6126.6128.4
p95183.53158205.45.2534538.4
p995267.1337.7491.416.51248.91259.7
CloudFront h3p5038.214846.60.6173.9175
p95255.23219.9296.44.5725.9730.9
p99682.66.3428532.4161447.11451.4
Cloudflare h2p5026.92451.249.50.9235.1237.3
p95253.4362.6427242.261224.31239.5
p991009.5851.41222.1754.943.73624.93630.6
Fastly h2p5022241270245245.8
p95150173297.3173.53.51060.21060.4
p99462.9491849.7449.2122760.22765.7
CloudFront h2p5038.12775.1460.7304306
p95289.4394.2613.13174.51467.61473.5
p991034864.21414.9792.519.83918.33918.7
warm reused connection
Fastly h3
22.8 ms122,700
Fastly h2
28 ms149,737
CloudFront h3
33 ms220,162
Cloudflare h3
36 ms211,774
Cloudflare h2
46.9 ms72,493
CloudFront h2
67.4 ms58,294
841,829 warm probes · 35% of file · h3 554,636 · h2 280,524 · 6,669 on h1/unknown (not ranked)
WAITDLTTFBTOTAL
Fastly h3p5019.20.521.622.8
p95100.23.6111.6114.6
p99252.111.8306.5336.9
Fastly h2p5025027.428
p95184.12.1208.2210.7
p99837.26.51016.81032.5
CloudFront h3p50300.23233
p95197.52.5205206
p99384.16.5434.2437.1
Cloudflare h3p50330.53536
p951543.1158.7161.7
p99330.28.7342342.2
Cloudflare h2p50400.74546.9
p95271.44.1317.5339
p99140133.51581.61627.5
CloudFront h2p5048.20.565.467.4
p95381.62.9456.6469.6
p991811.29.81929.81970.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
Fastly h3
134.2 ms293,108
Cloudflare h3
197.7 ms384,986
CloudFront h3
221 ms392,024
Cloudflare h2
280 ms88,150
Fastly h2
289 ms179,747
CloudFront h2
383.7 ms75,014
1,424,148 cold probes · 59% of file · h3 1,070,118 · h2 342,911 · 11,119 on h1/unknown (not ranked)
DNSTCPTLSWAITDLTTFBTOTAL
Fastly h3p5024.20.730.62427.799134.2
p95206.33.2142.2114.8165481.9644.3
p99514.86.9351.2273.94861112.41549.1
Cloudflare h3p50191335158128197.7
p95184.53153207353548.9867.2
p99529.96.2346.3480.6897.21368.12154.7
CloudFront h3p5037.81454649167221
p95257.83215.6283306.87231032.4
p99620.76414.1533.15751415.31944
Cloudflare h2p502621.5494929.5234.4280
p95244.7349.1368.2243.7338.21176.81535.2
p99864786996690.11048.33139.23706.2
Fastly h2p5022240.82736.1243.5289
p95140.1153.3271.617226210161296.7
p99499.4421.7920.3445.38712504.23359.9
CloudFront h2p504028.47256.150319383.7
p95304.4392.1589.7414.6420.91478.11920
p99935797.91434.7874.51130.63538.94437.5
warm reused connection
Fastly h3
40 ms122,447
Fastly h2
53 ms147,854
CloudFront h3
61.1 ms219,476
Cloudflare h3
70 ms208,455
Cloudflare h2
72 ms72,583
CloudFront h2
119.2 ms58,056
846,179 warm probes · 35% of file · h3 550,378 · h2 278,493 · 17,308 on h1/unknown (not ranked)
WAITDLTTFBTOTAL
Fastly h3p5020.213.322.640
p95106.6112.7116.7227.6
p99255.6361.9299.2644.6
Fastly h2p5026.91729.753
p95185260.1216.1480.9
p99745.41334.9934.22360.7
CloudFront h3p5030263261.1
p95192.7232.5199.7421
p99341.2473.8393814.2
Cloudflare h3p5034.62836.170
p95141.4225.6147.4358.3
p99311.1670.3322917.9
Cloudflare h2p5041.8194772
p95361512.6426.71025.4
p991871.91435.22046.73175.6
CloudFront h2p50582974.9119.2
p95554.5655.4638.61329.8
p992351.41744.52465.93893.1

By device p50 total_ms · last 96h

device variant file probes Cloudflare Fastly CloudFront
mobile cold 1p.gif 757,028 164 ms196.1 ms193.5 ms
cold 100.bin 749,101 237.9 ms242 ms254.4 ms
warm 1p.gif 465,018 42 ms29 ms37 ms
warm 100.bin 459,957 78 ms54 ms69 ms
desktop cold 1p.gif 668,003 118.5 ms94.2 ms170.9 ms
cold 100.bin 675,047 178.1 ms124.6 ms219 ms
warm 1p.gif 376,811 34.5 ms21.6 ms32.8 ms
warm 100.bin 386,222 62.5 ms39.9 ms64.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 ms169.4 ms148.2 ms
GB 170,775 100.5 ms110.9 ms89.8 ms
BR 110,015 124.5 ms105.8 ms373.3 ms
DE 99,765 136.5 ms130.3 ms103.2 ms
TR 63,673 217 ms189.7 ms180 ms
FR 64,014 98 ms109 ms89 ms
MX 48,009 196.5 ms179 ms179 ms
ES 47,287 108 ms100 ms105.4 ms
IT 37,002 136 ms139.1 ms124 ms
NL 33,768 110.6 ms115.1 ms103.9 ms
AU 32,871 106 ms121.5 ms524.7 ms
CA 32,403 127 ms130 ms120 ms
HK 20,475 199.8 ms286 ms564.6 ms
AR 27,983 124.8 ms120 ms479 ms
JP 23,116 153 ms158 ms466 ms
warm
country probes Cloudflare Fastly CloudFront
US 120,086 38 ms25 ms26 ms
GB 125,533 28 ms16 ms16.9 ms
BR 48,821 34 ms20 ms131 ms
DE 59,004 43 ms22.2 ms22 ms
TR 39,381 76 ms56.6 ms41 ms
FR 35,222 29.1 ms18 ms18 ms
MX 23,289 61.2 ms39.8 ms35.5 ms
ES 23,670 32 ms20.1 ms21.5 ms
IT 19,403 37.9 ms25.7 ms27 ms
NL 17,996 32.5 ms19.8 ms22 ms
AU 18,569 28 ms16 ms177 ms
CA 18,908 36.4 ms20 ms21.4 ms
HK 28,690 32.2 ms70.5 ms211.1 ms
AR 14,602 30.1 ms19.6 ms146.1 ms
JP 16,372 33.7 ms16.6 ms129 ms

100.bin 100 KB

cold
country probes Cloudflare Fastly CloudFront
US 199,853 210.3 ms199 ms191 ms
GB 169,621 154.2 ms146.1 ms118.9 ms
BR 108,535 183.6 ms141.9 ms567 ms
DE 98,576 220.2 ms168 ms141.1 ms
TR 63,521 309.3 ms256 ms238.2 ms
FR 63,921 143 ms143.1 ms114.6 ms
MX 47,636 287.1 ms230.5 ms232.8 ms
ES 47,198 161.1 ms131.5 ms135 ms
IT 36,692 213 ms175 ms165 ms
NL 33,358 171.4 ms151 ms133.1 ms
AU 32,503 161.1 ms152 ms793 ms
CA 31,510 182 ms161 ms152.7 ms
HK 19,841 281 ms363 ms819.5 ms
AR 27,622 187.1 ms153.9 ms702 ms
JP 22,878 224.5 ms191 ms659.9 ms
warm
country probes Cloudflare Fastly CloudFront
US 129,467 73 ms47 ms47 ms
GB 125,324 46.2 ms27 ms30 ms
BR 48,625 61.1 ms37.8 ms260.7 ms
DE 58,522 79 ms43.8 ms43 ms
TR 39,719 117 ms93 ms73.9 ms
FR 34,917 51.9 ms32 ms33 ms
MX 23,081 104 ms65.5 ms66.9 ms
ES 23,331 58.1 ms38 ms42.1 ms
IT 19,004 71 ms46 ms50 ms
NL 17,894 62.2 ms37 ms42 ms
AU 18,183 55 ms32 ms348 ms
CA 18,562 60 ms36.3 ms40 ms
HK 28,410 50.1 ms114 ms419.8 ms
AR 14,547 55.7 ms34.2 ms274.7 ms
JP 15,922 67.1 ms33 ms250.2 ms

4,832,604 probes across 2 sites over the last 96h · last ingest 2026-06-19 00:41:54.387 UTC