How to Actually Fix Bufferbloat: The Router-by-Router Guide
Bufferbloat is almost always fixable in 20 minutes, on hardware you already own, for $0. The one-line version is: enable a queue manager called CAKE (or failing that, FQ-Codel) on your router, set the shaping limit to about 90% of your measured line speed, verify the fix with a continuous monitor. The rest of this page is the per-router specifics, the common mistakes, and how to tell when you're actually done.
1. Diagnose first, fix second
Before touching anything, confirm that bufferbloat is actually your problem. A lot of "my internet is slow" is really Wi-Fi congestion, DNS, or a neighbor hammering a shared segment. Bufferbloat has a specific signature: idle latency looks fine, loaded latency spikes, and the spike correlates perfectly with anyone in the house hitting play on something big.
The direct test is a loaded-latency measurement. Start a sustained download and ping a nearby server at the same time. The difference between your ping during the download and your ping when the link is quiet is the bufferbloat grade. Under 30 ms is clean. Over 100 ms is a problem you will feel on every video call, every game, every page that loads while someone else is streaming. Y2KDASH measures this continuously so you can watch the shape of it instead of catching a single moment; waveform.com/tools/bufferbloat runs a one-shot version.
2. Know your real throughput (not your plan number)
Every fix below needs a number: your actual sustained download and upload in Mbps. Not the plan sticker, not the Wi-Fi number, not the last Ookla peak — the number your router actually sees coming in and going out on a wired client during a 5-second-or-longer saturated test, repeated a few times.
Record both. Most residential plans are asymmetric (e.g. 500 down / 20 up), and bufferbloat on the upload side is often worse because the upstream pipe is smaller and buffers fill faster. Set aside both numbers — you'll plug them into the router.
3. The fix, by router type
Below is the practical matrix. If your router isn't in the list, the trick is the same one everywhere: find a menu that says any of SQM, CAKE, FQ-Codel, Adaptive QoS, or Smart Queue, enable it, and set the ingress/egress limits to roughly 90% of your measured line speed. If none of those words appear in the firmware, skip to the "no-knobs router" section.
OpenWRT (the gold standard)
OpenWRT's sqm-scripts with the cake queue discipline is the reference implementation. Everything else on this page is a compromise with it. Setup in the LuCI web UI:
- Install the
sqm-scriptsandluci-app-sqmpackages (opkg install luci-app-sqm). - Go to Network → SQM QoS. Add a rule on your WAN interface.
- Queue discipline:
cake. Queue setup script:piece_of_cake.qos. - Download limit: 90% of measured download. Upload limit: 90% of measured upload. Both in kbit/s.
- Link layer adaptation:
Ethernetfor fiber or cable with a separate modem;ATMfor DSL;DOCSISon DOCSIS if available. - Save + Apply. Reboot the WAN connection.
That's it. On a 300/25 cable plan this typically reduces loaded latency from ~250 ms over idle to under 5 ms over idle. The CPU cost on a modern ARM router (GL-MT3000, GL-AXT1800, anything with a dual-core Cortex-A53 at 1+ GHz) is negligible up to a few hundred Mbps. Above 500 Mbps you want hardware with a faster CPU — the common pattern is an x86 mini-PC running OpenWRT or a Banana-Pi-class board.
ASUS routers with stock firmware
Since 2018 most ASUS RT-* routers ship with Adaptive QoS, which is a Trend Micro signature-based classifier plus a shaper. It's not CAKE, but it is useful. Settings:
- Adaptive QoS → QoS → Enable QoS:
On. - QoS Type:
Adaptive QoS. - Download bandwidth: 90% of measured download. Upload bandwidth: 90% of measured upload.
- Priority: set "Web Surfing" or "Gaming" higher than "File Downloading" — this is the actual queue-priority behavior. Default order is usually fine.
Caveat: Adaptive QoS uses deep packet inspection, so it reduces max throughput slightly on the highest plans. On gigabit fiber the cost is real; on anything under 500 Mbps you won't notice.
ASUS routers with Asuswrt-Merlin (recommended)
Asuswrt-Merlin is a maintained, mostly-stock fork of ASUS firmware that unlocks proper CAKE via the FreshJR_QOS / CAKE-QoS scripts on the Diversion + Scribe / scripts entware stack. On a supported RT-AX86U / RT-AX88U / GT-AX6000 this is as close to OpenWRT's performance as you get without giving up the ASUS UI. Install Merlin, then follow the FreshJR CAKE guide.
pfSense / OPNsense
Use the FairQ + CoDel shaper, or install the CAKE port. pfSense 2.7+ has native CAKE in the traffic shaper wizard. Run the wizard, pick CAKE, set ingress/egress to 90% of measured line speed, done. On OPNsense the same thing is at Services → Traffic Shaper → Pipes.
Ubiquiti EdgeRouter / UniFi
EdgeRouter (ER-X, ERLite, ER-4) supports FQ-Codel natively and CAKE via the shell, but the UniFi Dream Machine line historically doesn't expose queue management in the GUI. On a UDM / UDM-Pro / UDM-SE the workaround is shell-level tc commands after every firmware update. If you're on UniFi, consider whether an EdgeRouter or an OpenWRT box in front of your UDM is the pragmatic move.
TP-Link, Netgear Nighthawk, Linksys (stock firmware)
Most of these expose a "QoS" menu that does not do CAKE. It's usually a priority-by-device or priority-by-port system that ties tightly to the router's chipset shaper. The honest assessment is: it helps, it does not fix the problem. If the menu is there, set your line speeds, set priority for gaming/voice devices, and measure. If the delta is still over 50 ms loaded vs. idle, you are up against the firmware's limit.
The paths from here are: flash OpenWRT if your model is supported, replace with a GL.iNet or EdgeRouter, or put an OpenWRT box in series between your ISP device and your existing router.
ISP-supplied gateways (Xfinity xFi, AT&T BGW, Verizon Fios)
Short version: these almost never support CAKE or real SQM. The standard fix is bridge mode (or AT&T's IP-passthrough) with your own CAKE-capable router behind it. On Xfinity xFi this is on the Admin Tool at 10.0.0.1 → Gateway → At a Glance → Bridge Mode. On AT&T BGW210 / BGW320 it's in Firewall → IP Passthrough. On Verizon Fios Gateway it's in Advanced → Network Settings → Network Connections → Broadband → Settings.
You lose the ISP's mesh / 2.4-5-6 GHz Wi-Fi, but you gain a router you can actually tune. This is by far the most common upgrade path.
The "no-knobs" router (Apple AirPort, Google Nest Wifi, Eero)
Apple AirPort is discontinued and has no knobs. Google Nest Wifi has basic device prioritization but no CAKE. Eero Pro 6/6E offers "Eero Plus" which is not queue management. For bufferbloat, these platforms require the same fix as the ISP case: put a real router in front, run the no-knobs device in AP-only mode (Eero "Bridge Mode"; Nest Wifi disable gateway).
4. The most common setup mistakes
- Shaping to the plan speed instead of the measured speed. Your ISP delivers less than the plan number during peak hours. If your shaper is set to the plan, the real bottleneck is upstream, outside your queue. Set to 90% of measured.
- Only shaping download. Upload bufferbloat is usually worse and is what kills calls / uploads / screen-sharing. Both directions need limits.
- Wrong link-layer setting. On DSL, skipping
ATMaccounting costs you 8-15% of effective throughput. On DOCSIS, pickingDOCSISoverhead is a small but free win. - Running CAKE on a CPU that can't keep up. If your router's CPU pegs at 100% during a saturated download, you'll cap below your line speed. Check CPU load during a 5-second test; replace the router if it can't handle your plan.
- Putting the shaper on the wrong interface. SQM goes on the WAN interface (the one facing your modem/ISP), not on the LAN or a wireless interface.
5. Verify the fix
Immediately after enabling CAKE, run a loaded-latency test for at least 10 continuous minutes. You want to see:
| metric | before fix | after fix (target) |
|---|---|---|
| loaded − unloaded latency | > 150 ms | < 30 ms |
| download (sustained) | varies | > 85% of measured cap |
| upload (sustained) | varies | > 85% of measured cap |
| jitter during saturation | > 30 ms | < 5 ms |
The continuous-monitoring view on y2kdash is the fastest way to confirm. Put it on a second monitor, trigger a few family-style mixed workloads (Netflix + Zoom + a big download), and watch the loaded-latency line. With CAKE correctly configured, the line stays flat.
6. If it's still broken after CAKE
Three things to check, in order:
- Are you still behind an ISP gateway? If so, your CAKE is only shaping the link between your router and the gateway. The gateway's own queue is still producing bufferbloat. Bridge mode.
- Is your Wi-Fi the actual bottleneck? On a crowded 2.4 GHz band, airtime contention produces effects that look like bufferbloat but live in the AP, not the WAN. Test with a wired client to isolate.
- Is your upload cap realistic? Cable upload plans frequently deliver well below the sticker number. Re-measure during peak hours and reset the upload limit.
7. FAQ
What is bufferbloat in simple terms?
Bufferbloat is latency that appears only when your connection is busy. When a large download fills your router's packet buffer, every other packet (a click, a voice frame, a game move) waits in line behind it. The result is a fast connection that feels terrible under load.
How do I know if I have bufferbloat?
Run a loaded-latency test and compare your idle ping to your ping during a saturated download. If the difference is more than 100 ms, you have bufferbloat. A healthy connection stays within 30 ms of its idle ping even under full load.
Does a faster internet plan fix bufferbloat?
No. Bufferbloat is a queuing problem, not a throughput problem. A 1 Gbps plan with bufferbloat will still feel laggy under load. Enabling queue management (CAKE, FQ-Codel) on your router is the real fix, and it works on any speed plan.
What is CAKE and why is it better than regular QoS?
CAKE (Common Applications Kept Enhanced) is a modern Linux queue discipline that combines shaping, fair queuing, and active queue management in one policy. Unlike old-school per-application QoS that requires classifying every flow, CAKE just keeps every flow's queue tiny. The effect is that voice, gaming, and browsing traffic stay responsive even when one flow is saturating the link.
Why do I need to set the bandwidth limit below my ISP speed?
Queue management only works if your router is the bottleneck. If you set CAKE to your full line speed, the queue forms at your ISP's router instead, and you get no benefit. Setting the limit to 85-95% of your measured throughput keeps the queue where CAKE can manage it.
Can I fix bufferbloat on an ISP-supplied router?
Usually not directly. Most ISP-supplied routers (Xfinity xFi, AT&T BGW, Verizon Fios Gateway) lack SQM or CAKE in their firmware. The standard workaround is to put the ISP device in bridge or IP-passthrough mode and run your own router with CAKE behind it.
Is CAKE better than FQ-Codel?
CAKE is newer and generally better for home connections because it includes shaping (so you don't need a separate HTB layer) and handles asymmetric links (cable, DSL) cleanly. FQ-Codel is still excellent and is lower overhead on slower CPUs. For CPUs that can handle it, prefer CAKE.
After you flip on CAKE, let y2kdash run for 10 minutes with a saturated download going. The loaded-latency line tells you, honestly, whether the fix is real.
> LAUNCH Y2KDASH →