Self-Hosted to Self-Hosted WordPress Site Transfer

Transferring websites is never an easy task. Transferring WordPress sites is just a pain-in-an-ass. And the best part? You’ll never know it until you encounter it.

Recently I’ve just moved from SimplerCloud to DigitalOcean.

One would expect exporting and re-importing a WordPress site to another on both self-hosted domain should be as simple as a few clicks, but the reality is a big NO: a few things just does not work out of the box.

8 Things that I’ve done to transfer my WordPress self-hosted site:

1. Export from Tools > Export in the old host, just keeping all the default options.
2. Download the wordpress folder from old host via FTP
3. Set up my new host and uploaded the folder via FTP
4. Removed wp-config.php
5. Install wordpress by opening up the browser to my new site
6. Enable the plugins I have
7. Tools > Import > WordPress
8. Update WordPress and plugins

Problem 1:

The customization on your theme is NOT transferred over, for example the theme colour and the background image choice.


Open up the old and new sites side-by-side. Do the settings manually.

Problem 2:

Certain settings, however important, are not transferred at all. Permanent links feature in the settings are set to the wrong options until I realized them today, five days later. The ever-most efficient crawler has re-crawled my site to ?p=xxx for every single page.


Open up the old and new sites side-by-side. Do the settings manually.

Problem 3:

At the point of my new installation, the web address I used was the IP address of my new server because changing DNS for my domains will take time. So days after, I realized many links are broken as they are pointed to the address I used during installation, not the one I specified at wp-admin backend.


I am surprised that WordPress chooses to ignore my instruction at the backend. In the end I have to use phpmyadmin to directly manipulate the tables. Easier and faster.

wp_options has two places got my web address wrong: sm_status and theme_mods_twentyfourteen-child (my theme)

wp_posts also has the same problem, I supplied the following MySQL command:

UPDATE yuan3y.wp_posts SET post_content = REPLACE(post_content, '', '')
UPDATE yuan3y.wp_posts SET guid = REPLACE(guid, '', '')

Other points noted during the transfer:

  • Do not try to import the old images and attachments more than once! You links will break.
  • Maybe MySQL export & import could have been a better way, but I did not try that.
  • Do check your media, your plugins, and your posts, make sure everything works.

Leave a Reply