WordPress migration


How to migrate WordPress website could be challenging when not using a plugin but, its equally important to know how things work behind the scene particularly when you are a developer, site administrator or even a tech savvy.

With a plugin, there could be a server-side conflict when migrating from one account to a different account and you can’t just get your head off what is happening and how to resolve it.

It’s therefor important to know how to manually migrate WordPress website without losing any data in the process.

This guide will be in 3 phases:

1. Phase one – preparing website for transfer

2. Phase two – preparing new account

3. Phase three – clean up on new account

Phase one (1) - preparing website for transfer

Old website need to be downloaded and back-up. This can be achieved with FTP but could take much time in most cases. As such, using cPanel will simplify the process.

Inside cPanel. Locate file manager. Proceed to document root of website where all files are located.


Expand public_html folder for all WordPress files and folders. 

Present on the expanded public_html folder is other files and folders: wp-admin, wp-content, wp-includes, index.php, wp-config.php and related documents.

The two important files needed for migration is wp-content folder and wp-config.php file.

wp-content contain all themes, plugins, uploads such as images and videos. wp-config.php is the database configuration of the website.

To download wp-content, right click and compress into zip file then download afterwards. wp-config.php can be downloaded right away by right clicking and selecting download option.

Next item is the database. To get the actual database of the site associated with WordPress, go into phpMyAdmin under DATABASES in cPanel.

There might be many databases in phpMyAdmin. Make sure to choose the right one and export by clicking on the database name in the left panel of phpMyAdmin, followed by ‘Check all/Check tables having overhead’ and export.

Ensure format ‘SQL’ is selected after export and finally click on ‘Go’ to start download process. Download time generally represent the amount of data in the database. 

If all goes well, in your possession should be 3 things: wp-content folder, wp-config.php and database-name.sql

Next is phase 2: preparing new hosting account.

Phase two (2) preparing new hosting account

Log onto the new hosting cPanel and install blank WordPress. Worry not much about the hosting provider. cPanel functionality and user interface is pretty much the same across hosting providers. 


Before installing take not of the database name and table prefix under ‘Advanced Options’ These can be changed or leave as dedault. Then go ahead and install WordPress.

Now is the time to replace  the new site with the old website content.

Back in cPanel of the new account, open phpMyAdmin and click on the database name of the site. Check all for table as would have been the case for exporting but this time, select drop and drop entire table.

Atop the page is import. Locate the exported database-name.sql file from the old website and import it. 

Open database again and all tables will be imported perfectly. In here the most important thing to look out for is wp_options. Naming conversion might differ but will surely end up with underscore options (_options).

If the site url needs to be changed to a new url and home path, wp_options is where it can be edited to make changes. 

With that out of place (database imported succesfully). Upload wp_content folder and wp-config.php file through file manager in cPanel.

To acheive this, first delete wp-content folder and wp-config.php file in the new account followed by uploading the associated files from the old account.

wp-content upon upload to new account will be in a zip file which needs to be extracted. Delete the zip folder after extracting. It can lead to sluggish server performance.

Finishing tactics to make the site availabe is by making changes to wp-config.php file which was uploaded to new account seconds.

You can right click on this file (wp-config.php) to directly edit but I suggest downloading and opening in a text editor to make changes, then upload to effect changes.

With that open in a text editor, look for $table_prefix = ‘wpdf_’; replace table prefix value with the new table prefix value.

Table prefix is not a constant value and as such, could vary in different cases. Getting table prefix of the new website is by opening phpMyAdmin preceded by opening the database. All table names start with the table prefix_ 

Replace $table_prefix = ‘wpdf_’; with the new prefix. Save file and upload.

If all goes well, website should be up and running succesfully on the new server.

phase three (3) clean up on new account

Now if anyone inspect any image on the website, url will still point to the old domain address which you wouldn’t want.

In order to prevent this and all url still pointing to the old address, log into the new site WordPress dashboard and install Velvet Blues Update URLs.

Right after that come to tools on the left panel and hover to ‘Update URLs’

Drop in old domain and new domain URLs in their respective fields. Then choose which URLs should be updated in option two by checking the boxes (most cases select all to completely change urls) and tab ‘Update Urls NOW’ button.

All links should be updated successfully.


That was how manual migration of WordPress is done. One last thing you might want to do is to log into the old account and delete the database and old files.

As for the new site, always make sure to have a back-up of the database in case anything goes wrong in the future.

With that in mind, keep enjoying WordPress development and talk to you again. Tada!

Article By Alhassan Kiwamdeen (Web developer, writer and S.E.O enthusiast)

themes made for yoy

WordPress Costume Themes