Migrating a WordPress site can feel daunting, especially when you’re moving between hosts or from a local development environment to a live server. Fortunately, cPanel provides several reliable methods to handle WordPress migrations, whether you prefer a hands-on manual approach or the streamlined automation of the WP Toolkit. Understanding both paths gives you flexibility and control over your migration strategy.
In this guide, we’ll walk through the two most common ways to migrate a WordPress site into cPanel: the manual file-and-database transfer method, and the WP Toolkit migration feature. Each approach has its own advantages, and knowing when to use which one will save you time and prevent common migration pitfalls.
Preparing Your cPanel Environment for a WordPress Migration
Before you begin any migration, your destination cPanel account needs to be ready. Start by ensuring your hosting plan has enough disk space and bandwidth to accommodate the incoming site. You’ll also want to verify that the PHP version on the destination server matches the source site’s requirements — most modern WordPress installations run best on PHP 8.0 or later.
Next, create a MySQL database and a dedicated database user within cPanel. Navigate to the MySQL Databases tool, create a new database, add a user with All Privileges, and assign that user to the database. Write down the database name, username, and password — you’ll need these when you configure the wp-config.php file during the migration. If you plan to use the WP Toolkit migration method, you can skip this step, as the toolkit handles database creation automatically.
Method 1: Manual WordPress Migration via cPanel
The manual method gives you complete control over every file and database record being transferred. It’s the best choice when you’re moving large sites, need to audit the content before transferring, or when the source server doesn’t support automated migration tools.
Step 1 — Export the Source Database
Access phpMyAdmin from the source cPanel dashboard. Select the WordPress database from the left sidebar, then click the Export tab. Choose the Quick export method with the SQL format, and click Go. This downloads a .sql file containing all your posts, pages, comments, users, and settings. If you’re migrating from a non-cPanel host, look for phpMyAdmin or another database management tool in the source control panel instead.
Step 2 — Download the WordPress Files
Open the File Manager in the source cPanel. Navigate to public_html (or the relevant document root), select all WordPress files and folders, and click Compress to create a .zip archive. Download this archive to your local machine. If you have SSH access, you can alternatively use rsync or wget to transfer large archives more efficiently — compressed file size matters, as large sites can exceed browser download limits.
Step 3 — Upload and Extract on the Destination
In the destination cPanel’s File Manager, navigate to public_html and click Upload. Upload the .zip archive, then right-click it and select Extract. Confirm extraction to the current directory. After extraction, verify that all WordPress core files (including wp-admin, wp-content, and wp-includes folders) are present.
Step 4 — Update Database Credentials in wp-config.php
Locate the wp-config.php file in the extracted WordPress root. Right-click and select Edit. Find the section that defines DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST, and update these values to match the database you created earlier on the destination server. Save the file when done.
define('DB_NAME', 'your_cpanel_user_wpdb');
define('DB_USER', 'your_cpanel_user_wpuser');
define('DB_PASSWORD', 'your_secure_password');
define('DB_HOST', 'localhost');
Step 5 — Import the Database
Return to phpMyAdmin on the destination cPanel. Select the new database you created, click the Import tab, choose the .sql file you exported earlier, and click Go. phpMyAdmin will execute the SQL statements and populate your database with all the WordPress data from the source site.
Step 6 — Update the Site URL (If Necessary)
If your destination uses a different domain than the source, you must update the site URL in the imported database. In phpMyAdmin, run the following SQL query, replacing the domains with your actual values:
UPDATE wp_options SET option_value = 'https://newdomain.com' WHERE option_name IN ('siteurl', 'home');
If the old domain appears throughout post content, you may also need the Better Search Replace plugin or a similar tool to update embedded links. A simple search-and-replace in phpMyAdmin can break serialized data, so use a dedicated tool when dealing with serialized WordPress content.
Method 2: Using cPanel WP Toolkit for One-Click Migration
The WP Toolkit, available in many modern cPanel installations, offers a much faster migration path. Look for the WordPress Manager or WP Toolkit icon in the cPanel dashboard. If your host provides it, this is often the most reliable method because the toolkit handles file transfers, database imports, and URL replacements automatically.
Initiating the Migration
Open the WP Toolkit and click Install or the Migrate tab (the exact label varies by version). WP Toolkit version 4.x and later include a dedicated migration wizard. You’ll be prompted to provide the source site’s URL and — depending on your host’s configuration — a pair of API keys or admin credentials. The toolkit then connects to the source server, downloads the WordPress files and database, and installs them on your cPanel account.
Post-Migration Checks with WP Toolkit
After the WP Toolkit completes the migration, it provides a summary dashboard. From here you can verify the PHP version, enable caching, configure AutoSSL via Let’s Encrypt, and run a quick security scan — all without leaving the interface. The toolkit also handles updating the site URL automatically, which eliminates the most common source of migration errors.
When to Choose WP Toolkit Over Manual Migration
The WP Toolkit approach is ideal for smaller to medium-sized WordPress sites (under 5 GB total size), non-technical site owners who want a hands-off process, and scenarios where both the source and destination are on cPanel-compatible hosts. For very large sites, custom-coded WordPress installations, or sites with complex server-level configurations, the manual method gives you the debugging access you’ll likely need.
Post-Migration Checklist: Verifying Your Site Works
Regardless of which migration method you use, always run through this verification checklist after the transfer completes. These checks catch the most common issues before they affect your visitors. Start by browsing the site’s homepage and a few key interior pages to confirm they load without errors. Navigate to Settings > Permalinks in the WordPress admin dashboard and click Save Changes to flush the rewrite rules — this fixes most 404 issues that appear after a domain change.
Next, test the login functionality. Log in using the same credentials from the source site. If login fails, run the wp-admin/admin-ajax.php test or reset your password via phpMyAdmin using the WordPress admin email. Check that all plugins are active and functioning, especially caching plugins, security plugins, and e-commerce extensions. Finally, verify that email notifications (password resets, new user registration) are being sent from the new server by testing the mail function through the destination cPanel’s email configuration.
After verification, update your domain’s DNS records to point to the new server’s IP address. DNS propagation can take anywhere from a few minutes to 48 hours, so plan your cutover time accordingly. Keep the source server active until you confirm the migration is complete and all DNS changes have propagated.
Common Migration Pitfalls and How to Avoid Them
Even experienced administrators encounter migration issues. The most common problem is the white screen of death, which typically stems from PHP memory limit mismatches or plugin conflicts. Before migrating, note your source site’s PHP memory limit (WP_MEMORY_LIMIT in wp-config.php) and set the same value on the destination server. If you encounter the white screen after migration, access the server via cPanel File Manager and temporarily rename the plugins folder to plugins_old — this deactivates all plugins and allows you to reactivate them one at a time to isolate the culprit.
Another frequent issue is mixed content warnings, where HTTPS pages load insecure HTTP resources. If you’ve installed an SSL certificate via cPanel’s AutoSSL or Let’s Encrypt but images and scripts still load over HTTP, use the WP CLI command wp search-replace 'http://olddomain.com' 'https://newdomain.com' after the migration. This is safer than phpMyAdmin search-and-replace because WP CLI properly handles serialized data. You can run WP CLI commands from the cPanel terminal if your host provides SSH access, or through the WP Toolkit’s command-line interface.
Key Takeaways
- Manual migrations via phpMyAdmin export and cPanel File Manager offer full control and are ideal for large or complex WordPress sites.
- WP Toolkit migrations automate file transfers, database imports, and URL updates, saving significant time for standard WordPress installations.
- Always prepare the destination cPanel environment with a compatible PHP version, sufficient disk space, and — for manual migrations — a pre-created MySQL database.
- Update the site URL in the database immediately after a manual migration using a dedicated search-and-replace tool to avoid breaking serialized data.
- Run the post-migration checklist: test page loads, flush permalinks, verify logins, check plugins, and confirm email delivery before cutting over DNS.
- Keep the source server active until DNS propagation is complete, and use WP CLI rather than phpMyAdmin for URL replacements to safely handle serialized WordPress data.