The "mirror" command is all you need to copy/mirror a site with lftp:
$ lftp
lftp :~> connect ftp.domain.tld
lftp ftp.domain.tld:~> login <username>
lftp ftp.domain.tld:~> mirror
Here's a one liner:
$ lftp -e mirror -u <username>,<password> <host>
lftp hangs making data connection
Newer lftp client tries to connect by default using SSL but since FTP server doesn’t support this, it will hang at "making data connection".
Simply turn off ssl via:
set ftp:ssl-allow off
LftpFS
Try to use LftpFS - filesystem with caching for smart mirror of sites based on FUSE and LFTP.