The short answer
Windows has no built-in setting that says "use Wi-Fi when the Ethernet has no internet". It prefers Ethernet whenever the cable's link is up. You can make Wi-Fi preferred by changing the interface metric, but that is a fixed setting: it won't notice the next failure and won't switch back. To switch back and forth by itself, something has to test the internet through each adapter and change the metric for you.
Why Windows stays on a cable with no internet
Windows ranks connections by their link, not by whether the internet behind them works, so a cable that is still plugged in keeps winning.
When more than one connection has a route to the internet, Windows sends traffic through the one with the lowest metric. By default the metric is automatic and based on link speed, so a wired adapter almost always gets a lower number than Wi-Fi, and Ethernet wins.
If the cable is unplugged, or the link goes down, the Ethernet route disappears and Windows falls back to Wi-Fi straight away. But if the cable stays connected and the router, modem or provider is what stopped working, the Ethernet adapter still has its link and its address. People in this situation commonly report that Windows keeps sending traffic over the cable, or takes a long time to move.
The "No internet" label in the taskbar comes from Windows' connectivity check. It tells you something is wrong; it is not a failover switch.
See which connection Windows prefers
The adapter with the lowest interface metric carries your traffic. Open PowerShell and list your adapters with their metrics:
Get-NetIPInterface -AddressFamily IPv4 |
Sort-Object InterfaceMetric |
Format-Table InterfaceAlias, InterfaceMetric, AutomaticMetric, ConnectionStateNote the exact names in InterfaceAlias, for example Ethernet, Ethernet 2 or Wi-Fi. You need them below.
To see the default routes themselves:
Get-NetRoute -DestinationPrefix 0.0.0.0/0Windows adds the route's own metric (RouteMetric) to the adapter's metric (ifMetric). The route with the lowest total carries your traffic.
Prefer Wi-Fi by hand
Run PowerShell as administrator, then give Wi-Fi a low metric and Ethernet a high one. Replace the names with yours.
Set-NetIPInterface -InterfaceAlias "Wi-Fi" -AutomaticMetric Disabled -InterfaceMetric 5
Set-NetIPInterface -InterfaceAlias "Ethernet" -AutomaticMetric Disabled -InterfaceMetric 100The change takes effect immediately; nothing disconnects. Without -AddressFamily, the commands set both the IPv4 and the IPv6 metric.
The same setting exists in the old Control Panel:
- Press Win + R, type
ncpa.cpland press Enter. - Right-click the adapter, choose Properties, select Internet Protocol Version 4 (TCP/IPv4) and choose Properties.
- Choose Advanced, untick Automatic metric and type a number in Interface metric.
- Do the same for Internet Protocol Version 6 if your network uses IPv6.
When the metric change seems to do nothing
Usually something else outweighs the new metric: a route metric, IPv6, a reconnect or a VPN. Threads titled "interface metric not working" are common, and these are the usual causes:
- The route metric is added on top. If one gateway's route has a much higher
RouteMetric, a small interface metric difference isn't enough. Compare the totals fromGet-NetRoute. - IPv6 has its own metrics. If you only changed IPv4 and the site is reached over IPv6, the old preference still applies there.
- The adapter reconnected. When an adapter reconnects it gets a fresh default route, which can undo the order you set. Check again after a reconnect or a reboot.
- A VPN is running. VPN adapters often add their own routes with very low metrics, and those win over both.
Put it back
To return to Windows' own ranking, turn automatic metrics back on:
Set-NetIPInterface -InterfaceAlias "Wi-Fi" -AutomaticMetric Enabled
Set-NetIPInterface -InterfaceAlias "Ethernet" -AutomaticMetric EnabledKeep Wi-Fi connected while the cable is plugged in
Check the Wi-Fi driver option and the Windows policy below, because either one can keep Wi-Fi disconnected while Ethernet is up. A backup only helps if it is ready.
- The Wi-Fi driver. Some adapters have an option such as Disable Upon Wired Connect under Device Manager → the Wi-Fi adapter → Properties → Advanced. It turns Wi-Fi off whenever a cable is connected, which is the opposite of what you want here.
- Windows Connection Manager. The policy Minimize the number of simultaneous connections to the Internet or a Windows Domain (Group Policy: Computer Configuration → Administrative Templates → Network → Windows Connection Manager) controls whether Windows keeps Wi-Fi connected next to Ethernet. If your Wi-Fi keeps dropping when you plug in a cable, check this policy.
What a manual fix can't do, and doing it automatically
A metric set by hand can't notice a failure or switch back; that needs something that tests each adapter and changes the metric for you. People handle that with scheduled scripts that ping and rewrite the metrics, which works but takes care to get right (testing through each adapter separately, not flapping, restoring the original state).
That is the job LAN Wi-Fi Manager does:
- Every 30 seconds by default, it pings the internet through the Ethernet adapter and through the Wi-Fi adapter separately, and checks DNS on each.
- After 2 bad LAN checks in a row it sets the metrics so Wi-Fi is preferred (the same
Set-NetIPInterfacechange as above). A LAN that is only slow or lossy is left alone unless the Wi-Fi is actually better. - After 2 good LAN checks it moves back, and when you quit it turns automatic metrics back on (so a metric you had set by hand is not kept).
- If the Wi-Fi is disconnected when it's needed, it first tries to connect it to your saved network.
LAN Wi-Fi Manager for Windows
Free, closed source, portable, no account. It needs administrator rights, and SmartScreen will warn you because the exe isn't code-signed (More info → Run anyway).