I have found the Updraft Plus Plugin to be a great extension to aid in the development of sites. Updraft allows you to create backups of specific parts of your site: Plugins, Uploads, DB, Themes, and Other.
I have found that creating a backup with Updraft Plus, on Site A, then Installing Updraft Plus on a new WordPress installation for Site B, would in effect clone the site. However this does not change the code in the copy of the site.
So after you have restored the backup from Site A into Site B, you may notice the domain will forward to the old site. This is normal, you will need to change the Site and Home URLS first to the SiteB.
Here is a guide on how to do that: Change WordPress Home and Site URL
Once you have changed the URL, you will notice that you will be able to navigate to the site and you should be able to log into the WordPress Installation.
The last thing to do is to change the Hard-coded links you have used for SiteA in to the links for SiteB.
There is a WordPress Plugin called Velvet Blues URL updater which can be found in the WordPress plugin store.
Install this Plugin in your new WordPress installation and proceed to open the plugin. Once you have, you will notice it gives you two fields.
Replace the first field with Your old sites URL EX: http://sitea.com and then the second field with http://siteb.com
You will want to check all the boxes before proceeding. After it has completed the site should be effectively cloned. I have noticed that some Plugins and Themes may not work correctly doing this.
Generally the Plugin issue can be resolved by troubleshooting individual plugins using this guide: https://www.m4kr.net/troubleshooting-wordpress-plugins.
I will be adding more to this to further illustrate when I have more time.