Bufferbloat Explained: Why Your Ping Spikes When Someone Streams (and How to Fix It)
Published 2026-08-24 · By NetAudioHub Editorial
Bufferbloat is when your ping stays low while the connection is idle but jumps to hundreds of milliseconds the instant something saturates your line — a big upload, a game update, a 4K stream, a cloud backup. It feels like lag, rubber-banding, and choppy video calls, and it hits fast connections just as easily as slow ones because it's a latency problem, not a bandwidth problem: an oversized buffer fills under load and forces every other packet to wait behind it. The fix isn't a faster plan — it's Smart Queue Management (SQM), an algorithm like fq_codel or CAKE that keeps the queue short so latency stays flat even at full load. Test for it in two minutes with a loaded-latency tool, and if you score below an A, enabling SQM on your router is the single highest-impact change you can make for gaming and video calls.
The verdict up front: bufferbloat is when your ping stays low while the connection is idle but jumps to hundreds of milliseconds the instant something saturates your line — a big upload, a game update, a 4K stream, a cloud backup. It feels like lag, rubber-banding, choppy video calls, and web pages that stall while a download runs, and it happens on fast connections just as easily as slow ones because it is a latency problem, not a bandwidth problem. The cause is an oversized buffer in your router or modem that fills up under load and forces every other packet to wait in line behind it. The fix is not a faster internet plan — it is Smart Queue Management (SQM), an algorithm like fq_codel or CAKE that keeps the queue short so latency stays flat even when the link is maxed out. Test for it in two minutes with a loaded-latency speed test, and if you score below an A, enabling SQM on your router is the single highest-impact change you can make for gaming and video calls.
What Bufferbloat Actually Is
Every device between you and the internet — your router, your cable or fiber modem — has a small amount of memory called a buffer where it parks packets that are waiting their turn to be sent. Buffers are good in small doses: they smooth out brief bursts of traffic so nothing gets dropped unnecessarily. The problem is that hardware makers, worried about dropping packets, gave these buffers far more memory than they need. That is the "bloat."
Here is what goes wrong. Your upload or download link has a fixed capacity — say 20 Mbps up. When you start a big upload, your devices try to push data faster than that link can carry it, so the excess packets pile up in the buffer waiting to go out. With a bloated buffer, that queue can grow to hold seconds of data. Now every other packet — your game's movement update, your Zoom audio, the click that loads a web page — arrives at the back of that line and has to wait for everything ahead of it to drain. Your ping, which was 20 ms idle, is suddenly 300 ms because each packet is sitting in a traffic jam of your own making.
The tell is the timing: latency is fine until the moment the link saturates, then it collapses, then it recovers the second the transfer finishes. That specific pattern — fine idle, terrible under load — is the signature of bufferbloat.
Why It Isn't a Bandwidth Problem
This is the part that trips people up, so it is worth stating plainly: a gigabit connection can have terrible bufferbloat and a 25 Mbps connection can have none. Bufferbloat is about how long packets wait when the link is full, not how much the link can carry. Buying a faster plan often does nothing, because whatever the speed, if you can saturate it you can still overflow the buffer — and the buffer's size, not the link's speed, decides how long the queue gets.
That is also why the usual speed test is misleading. A normal speed test reports download, upload, and idle ping — the three numbers that look great right before your game starts stuttering. Bufferbloat only shows up when you measure latency while the link is loaded, which most basic tests never do.
How to Test for It in Two Minutes
Use a test that measures latency under load, not just idle ping. Good options:
- Waveform Bufferbloat Test (waveform.com/tools/bufferbloat) — the clearest one; it saturates your link in both directions and grades your latency increase from A+ down to F.
- Cloudflare Speed Test (speed.cloudflare.com) — reports "loaded" latency alongside the usual numbers.
- Fast.com (Netflix) — click "Show more info" to see loaded latency for download and upload separately.
Run the test while nothing else is using the network, and watch the unloaded versus loaded latency. Here is how to read the result:
| Latency increase under load | Grade | What you'll notice |
|---|---|---|
| Under ~30 ms | A / A+ | Nothing — games and calls stay smooth under load |
| ~30–100 ms | B / C | Occasional lag spikes when someone else is streaming or uploading |
| Over ~100–200 ms | D / F | Rubber-banding in games, dropped call audio, pages that stall during downloads |
If you score a B or worse — and most stock ISP setups do, especially on upload — bufferbloat is real on your line and worth fixing. Note which direction is worse; on cable connections the upload is almost always the culprit because it is both slow and heavily buffered.
The Fix: Smart Queue Management (SQM)
The solution is not a bigger buffer or a faster plan — it is a smarter queue. Smart Queue Management replaces the dumb "fill up then drop" buffer with an active queue management (AQM) algorithm that keeps the queue short on purpose, signalling senders to slow down before the buffer bloats. Two algorithms do almost all the work:
- fq_codel (fair queuing, controlled delay) — keeps each flow's queue short and shares the link fairly between them, so one big upload can't starve your game traffic.
- CAKE (Common Applications Kept Enhanced) — the modern successor to fq_codel. It does everything fq_codel does and adds per-device fairness and built-in handling for connection overhead, which makes it the better choice when your router supports it.
With SQM running, your loaded-latency grade typically jumps straight to an A. The trade-off is tiny: you give up a few percent of raw throughput in exchange for latency that stays flat under full load. For anyone who games, takes video calls, or shares the connection with a busy household, that is a trade worth making every time.
The one setting that makes SQM work
SQM only helps if the queue forms inside the device running the algorithm — your router — instead of in your ISP's modem downstream, where your router has no control. To force that, you tell SQM to shape your traffic to slightly below your real line speed, usually 85–95% of your measured download and upload. That deliberate small haircut keeps your router as the bottleneck, so the managed queue lives where the smart algorithm can control it. Set it too high (at or above your true speed) and the queue moves back to the modem and SQM does nothing; set it too low and you leave throughput on the table. Measure your real speeds first, then start around 90% and adjust.
Where to Turn SQM On
Support varies a lot by brand. In rough order of how well they do it:
- OpenWrt (on a supported router) — the gold standard. Install the `sqm-scripts` package, pick `cake` (or `piece_of_cake`), enter your shaped up/down speeds, and you're done. This is where SQM was born.
- Ubiquiti UniFi / EdgeRouter — has a "Smart Queues" toggle that runs fq_codel; enter your bandwidth and enable it.
- Firewalla — offers built-in SQM/QoS with a straightforward on/off and bandwidth entry.
- ASUS (Adaptive QoS) and Netgear (Dynamic QoS) — these are bandwidth-management QoS systems rather than true AQM; they help somewhat but are not as clean as fq_codel/CAKE. Enable them and re-test.
- eero, Google Nest Wifi, most ISP-supplied gateways — generally do not expose SQM at all. If bufferbloat is bad and your router can't fix it, the common path is to put the ISP gateway in bridge mode and run your own SQM-capable router behind it.
After enabling SQM, re-run the same loaded-latency test. A stock D or F line usually comes back an A. If it doesn't, your shaped speeds are probably set too high — lower them a step and test again.
Bufferbloat vs. the Other Things That Cause Lag
Bufferbloat is one specific problem, and it is easy to blame it for lag that actually comes from somewhere else. Quick disambiguation:
- If your ping is bad only when the link is busy and fine otherwise — that's bufferbloat. SQM is the fix.
- If you can't get into matches, lose party chat, or can't host — that's a NAT/reachability issue, not latency. See our NAT types explained: Open vs Moderate vs Strict guide.
- If you want to hand game traffic priority over everything else rather than just flatten latency, that's classic priority QoS — our how to prioritize gaming traffic with QoS walk-through covers it, and it layers cleanly on top of SQM.
- If your ping is high even when idle, that's raw distance/routing to the server, and no local setting will fix it.
In practice, SQM and priority QoS solve different halves of the same complaint: SQM keeps everyone's latency low under load, while priority QoS decides who goes first when there's contention. If you only do one, do SQM — it fixes the problem most people actually have.
The Short Version
Bufferbloat is latency under load caused by oversized buffers that fill up and make every other packet wait. It hits fast and slow connections alike because it is not about bandwidth. Test for it with a loaded-latency tool like the Waveform Bufferbloat Test; if you grade below an A — and most stock setups do — turn on Smart Queue Management on your router, using CAKE or fq_codel, and shape your speeds to about 90% of your real up/down. That one change keeps your ping flat while the household streams, uploads, and backs up in the background, which is exactly when you used to lag. It costs a few percent of throughput and buys you a connection that finally feels as fast under load as the speed test says it is.