Hi @ale.pixel, recommended method.
- Set live site to maintenance
- backup all files (except var/cache/*)
- backup database
- Remove maintenance to live site
- Edit sql backup file and change all prod.domain.ext to staging.domain.ext
- idem in .htaccess file
- import database
- change app/config/parameters.php to your staging sql server
- go to staging backoffice and change payment modules to test
- disable analytics like Google analytics to avoid staging to be indexing
- change robots.txt is not enough, just a recommendation 😞 I suggest you to protect with a .htpasswd
- Check for specific modules that communicate with external services like Brevo, Boxtal... if they have to be active in staging