There are lots of ways to migrate a WordPress site. Lots of plugins can do it. You can do it over simple (S)FTP. But the quickest way I know of is via rsync and WP-CLI. But that does come with an important proviso: you need to have access to a shell (via a simple local terminal or SSH) to both ends of the migration.
Read Full Tutorial