Migrating a large website (several gigabytes) can be a tedious task to do from your workstation (with filezilla, for example). If you have a machine at a hosting provider with shell access, the lftp solution can quickly prove to be the ultimate alternative.

Retrieve the files:

lftp -e 'mirror /repertoir/distant /repertoir/local' -u login,password -p 21 www.host.com

Send the files:

lftp -e 'mirror -R /repertoir/local /repertoir/distant' -u login,password -p 21 www.host.com

Send the files with 10 simultaneous connections:

lftp -e 'mirror --parallel=10 -R /repertoir/local /repertoir/distant' -u login,password -p 21 www.host.com