Why is my file transfer so slow?

Last updated: July 29, 2026

You are sending a video from your phone to the laptop sitting next to it, and the progress bar is moving like it is coming from another continent. The frustrating part is that sometimes it is fast, and sometimes the same two devices on the same network crawl. The difference almost always comes down to one thing: whether your two browsers found a direct path to each other, or fell back to a relay.

This guide explains what that means, how to check which one you are on, and what actually fixes it. It applies to any browser-based transfer built on WebRTC, which includes ShareBetweenDevices.

The two paths a transfer can take

When two browsers agree to send data to each other, they do not just open a pipe. They negotiate, and there are two possible outcomes.

Direct (peer-to-peer)

The data goes straight from one device to the other. On a shared Wi-Fi network the bytes never leave the building — they go phone → router → laptop. This is the fast path. On a modern home network you can expect somewhere between 20 and 80 MB/s, which means a 1 GB video lands in roughly 15 to 50 seconds. Your internet connection is not involved at all, so your upload speed is irrelevant.

Relayed (through a TURN server)

When the two devices cannot reach each other directly, the transfer falls back to a relay server that both sides can reach. Every byte travels up to that server and back down. Now your transfer is capped by the slower of the two internet connections — and specifically by the sender's upload speed, which on most home connections is a fraction of the download speed. A 1 GB file on a 20 Mbps upload takes about seven minutes instead of thirty seconds.

Same file, same two devices, same room. Ten times the wait.

How to tell which one you got

ShareBetweenDevices shows the connection type next to the progress bar while the transfer runs: Direct or Relayed. If you see Relayed on two devices that share a Wi-Fi network, something on the network is blocking the direct path, and the rest of this guide is for you.

Worth knowing: the connection type can change mid-transfer. The negotiation process tries several candidate paths at once and picks the first one that answers, then upgrades if a better one completes a moment later. A transfer that starts as Relayed sometimes switches to Direct a second or two in.

Why two devices on the same Wi-Fi still get relayed

This is the case that surprises people, and there are a handful of real causes.

Client isolation on the router

Also called AP isolation, client isolation, or station isolation. It stops devices on the same Wi-Fi from talking to each other, so every device can reach the internet but nothing else on the network. It is on by default on almost every guest network, on most hotel, cafe, airport and coworking Wi-Fi, and on some ISP-supplied routers. If both devices are on a guest SSID, this is almost certainly your answer.

Fix: move both devices to the main network rather than the guest one. On your own router, look for the setting in the wireless section and turn it off.

The two devices are not really on the same network

A few ways this happens without being obvious: one device is on Wi-Fi and the other is on mobile data because the Wi-Fi signal dropped; one is on the 2.4 GHz SSID and the other on a separate 5 GHz SSID that the router keeps in a different subnet; one is on a VLAN for IoT devices; or a mesh system is putting them on separate segments.

Fix: check that both devices show the same network name, and that the phone has not silently fallen back to mobile data.

A VPN is on

This is the single most common cause on otherwise healthy networks. A VPN routes your traffic through a remote server, so as far as the connection negotiation is concerned, your device is no longer on the local network at all. Even a privacy feature that quietly proxies traffic, such as some browser-level relay features, can produce the same effect.

Fix: turn the VPN off on both devices for the transfer, or use a VPN with a local-network exclusion (sometimes called local network access or LAN passthrough) and enable it.

Local network discovery is blocked

To protect your privacy, browsers no longer hand out your device's real local IP address during negotiation. Instead they publish a randomised name ending in .local, and the other device resolves it using mDNS — the same mechanism that finds printers and speakers on your network. If mDNS traffic is blocked, and many corporate and school networks block it deliberately, the two devices can never learn each other's local addresses and the direct path is impossible.

Fix: on a managed network, there is usually nothing you can do as a user other than switch to a network you control. On iOS, make sure the browser is allowed local network access in Settings → Privacy & Security → Local Network.

Strict NAT on both ends

When the two devices are on different networks, they have to find each other through their routers, which requires a technique called hole punching. It works with most home routers. It fails when both sides sit behind a strict type of address translation — common on mobile carrier networks, where hundreds of subscribers share one public address. Two phones on mobile data, on different carriers, will often end up relayed no matter what.

Fix: put at least one of the two devices on Wi-Fi.

A relayed transfer is still private

Worth being clear about, because "relayed" sounds like "someone else has my file". It does not. The connection is encrypted end to end between the two browsers, and the relay only ever forwards bytes it cannot read. It has no key. It stores nothing. The practical cost of a relay is speed, not privacy. If you want the detail, see is browser file transfer safe.

The quick checklist

  1. Are both devices on the same Wi-Fi network, and not the guest one?
  2. Is a VPN running on either device? Turn it off and retry.
  3. Has the phone fallen back to mobile data? Check the status bar.
  4. On a hotel, cafe or office network, assume client isolation is on. Use a personal hotspot from one of the two devices instead — both devices on the same hotspot gives you a clean local network.
  5. On iOS, confirm the browser has Local Network permission.
  6. If you are on mobile data on both devices, expect a relay.

What speed should I actually expect?

On a direct connection over a modern home Wi-Fi network, the bottleneck is usually the Wi-Fi link or the disk, not the transfer itself. Rough real-world numbers for a 1 GB file:

If a direct transfer is slower than these numbers, the limit is almost always the Wi-Fi link on one side. Moving the phone closer to the router, or switching it to the 5 GHz band, usually does more than anything else.

Ready to try it? Send a file and watch the connection indicator. If you are troubleshooting something else, the troubleshooting guide covers transfers that fail rather than crawl.

← Back to ShareBetweenDevices