Back to Blog
GuideFebruary 22, 2026·13 min read

How to Fix Bufferbloat on Your Router (Step-by-Step)

If you tested your connection at pong.com and received a bufferbloat grade of C, D, or F, your router is adding hundreds of milliseconds of latency every time your connection is busy. The good news: bufferbloat is one of the most fixable problems in networking. In many cases, you can go from an F grade (200ms+ latency under load) to an A grade (under 5ms) with a single settings change.

This guide covers four methods to fix bufferbloat, ranging from a quick settings change on your existing router to more advanced solutions. We will walk through each method step by step, explain when to use which approach, and show you how to verify the fix worked.

💡 Tip

Before you start: Run a bufferbloat test at pong.com and note your current grade and latency-under-load number. You will need this baseline to verify your fix worked. Write down your download and upload speeds too, as you will need them for SQM configuration.

Understanding Your Options

There are three main approaches to fixing bufferbloat, and the right one depends on what router you have and how comfortable you are with configuration changes:

Infographic: 3 Ways to Fix Bufferbloat (coming soon)

Method 1: Enable SQM (Smart Queue Management)

Smart Queue Management (SQM) is the single most effective fix for bufferbloat. SQM uses intelligent queue management algorithms, specifically fq_codel (Fair Queuing with Controlled Delay) or CAKE (Common Applications Kept Enhanced), to prevent buffers from bloating. Instead of letting packets pile up in massive queues, SQM keeps queues short by strategically dropping or delaying packets when congestion is detected. The result is that your latency stays low even when your connection is fully saturated.

CAKE is the newer and generally superior algorithm. It combines fair queuing, active queue management, traffic shaping, and flow prioritization into a single system. If your router supports CAKE, use it. If only fq_codel is available, that is still excellent.

SQM on OpenWrt

OpenWrt provides the best SQM implementation available on consumer hardware. If your router runs OpenWrt, follow these steps:

  1. Install the SQM package: Go to System > Software, click "Update lists", then search for and install the package called luci-app-sqm. This installs both the SQM backend and the web interface.
  2. Open SQM settings: Navigate to Network > SQM QoS in the LuCI web interface.
  3. Enable SQM: Check the "Enable this SQM instance" box.
  4. Set your interface: Select the WAN interface (typically eth0.2 or wan depending on your router).
  5. Set download speed: Enter your actual download speed in Kbps, but set it to 85-90% of your tested speed. If pong.com shows 100 Mbps download, enter 85000-90000. This headroom is critical; it allows SQM to manage the queue before your ISP's modem buffer fills up.
  6. Set upload speed: Similarly, enter 85-90% of your tested upload speed in Kbps.
  7. Select queue discipline: Under the Queue Discipline tab, set both inner and outer disciplines to cake if available, otherwise use fq_codel.
  8. Set link layer adaptation: Under the Link Layer tab, select your connection type. For cable/DOCSIS, choose Ethernet with overhead" and set overhead to 44 bytes. For DSL, choose the appropriate DSL encapsulation. For fiber, Ethernet with overhead at 44 bytes works well.
  9. Save and apply: Click "Save & Apply" to activate SQM.
⚠️ Warning

The most common mistake is setting the speed values too high. If you set SQM speeds at 100% of your connection speed, the ISP modem's buffer fills before SQM can manage the queue, and you still get bufferbloat. Always use 85-90% of your actual measured speed. You can fine-tune this number up or down and re-test until you find the sweet spot between throughput and latency.

SQM on ASUS Merlin Firmware

ASUS routers running Asuswrt-Merlin firmware have built-in SQM support with fq_codel. This is a popular option because Merlin is easy to install on supported ASUS routers:

  1. Install Merlin firmware: Download the correct Merlin firmware for your ASUS model from the official Merlin website and flash it through the router's administration page under Administration > Firmware Upgrade.
  2. Enable Adaptive QoS with fq_codel: Go to Adaptive QoS > QoS. Enable QoS and set the QoS Type to Adaptive QoS.
  3. Set bandwidth: Enter your download and upload speeds at 85-90% of your actual measured speeds.
  4. Enable fq_codel: In newer Merlin builds, you can enable fq_codel under the advanced settings. Look for "Queue Discipline" and select fq_codel.
  5. Apply settings: Click Apply and wait for the router to reconfigure.

Method 2: QoS Settings on Consumer Routers

If your router does not support SQM natively, most consumer routers have some form of Quality of Service (QoS) settings. While traditional QoS is not as effective as SQM at eliminating bufferbloat, it can reduce the severity by prioritizing latency-sensitive traffic.

ASUS Routers (Stock Firmware)

  1. Log into your router at router.asus.com or 192.168.1.1
  2. Navigate to Adaptive QoS > QoS
  3. Enable QoS and select Adaptive QoS mode
  4. Set your bandwidth limits to 85-90% of your actual speeds
  5. Optionally prioritize gaming and video calling in the device priority list
  6. Click Apply

Netgear Routers

  1. Log into your router at routerlogin.net or 192.168.1.1
  2. Navigate to Dynamic QoS (on newer models) or QoS Setup
  3. Enable Dynamic QoS
  4. Run the speed test within the router interface to set bandwidth values, or manually enter 85-90% of your actual speeds
  5. Click Apply

TP-Link Routers

  1. Log into your router at tplinkwifi.net or 192.168.0.1
  2. Navigate to Advanced > QoS or NAT Boost (varies by model)
  3. Note: Some TP-Link models require disabling NAT Boost/CTF to enable QoS
  4. Enable QoS and set your upload and download bandwidth to 85-90% of actual speeds
  5. Add high-priority rules for gaming and video conferencing applications if available
  6. Click Save
ℹ️ Info

Traditional QoS on consumer routers typically reduces bufferbloat by 30-60%, compared to SQM which reduces it by 90-99%. If QoS alone does not get you to a Grade A or B on pong.com, consider Method 3 below.

Method 3: Flash OpenWrt or Replace Your Router

If your current router does not support SQM and basic QoS is not enough, you have two paths: flash your existing router with OpenWrt (if it is supported) or buy a router that supports SQM natively.

Option A: Flash OpenWrt on Your Current Router

OpenWrt is open-source router firmware that supports CAKE and fq_codel on hundreds of router models. Check the OpenWrt Table of Hardware (toh.openwrt.org) to see if your router is supported. Flashing OpenWrt replaces your router's stock firmware and gives you access to the full SQM implementation described in Method 1. The process varies by router brand and model, but generally involves downloading the correct firmware image and uploading it through your router's web interface.

⚠️ Warning

Flashing custom firmware carries a small risk of bricking your router if done incorrectly. Follow the OpenWrt wiki instructions for your specific model carefully. If you are uncomfortable with this, Method 3 Option B (buying a compatible router) is safer.

Option B: Buy a Router with SQM Support

If you would rather buy a solution than configure one, several routers come with SQM or CAKE support out of the box:

  • IQrouter: Specifically designed to fight bufferbloat. Ships with SQM pre-configured and auto-tunes your bandwidth settings.
  • Ubiquiti EdgeRouter: Enterprise-grade router with fq_codel support built in. Requires some configuration but very effective.
  • pfSense / OPNsense appliances: Open-source firewall/router platforms with excellent CAKE and fq_codel support. Ideal for advanced users.
  • GL.iNet routers: Many GL.iNet travel and home routers run OpenWrt natively and support SQM out of the box.
  • Any OpenWrt-compatible router: Buy a router listed as well-supported on the OpenWrt Table of Hardware, flash OpenWrt, and enable SQM.

Router Bufferbloat Support: Full Comparison

Infographic: Router Bufferbloat Support (coming soon)
Router / FirmwareSQM SupportAlgorithmEffectivenessSetup Difficulty
OpenWrt (any)Full SQM with CAKECAKE / fq_codelExcellent (Grade A)Medium (flash firmware + configure)
ASUS MerlinSQM with fq_codelfq_codelExcellent (Grade A)Easy (flash Merlin + enable)
IQrouterSQM pre-configuredCAKE / fq_codelExcellent (Grade A)Very Easy (auto-configured)
Ubiquiti EdgeRouterfq_codel built-infq_codelExcellent (Grade A-B)Medium (CLI configuration)
pfSense / OPNsenseFull CAKE supportCAKE / fq_codelExcellent (Grade A)Medium-Hard (firewall appliance)
ASUS stock (Adaptive QoS)Basic QoS onlyPriority queuingModerate (Grade B-C)Easy
Netgear (Dynamic QoS)Basic QoS onlyPriority queuingModerate (Grade B-C)Easy
TP-Link (QoS)Basic QoS onlyPriority queuingModerate (Grade C-D)Easy
ISP-provided routerNoneNonePoor (Grade D-F)N/A (not configurable)

Before and After: What to Expect

When SQM is properly configured, the improvement is immediate and dramatic. Here is what typical before-and-after results look like:

Infographic: Before and After Fixing Bufferbloat (coming soon)
MetricBefore (No SQM)After (SQM Enabled)Change
Idle Latency15ms15msNo change (expected)
Latency Under Load350ms22ms94% reduction
Bufferbloat GradeFA5 grade improvement
Max Throughput100 Mbps90-95 Mbps5-10% decrease (the trade-off)
Zoom During DownloadUnwatchableCrystal clearNight and day
Gaming During Stream200ms+ ping spikesStable 20ms pingFully playable

The only trade-off is a small reduction in maximum throughput, typically 5-10%. This is because SQM intentionally limits your bandwidth slightly below your connection's maximum to keep the queue short. A connection capped at 90 Mbps with Grade A bufferbloat is vastly better in practice than one running at 100 Mbps with Grade F bufferbloat. The 10% speed reduction is imperceptible for nearly all activities, while the latency improvement is transformative.

How to Verify the Fix Worked

After applying any of the methods above, you need to verify that bufferbloat has actually improved. Here is the process:

  1. Run a new test at pong.com: This is the most important step. Run the full connection health test and check your bufferbloat grade. You should see an improvement from your baseline test.
  2. Compare before and after: Your idle latency should be roughly the same. Your latency under load should be dramatically lower. Your bufferbloat grade should improve to A or B.
  3. Test under real-world conditions: Start a large download and simultaneously run the pong.com test. Or have someone stream 4K video while you test. The goal is to see your latency stay low even when the connection is busy.
  4. Fine-tune bandwidth settings: If your bufferbloat grade is still C or worse, try lowering your SQM bandwidth settings by another 5%. If your grade is A but you feel the speed is too limited, try raising it by 2-3% at a time and re-testing.
  5. Test at different times: Run tests during peak hours and off-peak to make sure the fix holds under varying conditions.

If you started with a Grade F and now have a Grade A or B, congratulations. Your Zoom calls will stay clear during downloads, your gaming will stay responsive when others are streaming, and web pages will load instantly even when your connection is busy. The internet experience you are paying for will finally match reality.

Ready to test your connection?

Measure your real-world speed, ping, jitter, and bufferbloat — free, no signup required.

Run Free Speed Test

Troubleshooting Common Issues

SQM Enabled But Bufferbloat Still Present

If you enabled SQM but your bufferbloat test still shows a poor grade, the most likely cause is that your bandwidth values are set too high. SQM can only manage queues that form inside your router. If you set SQM to 100 Mbps and your connection is 100 Mbps, the queue forms in your ISP's modem/CMTS before your router ever sees it. Lower your SQM bandwidth to 80-85% of your actual speed and test again.

Speed Dropped Too Much After Enabling SQM

If your speeds dropped more than 15% after enabling SQM, your bandwidth values might be set too low. Gradually increase them in 2-3% increments, testing your bufferbloat grade after each change. The goal is to find the highest bandwidth setting that still maintains a Grade A bufferbloat score.

Router CPU Cannot Handle SQM at High Speeds

SQM requires CPU processing for every packet. On some older or lower-end routers, the CPU cannot keep up with SQM at high speeds (300+ Mbps). If your throughput drops dramatically with SQM enabled, your router's CPU may be the bottleneck. Check your router's CPU usage while running a speed test. If it hits 100%, you may need a more powerful router. Modern routers with ARM processors (Qualcomm IPQ, MediaTek MT7622/MT7981) handle SQM at gigabit speeds without issue.

Double NAT or Modem/Router Combo Issues

If you have a modem/router combo from your ISP and you added your own router behind it, you may have a double NAT situation where bufferbloat occurs in the ISP device before your router's SQM can manage it. The fix is to put the ISP device into bridge mode so it acts only as a modem, letting your router handle all routing and queue management. Consult your ISP's support for instructions on enabling bridge mode.

Frequently Asked Questions

What is the best fix for bufferbloat?
The best fix for bufferbloat is enabling Smart Queue Management (SQM) with the CAKE or fq_codel algorithm on your router. SQM keeps packet queues short by intelligently managing traffic flow, reducing latency under load by 90-99%. Routers running OpenWrt, ASUS Merlin firmware, IQrouter, Ubiquiti EdgeRouter, and pfSense/OPNsense all support SQM. Set your SQM bandwidth to 85-90% of your actual tested speed for optimal results. After enabling SQM, verify the fix by running a bufferbloat test at pong.com.
Can I fix bufferbloat without buying a new router?
In many cases, yes. If your router has QoS (Quality of Service) settings, enabling them and setting bandwidth limits to 85-90% of your actual speed can reduce bufferbloat moderately. If your router is compatible with OpenWrt or ASUS Merlin firmware, flashing alternative firmware gives you access to full SQM support without buying new hardware. Check the OpenWrt Table of Hardware at toh.openwrt.org to see if your router is compatible. However, if your router has no QoS options and does not support alternative firmware, replacing it with a SQM-capable router is the most reliable fix.
What is SQM (Smart Queue Management)?
Smart Queue Management (SQM) is a network traffic management system that prevents bufferbloat by keeping packet queues short and intelligently managing congestion. SQM uses algorithms called fq_codel (Fair Queuing with Controlled Delay) or CAKE (Common Applications Kept Enhanced) to detect when queues are building up and take action before latency spikes. SQM works by limiting your throughput to slightly below your connection's maximum speed (typically 85-90%) and using active queue management to drop or delay packets strategically. The result is that latency stays low and consistent even when your connection is fully saturated.
Does QoS fix bufferbloat?
Traditional QoS (Quality of Service) partially reduces bufferbloat but does not eliminate it. QoS prioritizes certain types of traffic (like gaming or video calls) over others (like downloads), which means prioritized traffic experiences less delay. However, basic QoS does not address the root cause of bufferbloat, which is oversized buffers. Non-prioritized traffic still fills the buffers and experiences severe latency. SQM with fq_codel or CAKE is far more effective because it manages the queue itself rather than just reordering traffic within it. If your router only supports basic QoS, it is worth enabling, but expect a Grade B or C on bufferbloat tests rather than the Grade A that SQM achieves.
Which routers have the best bufferbloat protection?
The best routers for bufferbloat protection are those that support SQM with CAKE or fq_codel algorithms. Top choices include any router running OpenWrt (the largest selection and best CAKE implementation), IQrouter (pre-configured for bufferbloat elimination), ASUS routers with Merlin firmware (easy SQM setup), Ubiquiti EdgeRouter (enterprise-grade fq_codel), and pfSense or OPNsense appliances (full CAKE support with advanced features). Among consumer routers, ASUS Merlin-compatible models offer the best balance of ease of use and SQM effectiveness. For a plug-and-play solution specifically designed around bufferbloat, the IQrouter is the simplest option.

Ready to test your connection?

Measure your real-world speed, ping, jitter, and bufferbloat — free, no signup required.

Run Free Speed Test
Advertisement Space