Free

Free coded apps to suit all. No sign up, no email, usable offline, updates when I can, feedback welcome. Send feedback

How-to

How to speed up an FTP upload of many small files

FTP by Zaweba sends files side by side, each on its own connection. Set 1 to 10 at once in File > Options (3 by default) to upload many small files faster.

How to speed up an FTP upload of many small files

Uploads and downloads in FTP by Zaweba run side by side, each on its own connection, and you choose how many at once in File > Options > Transfers. The range is 1 to 10 and the default is 3. Raising it is the single biggest change you can make when a site has thousands of small files, because the time spent starting each file is shared across several connections instead of being paid one after another.

There's a limit to how far you can push it, set by your host rather than the app. Here's how to find the right number.

Changing the setting

Open File > Options and go to Transfers. Set the number of files at once. Start with 4 or 5 if the default feels slow, and try it on a real upload, such as Put Newer to Server or Put All, watching the transfer queue in the bottom panel.

If it's clearly faster and nothing fails, you can try a step higher. If you start seeing refused connections, step back down.

When the server says no

Many shared hosts cap how many connections one account may open. When a server refuses another, it usually replies with a 421 error. FTP by Zaweba handles that for you: it carries on with the connections it already has, notes it in the log, and uses that number from then on. Your upload doesn't fail; it just runs at the speed the host allows.

That makes it fairly safe to try a higher number. The worst case is that the app settles on whatever the host permits.

Other ways to make an upload quicker

The fastest file is one you don't send. A few habits cut the list itself.

Upload only what changed. Put Newer to Server sends only local files newer than the server copy or missing there. Put Recent to Server is quicker still, as it doesn't scan the server first; it lists files you changed in the last few minutes, hours or days.

Exclude what the website doesn't need. Each site in Site Manager has an Exclude box, one pattern per line. Development folders such as node_modules, log files (*.log) and cache folders (cache/**) can be huge collections of tiny files that the live site never reads. Once excluded, they're never transferred.

Shrink images before they go up. Save for Web in FTP by Zaweba saves a smaller copy of a picture, with a quality setting and an optional maximum width, and a live preview of the result and its file size. Smaller files make every later transfer of them quicker too.

Keeping it orderly

Running several transfers at once doesn't mean things happen out of order where it matters. Deletes and renames wait for earlier queued transfers, so a folder is only deleted after its contents. You can still cancel queued or running transfers from the queue, retry failed ones and clear finished rows.

The same thinking applies to Disk, the app's view of server space, which has its own per-site scan connections setting. Three is described as safe on shared hosts, and it backs off on 421 errors in the same way.

A sensible starting point

Leave it at 3 on a host you don't know. Try 5 on a decent host, then 8 if all goes well. If you look after many sites on different hosts, settle on whatever value works for the strictest, because the setting is in File > Options for the app rather than per site.