← Back to All Blog Posts
Why Is Your Upload Speed So Slow? (It’s Not Always Your ISP)

Why Is Your Upload Speed So Slow? (It’s Not Always Your ISP)

You're twelve minutes into uploading a 4K video to YouTube, or you're trying to push a folder of RAW photos into Google Drive before a client meeting, and the progress bar just... stops. Meanwhile you run a speed test and your download number looks great. 400 Mbps down, no problem. Upload? 8 Mbps, and even that's stuttering.

Your first instinct is to call your ISP and yell into the phone. I get it. I've done it. But after spending more years than I'd like to admit crawling through router logs, swapping Ethernet cables at 1 AM, and staring at Wireshark captures for fun, I can tell you the ISP is often the least likely culprit. Your upload problem is probably sitting three feet from you, plugged into a wall.



Split screen showing a stuck video upload progress bar alongside a fast download speedtest result


A high download result doesn't mean your network setup is handling upload streams correctly.

Let's actually figure out what's going on.

The "Asymmetric Internet" Reality Check

Here's something most people don't realize until it bites them: your internet connection was never designed to be symmetrical.

Cable internet (the kind riding on coax, using DOCSIS) has historically carved out a small sliver of bandwidth for uploads and a much bigger chunk for downloads. A common ratio is somewhere around 10:1 or even 20:1. So if you're paying for "500 Mbps," don't be shocked when your actual upload cap is 20-35 Mbps. That's not a bug. That's the plan you bought.

Fiber connections (true symmetrical fiber, not "fiber to the node" hybrid setups) are the exception. If you've got real FTTH service, you might actually get 1000/1000. But a lot of people think they have fiber when they actually have a fiber backbone feeding a coax or DSL last-mile connection, which quietly reintroduces that asymmetry.

The takeaway: before you troubleshoot anything, check your actual plan specs, not just the "up to 500 Mbps" sticker on the modem box. If your plan says 20 Mbps upload, getting 18 Mbps is your setup working correctly, not broken.

Local Hardware Bottlenecks You Didn't Check

Assuming your plan actually supports faster uploads and you're still getting garbage speeds, it's time to look at your own gear. This is where 80% of "mystery" upload issues actually live.

Auto-negotiation stuck at 100 Mbps. This one's sneaky. Gigabit Ethernet ports are supposed to auto-negotiate the fastest speed both ends support. Sometimes they don't. A flaky cable, a cheap switch, or a driver quirk can cause the link to settle at 100 Mbps full-duplex instead of 1000 Mbps. On Windows, check Device Manager > Network Adapters > your NIC > Advanced tab > Speed & Duplex. If it's set to "Auto Negotiation" but Task Manager's network tab shows "100 Mbps" as your link speed, that's your bottleneck right there, and it caps your theoretical upload ceiling regardless of what your ISP provides.



windows wifi status window displaying connection link speed in mbps


Checking your Wi-Fi link speed in Windows status menu to ensure your wireless connection isn't throttling your upload potential.

Cheap or damaged Ethernet cables. Not every cable is created equal. Cat5e can technically do gigabit, but only over short, well-terminated runs. If someone crimped that cable in a hurry with a slightly off pinout, or it's been stepped on for three years, you can get intermittent drops and retransmissions that absolutely tank upload throughput. Cat6 gives you more headroom and better shielding against interference, especially if the cable runs near power lines.



cat5e vs cat6 ethernet cable marking print comparison


Not all cables are equal: Damaged pins or poorly shielded Cat5e runs cause subtle packet retransmissions.

Outdated NIC drivers. Realtek PCIe Gigabit Ethernet controllers are common on budget and mid-range motherboards, and their stock Windows Update drivers are, frankly, not great. I've personally seen upload speeds double after manually installing the latest driver straight from Realtek's site instead of relying on whatever Windows auto-installed. Same goes for laptop Wi-Fi chipsets. An old driver can mishandle TCP window scaling, which disproportionately hurts upload performance under sustained load.

Quick test: plug directly into your router with a known-good Cat6 cable and check your link speed before doing anything else. This single step eliminates half the possible causes in under two minutes.

The Silent Upload Killers

Even with perfect hardware, something else might be quietly eating your upload bandwidth in the background.

  • Cloud sync clients. OneDrive, iCloud Photos, Google Drive, Dropbox, they all love to sync in the background, and they're notorious for grabbing every last bit of available upload bandwidth without asking permission. If you've got OneDrive silently backing up a folder of videos while you're trying to upload something else, your upload pipe is already full before your actual task even starts.
  • Antivirus real-time scanning. Some antivirus suites intercept and inspect outbound packets in real time, adding latency and occasionally serious throughput loss, especially on lower-end CPUs. It sounds paranoid until you disable real-time protection for thirty seconds and watch your upload speed jump.
  • 2.4GHz Wi-Fi congestion. If you're uploading over Wi-Fi and sitting on the 2.4GHz band, you're sharing airtime with your neighbor's Wi-Fi, their microwave, their baby monitor, and half the smart plugs on the block. Wi-Fi 6's OFDMA helps a lot with efficient multi-device scheduling, but only if your router and device both support it and you're actually connected on 5GHz or 6GHz.

Fix it fast: open Task Manager (or Activity Monitor on Mac) and sort by network usage before you start your upload. If something's already chewing bandwidth, pause it manually.

Bufferbloat & Router Congestion

This is the one almost nobody talks about, and it's probably the most important section in this whole post.

When your upload pipe gets saturated, whether from a big file transfer, a video call, or a background sync, your router's buffer starts filling up with queued packets. If that buffer is oversized (which, ironically, a lot of consumer routers are, because manufacturers assumed "bigger buffer equals fewer drops"), packets sit there waiting instead of getting dropped and retried quickly.

The result is called bufferbloat, and it's brutal. Your latency under load can spike from 15ms to 400ms or more, even though your actual bandwidth usage hasn't changed. That's why your Zoom call gets choppy the second someone starts uploading a large file on the same network, even if there's technically "enough" bandwidth for both.

How to check it: run the Waveform Bufferbloat test (bufferbloat.net) while nothing else is happening, then run it again while actively uploading a large file. If your latency grade drops from an A to a D or F under load, congratulations, you've found your problem.



waveform bufferbloat test result grade f high latency under upload load


A typical Bufferbloat test result under heavy upload load showing severe latency spikes.

The fix is Smart Queue Management, usually abbreviated SQM, running an algorithm like FQ-CoDel or CAKE. These algorithms actively manage your queue depth and prioritize small, latency-sensitive packets (like your Zoom audio) over bulk transfers (like your file upload), instead of letting one starve the other.

  • If you're running OpenWrt or pfSense, enabling SQM with FQ-CoDel is usually a five-minute job in the settings.
  • Set your uplink bandwidth limit to about 85-95% of your actual measured upload speed, not the advertised speed. Setting it too high defeats the whole purpose.
  • Even stock firmware on newer routers (Netgear, TP-Link, ASUS) increasingly ships some form of "Adaptive QoS" or bufferbloat mitigation. Dig through the QoS menu, it might already be there.

Step-by-Step Diagnostic Routine

Here's the checklist I actually run through, in order, whenever someone tells me "my upload is dead":

  • Go wired. Plug directly into the router with a Cat6 cable, skip Wi-Fi entirely, and re-run your speed test. If upload jumps significantly, your Wi-Fi (or the device's wireless chipset) was the bottleneck.
  • Check your link speed. Confirm the NIC is actually negotiating gigabit, not silently sitting at 100 Mbps. Task Manager or ethtool on Linux will tell you instantly.
  • Kill background traffic. Pause every sync client, cloud backup, and update process you can find, then re-test.
  • Run the bufferbloat test under load. Start an upload, then immediately run the Waveform test. A bad grade here tells you it's a queue management problem, not a raw bandwidth problem.

Whichever step fixes it tells you exactly where to focus. If none of them help and your wired, isolated, bufferbloat-tested connection is still crawling, now you've got a legitimate case to bring to your ISP, and you'll sound like you know what you're talking about when you call.

Most people skip straight to blaming the ISP because it's the easiest villain. But nine times out of ten, the real fix is sitting in your own equipment closet: a bad cable, a stuck NIC negotiation, a sync app you forgot was running, or a router buffer that needs taming. Test the wired connection first. It takes five minutes and it'll save you an hour on hold.