WordPress Migration
For a single WordPress site, the All-in-One WP Migration plugin is the simplest path: it bundles files, database, themes, plugins, and uploads into one downloadable archive that you upload on the new server. This guide also covers the manual files-plus-database approach if you prefer.
Method 1: All-in-One WP Migration (Recommended)
Works for sites up to about 500 MB by default, or larger with the free server extension installed (see below).
Step 1: Export from the Old Site
- Log into your old WordPress admin (
https://yoursite.com/wp-admin). - Go to Plugins → Add New, search for All-in-One WP Migration, install and activate it.
- In the sidebar, open All-in-One WP Migration → Export.
- Click Export To → File.
- Wait for the export to finish, then click Download and save the
.wpressfile.
Step 2: Set Up a Fresh WordPress on Ultra Web Hosting
- Log into your new cPanel.
- Open Softaculous Apps Installer (under Software).
- Select WordPress and click Install Now.
- Choose the domain to install on, leave the directory blank (so it installs at the domain root), set an admin username and password, and click Install.
- Note the admin URL Softaculous gives you at the end.
Step 3: Import on the New Site
- Log into the new WordPress admin.
- Install and activate the All-in-One WP Migration plugin again.
- Go to All-in-One WP Migration → Import.
- Click Import From → File and select the
.wpressfile you downloaded earlier. - Click Proceed when the size confirmation appears.
- When the import finishes, you will be logged out. Log back in using your old WordPress admin credentials, because the import replaced the new install's user table with the old one.
Step 4: Save Permalinks
After any migration, WordPress permalinks need to be flushed:
- In the WordPress admin, go to Settings → Permalinks.
- Click Save Changes (no need to change anything).
Method 2: Duplicator (Alternative)
Duplicator is another good single-site option. The workflow is similar:
- Install Duplicator on the old site, create a package, download both the installer and archive.
- Upload both files to
public_html/on the new server via File Manager or FTP. - Create a fresh empty database on the new cPanel (under MySQL Databases) and note the database name, user, and password.
- Visit
https://yourdomain.com/installer.phpon the new server (you may need a temporary URL or a hosts-file edit; see From Another Host). - Follow the Duplicator installer's prompts, providing the new database credentials when asked.
Method 3: Manual (Files + Database)
For very large sites, complex multisite installs, or when you do not want to install a plugin:
Step 1: Export the Database
- Log into the old host's phpMyAdmin (usually accessible from the old cPanel).
- Select the WordPress database in the left sidebar.
- Click the Export tab.
- Choose Quick and SQL, then click Go.
- Save the
.sqlfile.
Step 2: Download the Files
- Connect to the old host with an FTP/SFTP client like FileZilla.
- Download the entire
public_html/contents (or the WordPress install directory if it is not at the root).
Step 3: Create the Database on Ultra Web Hosting
- In the new cPanel, open MySQL Databases.
- Create a new database. Note the full name (it will be prefixed, like
cpaneluser_wpdb). - Create a database user with a strong password.
- Add the user to the database with All Privileges.
Step 4: Import the Database
- Open phpMyAdmin from the new cPanel.
- Select the new empty database in the sidebar.
- Click the Import tab.
- Click Choose File and select your
.sqlexport. - Click Go.
Step 5: Upload the Files
- Connect to your new account with FTP/SFTP.
- Upload all the downloaded WordPress files into
public_html/.
Step 6: Update wp-config.php
- Edit
public_html/wp-config.phpon the new server. - Update
DB_NAME,DB_USER, andDB_PASSWORDto match what you just created. - Leave
DB_HOSTaslocalhost. - Save.
Step 7: Update the Site URL (If It Changed)
If you are also changing domains, run a search-and-replace on the database so links and serialized values update correctly. Use the free Search Replace DB tool or the WP-CLI wp search-replace command. Do not just edit the database with phpMyAdmin: WordPress stores some values serialized, and a naive replace breaks them.
Common Post-Migration Issues
- White screen of death — usually a PHP version mismatch. In cPanel, open MultiPHP Manager, set your domain to PHP 8.1 or 8.2, and retry.
- Mixed-content warnings — the old site was on HTTP and you are now on HTTPS. Install the free Really Simple SSL plugin, or run a search-and-replace from
http://yourdomain.comtohttps://yourdomain.comin the database. - Permalinks return 404 — flush permalinks (Settings → Permalinks → Save).
- Cannot log in — on the new site after import, your old admin credentials should work. If they do not, reset via phpMyAdmin or by editing
wp-config.phpwith a password-reset plugin. - Images broken — if uploads did not transfer, recheck the
wp-content/uploads/directory. The All-in-One plugin includes them; the manual method only does if you copied all ofwp-content/.
Related
- From Another Host — the general migration playbook.
- DNS Cutover Checklist — safely point the domain at us.
- Installing WordPress — for fresh installs.
- PHP Selector — to set the PHP version after import.