Duplicator Migration 404 Error: Easy Solutions for WordPress Site Moves
When I use the “Duplicator” plugin to migrate WordPress sites from one VPS to another, I often encounter 404 errors on all pages. After spending some time troubleshooting, I found an effective solution and decided to document it for anyone facing similar issues.

My old VPS provider was Contabo, and I moved to a new VPS with Hostinger. When I used Duplicator to back up my websites, I noticed that the backup file was unusually small. Although it included the database file, I wasn’t sure why the archive was so compact.
Initially, my attempts to migrate the website with Duplicator always ended in error. I then switched to manually downloading all files and the database, uploading them to the new VPS. Despite these efforts, every migrated site displayed 404 errors on all pages.
I tried several other migration plugins, but each had its own issues and none resolved the problem. Eventually, I returned to Duplicator and tried again. I managed to create compressed backup files for migration, but the archive was still very small.
Without overthinking, I uploaded all files—installer.php and the archived zip file—to the root directory of the new VPS and ran installer.php. The extraction process went smoothly, but at the end, I encountered fatal login errors:

This meant I couldn’t log in to my dashboard, and all other pages returned 404 errors. I suspected that some files were missing from the backup created on the old VPS.
To resolve this, I manually downloaded all files from the root of the old VPS as a zipped archive. I deleted all previously uploaded files from the new VPS and uploaded the larger zipped file to the new VPS root directory.
Next, I edited the wp-config.php file with the new database credentials to connect the site to the newly created database. Since the new database was already populated during the installer.php process, there was no need to import anything further.
Before working on your new VPS website, don’t forget to point your domain to the new VPS by updating your domain’s DNS settings.
After these steps, I accessed the dashboard at mydomain.com/wp-admin, and everything worked perfectly.
I’m not sure if there’s a better solution, but if you encounter similar 404 errors while migrating your WordPress website to a new server, you can follow this guide to resolve the issue.