WordPress stores its own address in the database in many places, so a domain change is more than pointing DNS.
The serialisation trap – read this first
Do not run a plain find-and-replace over a database dump. WordPress stores much of its data serialised, and serialised data records the length of each string. Change example.com to example.co.uk with a blunt replace and every string length is now wrong, so those settings silently fail to load – widgets vanish, theme options reset, plugin settings revert.
Use a tool that understands serialisation: WP-CLI's search-replace, or one of the well-known search-and-replace scripts, or a migration plugin. They rewrite the lengths correctly.
The order
- Copy files and database to the new location and get it working before changing DNS – use your hosts file to preview it
- Run a serialisation-aware search and replace for the old address
- Update Site Address and WordPress Address
- Save permalinks to rewrite .htaccess
- Point DNS, then confirm the certificate is issued for the new name
Do not forget
- Redirect the old domain permanently to the new one, and keep it
- Update analytics and search console
- Check any hard-coded URLs in theme files and custom fields
- Re-test contact forms and any payment integration, since callbacks often carry the old address