📶 Internet Speed Test - Download, Upload & Latency

Speed Test Controls

Click Start to measure your connection. The test takes ~30 seconds and runs entirely in your browser against the Cloudflare edge.

Status

⚠️ Recoverable error during test:

About this engine

  • Library: @cloudflare/speedtest (MIT licensed)
  • Measurement endpoint: speed.cloudflare.com
  • Bandwidth percentile: p90 (default)
  • Latency percentile: p50 / median
  • Packet-loss measurement disabled (Cloudflare's public TURN endpoint is being deprecated).

Results

Download
Mbps
Upload
Mbps
Latency (idle)
ms
Jitter
ms

Live bandwidth (Mbps per request)

auto-scaling Y · each series rebased to its own start

Each dot is one HTTP request. Spacing varies because request sizes are progressive — small chunks (1 MB) finish in tens of ms, large chunks (25 MB) take hundreds of ms. The library uses small requests first to find the ballpark, then larger requests to measure peak bandwidth accurately.

Loaded Latency & Packet Loss

Latency under download load ms
Jitter under download load ms
Latency under upload load ms
Jitter under upload load ms
Packet loss (disabled) %
⚠️

ℹ️ About Internet Speed Test

Browser Internet Speed Test Metrics

A speed test measures the quality of your internet connection by transferring data between your browser and a measurement server. This tool runs against Cloudflare's global edge network (the same backend that powers speed.cloudflare.com), so requests terminate at whichever data center is closest to you over the public internet.

The latency terms used by speed tests line up with IETF measurement work such as RFC 2681 round-trip delay, RFC 3393 packet delay variation, and the interpretation guidance in RFC 5481. Browser timing data comes from the W3C Resource Timing API.

Metrics Reported

⬇️ Download bandwidth

Rate at which data can be pulled from the network, reported in megabits per second (Mbps). Reflects streaming, browsing, and file-download performance.

⬆️ Upload bandwidth

Rate at which data can be pushed to the network. Critical for video calls, cloud backups, screen sharing, and live streaming.

⏱️ Latency (idle ping)

Round-trip time of a small packet while the link is idle, measured in milliseconds. Lower is better — gaming and VoIP feel responsive under ~50 ms.

📈 Jitter

Variation between consecutive latency samples. High jitter causes choppy audio, dropped video frames, and inconsistent gameplay even when bandwidth is plentiful.

🔁 Loaded latency (bufferbloat)

Latency measured while the connection is saturated with downloads or uploads. A big gap between idle and loaded latency means your router is queuing packets — the classic "bufferbloat" symptom.

📉 Packet loss (currently disabled)

Packet-loss measurement requires a TURN server. Cloudflare's public TURN credentials endpoint is being phased out, so this metric is disabled until a replacement is configured.

How It Works

  • 100% client-side. The test runs entirely in your browser using the official @cloudflare/speedtest JavaScript engine — there is no API endpoint on this server.
  • HTTP downloads + uploads. The engine issues progressively larger GET/POST requests against speed.cloudflare.com and uses the browser PerformanceResourceTiming API to compute throughput percentiles.
  • Latency probes. Small payloads measure idle and loaded round-trip time alongside the bandwidth runs. Round-trip delay terminology is defined by RFC 2681, and delay variation by RFC 3393.
  • No login, no tracking on our side. We do not record results. Cloudflare aggregates measurements on their end — see their privacy policy.

What Can Skew Results

  • Wi-Fi vs wired: wireless interference, mesh backhaul, and weak signal can hide the real ISP bandwidth.
  • VPN and proxy paths: encrypted tunnels add latency and may cap throughput long before your last-mile connection does.
  • Loaded latency: a high idle ping is obvious, but high latency during upload or download is often the better sign of bufferbloat.
  • Peering and routing: results reflect the route to Cloudflare's edge, not every destination on the internet.
  • Browser limits: extensions, battery saver, CPU load, and background tabs can affect JavaScript timing and request scheduling.

💡 Tips for Accurate Results

  • Close other tabs and pause large downloads before testing.
  • Pause cloud sync clients (Dropbox, OneDrive, iCloud) — they share your uplink.
  • Test wired and Wi-Fi separately to identify which segment is the bottleneck.
  • Run the test multiple times. Bandwidth varies with peering, congestion, and time of day.
  • VPNs add latency and cap throughput. Disable them for a baseline measurement.
  • Use the network latency calculator for pasted ping logs, longer sample sets, or P95/P99 analysis.
Ready