1. Under your hosting provider cPanel create a subdomain. Ideally move it outside of your public_html folder. The domain name can be: dev.mywebsite.com or test.mywebsite.com
3. If the site isn’t too large use the backup feature and archive the uploaded files. This may take a while so go grab a coffe or something.
If this fails (sometimes the backup fails do to running out of memory or other server issues), try backing up with just the database, no archived files. You will have to transfer the uploaded folder manually then.
If all backup attempts fail, export the MySQL table manually, and transfer the uploaded folder.
4. Export the theme and import to the dev site. Just a small observation here, you need to make sure the theme names are different. Just in case your custom theme is using default-theme name you’ll need to change that to something else otherwise this will conflict.
Migrating changes back to live version
After you have implemented design changes, you could transfer those back to the live version by repeating the steps 4 or FTP the updated files manually.