Limiting download speed for wget keeps large transfers from saturating shared links or desktop connections. Throttling background downloads prevents sluggish shells, video calls, or web browsing while archives, images, or backups move across the network.

The wget client implements local throttling with the --limit-rate option, applying an average per-connection cap in bytes per second. When a cap is active, wget periodically sleeps during the transfer, interpreting suffixes such as k, m, and g as multiples of 1024 to keep the observed rate near the configured value.

Rate limiting remains approximate and must account for protocol overhead, server behavior, and competing traffic on the same link. Aggressively low caps can cause HTTP timeouts or extend jobs beyond maintenance windows, whereas overly generous limits may still produce brief bursts that stress upstream routers or metered connections; selecting conservative values and verifying actual throughput on the target Linux system avoids surprises in automation and scheduled tasks.

Steps to throttle download speed with wget:

  1. Open a terminal on the target Linux system with access to the network on which throttling is required.
  2. Decide on a maximum download rate in kilobytes or megabytes per second that leaves sufficient bandwidth for interactive workloads.
  3. Start a download with a conservative kilobyte-per-second cap using the --limit-rate option.
    $ wget --limit-rate=100k https://downloads.example.net/files/largefile.zip
    --2026-01-10 06:06:45--  https://downloads.example.net/files/largefile.zip
    Resolving downloads.example.net (downloads.example.net)... 203.0.113.50
    Connecting to downloads.example.net (downloads.example.net)|203.0.113.50|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 2097152 (2.0M) [application/zip]
    Saving to: 'largefile.zip'
    
         0K .......... .......... .......... .......... ..........  2% 76.8K 26s
        50K .......... .......... .......... .......... ..........  4%  158K 19s
       100K .......... .......... .......... .......... ..........  7% 77.7K 20s
       150K .......... .......... .......... .......... ..........  9%  157K 18s
       200K .......... .......... .......... .......... .......... 12% 78.5K 18s
       250K .......... .......... .......... .......... .......... 14%  158K 17s
       300K .......... .......... .......... .......... .......... 17% 78.1K 17s
       350K .......... .......... .......... .......... .......... 19%  153K 16s
       400K .......... .......... .......... .......... .......... 21% 79.3K 16s
       450K .......... .......... .......... .......... .......... 24% 77.8K 16s
       500K .......... .......... .......... .......... .......... 26%  153K 15s
       550K .......... .......... .......... .......... .......... 29% 78.1K 15s
       600K .......... .......... .......... .......... .......... 31%  160K 14s
       650K .......... .......... .......... .......... .......... 34% 77.1K 14s
       700K .......... .......... .......... .......... .......... 36%  160K 13s
       750K .......... .......... .......... .......... .......... 39% 77.2K 12s
       800K .......... .......... .......... .......... .......... 41% 78.8K 12s
       850K .......... .......... .......... .......... .......... 43%  157K 11s
       900K .......... .......... .......... .......... .......... 46% 77.4K 11s
       950K .......... .......... .......... .......... .......... 48%  161K 10s
      1000K .......... .......... .......... .......... .......... 51% 76.9K 10s
      1050K .......... .......... .......... .......... .......... 53%  160K 9s
      1100K .......... .......... .......... .......... .......... 56% 77.2K 9s
      1150K .......... .......... .......... .......... .......... 58%  156K 8s
      1200K .......... .......... .......... .......... .......... 61% 79.2K 8s
      1250K .......... .......... .......... .......... .......... 63% 76.8K 8s
      1300K .......... .......... .......... .......... .......... 65%  158K 7s
      1350K .......... .......... .......... .......... .......... 68% 78.1K 7s
      1400K .......... .......... .......... .......... .......... 70%  157K 6s
      1450K .......... .......... .......... .......... .......... 73% 78.3K 5s
      1500K .......... .......... .......... .......... .......... 75%  156K 5s
      1550K .......... .......... .......... .......... .......... 78% 78.2K 4s
      1600K .......... .......... .......... .......... .......... 80% 78.2K 4s
      1650K .......... .......... .......... .......... .......... 83%  155K 3s
      1700K .......... .......... .......... .......... .......... 85% 77.9K 3s
      1750K .......... .......... .......... .......... .......... 87%  156K 2s
      1800K .......... .......... .......... .......... .......... 90% 78.7K 2s
      1850K .......... .......... .......... .......... .......... 92%  158K 1s
      1900K .......... .......... .......... .......... .......... 95% 77.9K 1s
      1950K .......... .......... .......... .......... .......... 97%  154K 0s
      2000K .......... .......... .......... .......... ........  100% 74.9K=20s
    
    2026-01-10 06:07:05 (99.9 KB/s) - 'largefile.zip' saved [2097152/2097152]

    The --limit-rate value applies per connection, so multiple concurrent wget processes each receive their own cap.

  4. Apply a higher megabyte-per-second cap for faster links while still preventing full link saturation.
    $ wget --limit-rate=2m https://downloads.example.net/files/tool.tar.gz
    --2026-01-10 06:07:05--  https://downloads.example.net/files/tool.tar.gz
    Resolving downloads.example.net (downloads.example.net)... 203.0.113.50
    Connecting to downloads.example.net (downloads.example.net)|203.0.113.50|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 786432 (768K) [application/gzip]
    Saving to: 'tool.tar.gz'
    
         0K .......... .......... .......... .......... ..........  6%  131M 0s
        50K .......... .......... .......... .......... .......... 13%  110M 0s
       100K .......... .......... .......... .......... .......... 19%  249M 0s
       150K .......... .......... .......... .......... .......... 26%  135M 0s
       200K .......... .......... .......... .......... .......... 32%  328M 0s
       250K .......... .......... .......... .......... .......... 39%  114M 0s
       300K .......... .......... .......... .......... .......... 45%  155M 0s
       350K .......... .......... .......... .......... .......... 52%  191M 0s
       400K .......... .......... .......... .......... .......... 58%  241K 0s
       450K .......... .......... .......... .......... .......... 65%  121M 0s
       500K .......... .......... .......... .......... .......... 71%  108M 0s
       550K .......... .......... .......... .......... .......... 78% 76.8M 0s
       600K .......... .......... .......... .......... .......... 84%  208M 0s
       650K .......... .......... .......... .......... .......... 91%  244M 0s
       700K .......... .......... .......... .......... .......... 97%  260M 0s
       750K .......... ........                                   100%  233M=0.2s
    
    2026-01-10 06:07:05 (3.54 MB/s) - 'tool.tar.gz' saved [786432/786432]

    Suffixes k, m, and g are interpreted as kibibytes, mebibytes, and gibibytes per second, respectively, using a base of 1024.

  5. Combine throttling with recursive or scripted downloads to keep large mirroring jobs from monopolizing bandwidth.
    $ wget --limit-rate=300k --recursive --no-parent https://www.example.com/repo/
    --2026-01-10 06:07:05--  https://www.example.com/repo/
    Resolving www.example.com (www.example.com)... 203.0.113.50
    Connecting to www.example.com (www.example.com)|203.0.113.50|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 174 [text/html]
    Saving to: 'www.example.com/repo/index.html'
    
         0K                                                       100% 10.9M=0s
    
    2026-01-10 06:07:05 (10.9 MB/s) - 'www.example.com/repo/index.html' saved [174/174]
    
    FINISHED --2026-01-10 06:07:05--
    Total wall clock time: 0.04s
    Downloaded: 1 files, 174 in 0s (10.9 MB/s)

    Very low limits for recursive transfers can stretch jobs across maintenance windows or quiet periods and increase the chance of remote timeouts or interrupted sessions.

  6. Monitor runtime bandwidth usage to confirm that effective throughput remains near the configured cap.
    $ sudo nethogs -t -c 2
    Adding local address: 192.0.2.40
    Ethernet link detected
    
    Refreshing:
    unknown TCP/0/0	0	0
    
    Refreshing:
    unknown TCP/0/0	0	0

    Tools such as nethogs, iftop, or interface graphs from monitoring systems help validate that throttled transfers behave as expected.

  7. Inspect the final summary line printed by wget to confirm that the reported average download speed does not exceed the configured limit.
    $ wget --limit-rate=100k https://downloads.example.net/files/largefile.zip
    --2026-01-10 06:07:07--  https://downloads.example.net/files/largefile.zip
    Resolving downloads.example.net (downloads.example.net)... 203.0.113.50
    Connecting to downloads.example.net (downloads.example.net)|203.0.113.50|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 2097152 (2.0M) [application/zip]
    Saving to: 'largefile.zip.1'
    
         0K .......... .......... .......... .......... ..........  2% 77.2K 26s
        50K .......... .......... .......... .......... ..........  4%  159K 19s
       100K .......... .......... .......... .......... ..........  7% 77.3K 20s
       150K .......... .......... .......... .......... ..........  9%  157K 18s
       200K .......... .......... .......... .......... .......... 12% 78.5K 18s
       250K .......... .......... .......... .......... .......... 14%  157K 17s
       300K .......... .......... .......... .......... .......... 17% 78.4K 17s
       350K .......... .......... .......... .......... .......... 19%  154K 16s
       400K .......... .......... .......... .......... .......... 21% 78.6K 16s
       450K .......... .......... .......... .......... .......... 24% 78.3K 16s
       500K .......... .......... .......... .......... .......... 26%  156K 15s
       550K .......... .......... .......... .......... .......... 29% 77.5K 15s
       600K .......... .......... .......... .......... .......... 31%  157K 14s
       650K .......... .......... .......... .......... .......... 34% 78.4K 14s
       700K .......... .......... .......... .......... .......... 36%  152K 13s
       750K .......... .......... .......... .......... .......... 39% 78.3K 12s
       800K .......... .......... .......... .......... .......... 41% 78.8K 12s
       850K .......... .......... .......... .......... .......... 43%  155K 11s
       900K .......... .......... .......... .......... .......... 46% 78.1K 11s
       950K .......... .......... .......... .......... .......... 48%  155K 10s
      1000K .......... .......... .......... .......... .......... 51% 77.8K 10s
      1050K .......... .......... .......... .......... .......... 53%  161K 9s
      1100K .......... .......... .......... .......... .......... 56% 77.1K 9s
      1150K .......... .......... .......... .......... .......... 58%  160K 8s
      1200K .......... .......... .......... .......... .......... 61% 77.0K 8s
      1250K .......... .......... .......... .......... .......... 63% 78.1K 8s
      1300K .......... .......... .......... .......... .......... 65%  160K 7s
      1350K .......... .......... .......... .......... .......... 68% 77.8K 7s
      1400K .......... .......... .......... .......... .......... 70%  158K 6s
      1450K .......... .......... .......... .......... .......... 73% 77.1K 5s
      1500K .......... .......... .......... .......... .......... 75%  158K 5s
      1550K .......... .......... .......... .......... .......... 78% 78.6K 4s
      1600K .......... .......... .......... .......... .......... 80% 77.3K 4s
      1650K .......... .......... .......... .......... .......... 83%  156K 3s
      1700K .......... .......... .......... .......... .......... 85% 78.7K 3s
      1750K .......... .......... .......... .......... .......... 87%  155K 2s
      1800K .......... .......... .......... .......... .......... 90% 78.9K 2s
      1850K .......... .......... .......... .......... .......... 92%  152K 1s
      1900K .......... .......... .......... .......... .......... 95% 78.3K 1s
      1950K .......... .......... .......... .......... .......... 97%  155K 0s
      2000K .......... .......... .......... .......... ........  100% 75.9K=20s
    
    2026-01-10 06:07:27 (100 KB/s) - 'largefile.zip.1' saved [2097152/2097152]

    An average rate at or below the configured limit indicates successful throttling, especially when cross-checked against external network monitoring.