why raspberry pi wifi is slow

8 Reasons Your Raspberry Pi Wi-Fi is Slow (and How to Fix it)

Whenever my Raspberry Pi is slow over Wi-Fi, I’ve learned that the problem is usually not the Wi-Fi network itself. Most of the time, it comes down to the Pi’s setup. And when you look into it, it’s often one of the same few causes. If you’re having the same issue, here are the first things I’d check.

Slow Raspberry Pi Wi-Fi is usually caused by power-saving settings, weak signal, an incorrect country code, an older board, or a network configuration issue. Checking these common causes in order will normally reveal the fix.

These might sound like a pretty broad range at first (that’s Wi-Fi for you), but I’ll be sharing specific steps you can use to check for these problems and solutions you can apply today.

If you’re new to Raspberry Pi or Linux, I’ve got something that can help you right away!
Download my free Linux commands cheat sheet – it’s a quick reference guide with all the essential commands you’ll need to get things done on your Raspberry Pi. Click here to get it for free!

If you click our links and make a purchase, we may earn an affiliate commission. Learn more

Wi-Fi Power Save Mode

I swear this is the #1 cause when I have a weird Wi-Fi issue on the Raspberry Pi. And I find this problem can happen on many different operating systems.

The Raspberry Pi comes with a built-in power-saving mode that puts the onboard Wi-Fi module to sleep.

You can check if this mode is active by entering this command from a terminal:
iw wlan0 get power_save

A telltale sign is when you’re using SSH and the Pi is sometimes responsive, followed by long pauses or disconnects. The problem is the Wi-Fi power-saving mode kicking in too aggressively. Personally, it’s one of the first things I always turn off for a wireless setup.

Luckily, the latest Raspberry Pi OS (trixie) has an option to disable Wi-Fi power saving:

  • Launch the Raspberry Pi Software Configuration Tool:sudo raspi-config
  • Go to Advanced Options > A12 WLAN Power Save.
  • Select No to disable Wi-Fi power saving.
  • This setting will be immediately applied and persist on reboot.

But what if you’re using an operating system that doesn’t come with raspi-config?
In that case, you can disable Wi-Fi power saving manually from the command line:
sudo iw dev wlan0 set power_save off

Something not working as expected?
You can get answers from real experts in minutes.
Get help with your setup

Unfortunately, this command won’t save the setting on reboot. To make it permanent, you’ll have to find a way depending on your system’s network daemon. For instance, this solution works on Linux distros using NetworkManager.

Tip: Command lines can be a pain to memorize. I put the essential Linux commands on a printable cheat sheet so you don't have to keep googling them. You can grab the PDF here if you want to save some time.

Wrong Wi-Fi Country Code

I’m not quite sure why the Raspberry Pi doesn’t automatically do this for you, but you have to tell it which country you’re in to get its wireless module to work at full speed. If your country setting is missing or wrong, your Pi can restrict its wireless capabilities to obey local laws.

To get the fastest wireless speeds and best connection quality on the Raspberry Pi, you should always set your Wi-Fi country code.

Here’s how to set the country code on Raspberry Pi OS Desktop:

  • Launch the Raspberry Pi Control Centre.
    (You can find it under the Pi menu > Preferences > Control Centre.)
  • Find the Localisation tab, and click Set WLAN Country.
  • Select your country from the drop-down menu.

Here’s how to do it from the terminal for Raspberry Pi OS Lite:

But what if you’re using a different operating system? In that case, you’ll have to use other tools. On many Linux distros, you can check your country code using:iw reg get

And then change it with:
sudo iw reg set <code>(Replace <code> with the two-letter abbreviation for your country.)

Is Your Case the Culprit?

There are so many cool cases for the Raspberry Pi, and we’ve covered many of them on this site. But what many of them don’t tell you is that they can make wireless connections worse.

Recommended next step
Master Raspberry Pi in 30 Days

If you want a clearer path than jumping from tutorial to tutorial, my book gives you a step-by-step roadmap to really understand your Raspberry Pi.

Check the book here

Some cases, especially ones made of metal, can block wireless signals. It might not be an issue when sitting relatively close to your router, but it becomes more apparent the farther away your Raspberry Pi goes.

Argon ONE V3, an aluminum case for the Raspberry Pi 5

How can you tell if your case is the source of your woes?
Try doing a comparison test:

  • Remove the Raspberry Pi from its case so that it’s naked to the air.
  • Now run a speed test, and write down the result.


  • Put the case back on, and run the speed test again.

Is the wireless speed significantly lower when it’s in the case?
If yes, there’s your answer: the case is hampering the signal.

One fix is to move your Raspberry Pi closer to your router. Another option is to swap the case for a non-metallic one. We’ve already done a review of the best cases if you’re interested:

An external USB Wi-Fi adapter can also help if you really want to keep the case and its location.

The Pi Keeps Connecting to a Slow Network

The Raspberry Pi can connect to newer and faster 5 GHz wireless networks, but it can also connect to the older and slower 2.4 GHz standard. Many routers broadcast both frequencies under a single combined name. The router then decides which frequency band to put client devices on.

Sometimes your Raspberry Pi is sent to the slower network. You’d only want the 2.4 GHz band when you care about range more than speed. Whenever possible, you want to connect to the 5 GHz network to get faster speeds and less interference.

You can check which frequency band you’re connected to with this command:
iwlist wlan0 frequency

Oops, my Pi accidentally ended up on the slower 2.4 GHz network again.

There might be a few reasons your Raspberry Pi can’t drive on the faster 5 GHz highway, so let’s go over the most common situations.

Cause #1 – Your router isn’t broadcasting a 5 GHz network.
It’s unlikely, but you could have an ancient router that can’t do 5 GHz. But if your router says “dual-band” or “tri-band” on the box, then it should be capable. There’s also the possibility that you never enabled it or never created a 5 GHz network.

Solution – Create a 5 GHz network.
You’ll have to log in to your router’s admin panel to create a 5 GHz wireless network. If you find that your router can’t do this, then you’ll have to purchase a newer model (like this one).

(credit: GL.iNet)
Routers labelled ‘dual-band’ or ‘tri-band’ can broadcast a 5 GHz network. (credit: GL.iNet)

Cause #2 – Your router has “client steering” or “band steering” enabled.
Steering automatically moves devices between the 5 GHz and 2.4 GHz networks whenever the router thinks it’s helpful to do so. Unfortunately, this can switch your Raspberry Pi onto the slower network without you realizing it. Turn off steering to prevent this from happening.

Solution – Disable steering in your router settings.
Another way I deal with this issue is to separate my bands by giving them different names. That way, one network is only 5 GHz, and the other is always 2.4 GHz. Since the Pi is told to connect to the 5 GHz network only, it can never jump onto the slower network by accident.

Band steering sounds good until it leads to weird problems you can’t pinpoint.

Cause #3 – Your network’s Wi-Fi security protocol is set to WPA2/WPA3.
WPA3 is a superior password encryption standard for Wi-Fi, but it’s stricter, and the Raspberry Pi has problems negotiating a connection even when the network is set to mixed WPA2/WPA3. When it fails, the Pi will connect to a less restrictive 2.4 GHz network when available.

Solution – Set the Wi-Fi security to WPA2 instead.
By setting your network to the more backwards-compatible WPA2 security protocol, your Pi should be able to connect. Just make sure you set a strong password so your Wi-Fi won’t get hacked. (Maybe WPA3 will be supported when they eventually release the Raspberry Pi 6.)

My Raspberry Pi can’t connect to networks that use WPA2/WPA3 security.

You’re Running an Outdated Release

Firmware is the software your system uses to support its hardware. Raspberry Pi OS is based on Debian, which freezes the firmware on release. Even if you do a regular system update, you’ll still be getting firmware that can be a year or more behind.

One area that I see making great strides every year is Wi-Fi and Bluetooth support. If you’re still using an older release, you might be missing out on newer firmware that could give you more reliable connections and improved download speeds.

To identify the release of your system, try this command:
cat /etc/os-release

‘Trixie’ is the current release of Raspberry Pi OS as of this writing, so if your codename says ‘bookworm’ or ‘bullseye,’ you’re on an older release. This can also be true if you’re running any other Debian-based operating system, like Linux Mint, Armbian, or MX Linux.

The solution is to upgrade to the newest release. If you don’t need to save your existing setup, it’s easier to just install the newest release from scratch.

Older Boards Come with Slower Wi-Fi Adapters

Wi-Fi 7 is available on the consumer market, but to keep the Raspberry Pi inexpensive, it comes with wireless modules that are a little behind. If your wireless speeds feel sluggish, it could be that your board doesn’t have the technology for higher speeds.

To understand what Wi-Fi technology your Raspberry Pi comes with, find your model below:

ModelWi-Fi Capability
Raspberry Pi 5
Raspberry Pi 500 / 500+
Raspberry Pi 4
Raspberry Pi 400
Raspberry Pi 3B+
Raspberry Pi 3A+
Wi-Fi 5
Dual-band 802.11ac
200 Mbps – 600 Mbps
Raspberry Pi 3B
Raspberry Pi Zero W / Zero 2W
Raspberry Pi Pico W / Pico 2W
Wi-Fi 4
Single-band 802.11n
70 Mbps to 150 Mbps
Raspberry Pi 2
Raspberry Pi 1
Raspberry Pi Zero
Raspberry Pi Pico
No built-in Wi-Fi

If you’re using an older model, you’ll only be able to use Wi-Fi 4, which uses the 2.4 GHz band and has lower max speeds overall. So even if your router is capable of Wi-Fi 6, your Pi can’t take advantage of the newer technology.

Also: The Raspberry Pi projects that pay for themselves

The fix is to get your Raspberry Pi a better wireless adapter.
Some options:

Inadequate Power Throttles the Wi-Fi Module

Here’s another hardware issue on the Raspberry Pi that you might not expect. I had a situation where my Raspberry Pi connected to the internet fine via Wi-Fi, but wireless speeds were terrible. After switching to a better power supply, my download speed tripled.

When a Raspberry Pi isn’t supplied adequate power, the wireless module is the first component to get throttled.

Run this command from a terminal to check if your Raspberry Pi is having power issues:
vcgencmd get_throttled

“0x0” is the output you want to see here. Anything else, like “0x50005” for instance, could mean that you’re not providing the right type of power.

The solution is to use an official power supply. Ditch the phone chargers, as they’ll work sporadically but often aren’t rated to properly handle the Raspberry Pi 3 or 4. The Raspberry Pi 5 is even more picky about power requirements because it requires a nonstandard voltage.


🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

Still stuck after following this guide? Drop your question in the RaspberryTips Community — real Pi users answer fast. Post your question here.

Poor Wireless Signal Quality

If you’ve exhausted all the options above, it could be that your issue more broadly is poor wireless signal quality. Your desktop might show that you have enough bars, but that can be misleading. It doesn’t always mean that your Raspberry Pi has a stable connection.

To check how stable the wireless connection is, let’s install wavemon:
sudo apt install wavemon

Now you can type ‘wavemon’ in your terminal to get a live view of your connection quality.

Measuring wireless signal quality using wavemon

I find “signal level” to be the most useful metric here. The closer it is to 0, the better your connection quality. Here’s a chart to help you understand what the numbers mean:

Signal LevelWireless Signal Quality
0 dBm to -30 dBm Excellent
-31 dBm to -67 dBmGood
-68 dBm to -70 dBmOkay
-71 dBm to -80 dBmPoor
-81 dBm to -90 dBmTerrible
(source: Oscium)

Poor signal quality is the hardest issue to troubleshoot. The root of the problem can be your wireless setup in general and not the Raspberry Pi itself. I’ll try to cover the most common reasons for poor signal quality below.

Cause #1 – The Raspberry Pi is too far from the router.
There’s a limit to how far wireless signals can reach, and the farther your Pi is from the router, the weaker the wireless signal will be.

Solution: Improve the signal strength.
You can move the Pi closer to your wireless router to increase the signal.
Or, you can plug in a Wi-Fi extender midway between to boost the signal’s range.

A Wi-Fi extender can improve wireless coverage.

Cause #2: Too many other wireless devices nearby.
Wireless communications from different devices can collide and interfere with each other, and this effect is more of a problem the more devices that are talking close together.

Solution: Reduce the number of wireless sources nearby.
Simply move your Raspberry Pi away so it’s not sitting right next to other wireless devices.
I would also disable the Bluetooth controller on the Raspberry Pi if it’s not being used.

Disabling Bluetooth on Raspberry Pi OS

Cause #3: Wireless network overcrowding.
In an apartment complex or crowded neighborhood, there will probably be many other wireless networks. If you’re all broadcasting on the same wireless channel, then it will create a traffic jam in the airwaves.

Solution: Broadcast your network on a less crowded channel.
Most routers today will try to automatically choose an uncrowded channel for you. However, I find this feature doesn’t work that well. Instead, I prefer to disable it and set the channel manually.

(credit: Eye Networks)
Scanning for channel overlap on wireless networks (credit: Eye Networks)

On your router, you probably have a scan feature that shows you which channels are being used by neighboring wireless networks. With this information, you can then modify yours to broadcast on a less crowded channel, reducing interference.

Whenever you’re ready, here are other ways I can help you:

Test Your Raspberry Pi Level (Free): Not sure why everything takes so long on your Raspberry Pi? Take this free 3-minute assessment and see what’s causing the problems.

The RaspberryTips Community: Need help or want to discuss your Raspberry Pi projects with others who actually get it? Join the RaspberryTips Community and get access to private forums, exclusive lessons, and direct help.

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

Master Linux Commands: Overwhelmed with Linux commands? This book is your essential guide to mastering the terminal. It includes practical tips, real-world examples, and a bonus cheat sheet to keep by your side.

You can also find all my recommendations for tools and hardware on this page.

Similar Posts

Leave a Reply

Community members only
Comments are reserved for RaspberryTips Community members. Join the community to ask questions, get help, and interact with other Raspberry Pi users.

Join the community  or  log in