Bird migration

Migrating your WordPress site to another location should be a painless process: you just have to export your database, import it to the new host, move your files there, configure everything and make the new site live. However, there are some steps that, when not done right, could provoke several problems that cause trouble and lead to unsuccessful site transfers. In this post, I review the required steps in a WordPress migration to show you the most common problems I have found after three years migrating sites for customers of Migrate To WordPress.

Exporting/Importing your WordPress Database

The first step to start a migration of your WordPress site is to move the contents from your current host to a new server. To do this, you could use the Import/Export native function that WordPress has. However, this may fail or not export/import all of the contents you have defined, but only a subset. To avoid this, I always recommend to go for the database directly, and export a SQL file. But, this may also cause some trouble.

If you have access to your database through phpMyAdmin, just try to export the SQL data following the steps explained in this article about nice phpMyAdmin tutorial to export your data. Depending on the specific configuration of your server and the size of your database, the process of exporting your contents to a SQL file may fail because of memory or timeout errors.

Alternatively, if you do not have access to phpMyAdmin you can try the WordPress plugin Adminer, which provides the same functionality as phpMyAdmin. However, it may also cause memory and timeout errors when trying to export your data. But it is always worth to try it.

Another possibility you have is trying to export the data directly through MySQL commands. If you have SSH access to your servers you can use the command mysqldump to do this:

Export a SQL file from your database

mysqldump -uUSER -pPASSWORD DBNAME > export.sql

Import a SQL file to your database

mysql –uUSER –pPASSWORD DBNAME < export.sql

Remember to change USER, PASSWORD, and DBNAME to the right values in your installation. If you have forgotten these credentials, open your wp-config.php file (when you have access to it) and you’ll find them there.

If that fails to work, producing a timeout error, or mysql and mysqldump are not available, then you need to contact the support team of your current hosting provider and request them to create a backup of your database. After that, you should ask your new hosting provider to import the previous export file into the new database for you.

Transferring Files, Plugins, and Themes

Once you have your database ready, it is time to transfer the files stored in your old WordPress host to the new one. Basically, this means copying all the contents from the following folders:

  • wp-content/themes: here is where all your WordPress themes are located. Just copy all of the contents to this folder, unless you decide to switch to a new theme. In that case, you can ignore these files.
  • wp-content/plugins: here is where all your WordPress plugins are located. Again, copy all the contents to new new host. Note that the plugin configurations are stored in your WordPress database, so after importing the SQL file from the previous steps, everything should work perfectly in your new host.
  • wp-content/uploads: here is where all the media files that appear in the Media Library are located. Note that the size of this folder may be huge when using a lot of images in your site.

Speed Up File Download/Upload

If you have a very big WordPress installation with a lot of media files, file transfers may take ages to download from your host and upload into the new one. If that’s your case, try to do the file transfer in a place where you have a good internet connection, because you’ll probably need it. Fortunately, there are some tips that can help you transferring the media files much faster. Let me review them:

  1. Whenever it is possible, make a compressed archive (.zip, .rar, or similar) of your media files before transferring them. It’s faster (and simpler) to move one big file rather than thousands of small ones. However, some hosting providers do not permit this functionality or do not allow you to have SSH access to your server. If you only have FTP/SFTP access, go to tip 2.
  2. When transferring multiple files from one host to another, avoid using FTP/SFTP directly. Try parallelizing download/upload connections by using LFTP and mirror commands.
  3. If you have SSH access to both servers (the old and the new one), transfer your files (or compressed archive file) directly from your old hosting provider to the new server, instead of downloading them locally into your computer and then uploading them from there.

Regarding LFTP, here are the commands that you should use to download and upload the previous folders recursively and with parallel connections, reducing the final amount of time required for the transfer:

Download files to your computer

lftp -c "open ftp://$username:$password@$ftp_hostname;lcd /path/to/local/directory/in/your/computer;cd /path/to/remote/directory/in/ftp/server;mirror --parallel=20 --only-missing;"

Upload files to new host

lftp -c "open ftp://$username:$password@$ftp_hostname;lcd /path/to/local/directory/in/your/computer;cd /path/to/remote/directory/in/ftp/server;mirror --reverse --parallel=20 --only-missing;"

Problems with File Permissions

When you transfer files from one host to another, their permissions are moved too. Some hosts allow you to have files with permissions like 777, which in UNIX means that anybody can have full access to the file (read, write, and execute it). Such file permissions present a huge security risk, and if you are switching to a host that cares about security and forbids this, transferring files may result in an “Internal Server Error” page.

Having SSH access to your server, you can change the permissions of the files through the following command:

chmod -R 644 /path/to/folder/

It is also possible that your new hosting provider allows you to change permissions of your files through an option in their Administration Panel, like WPEngine does:

Fix file permissions in WPEngine
Fix file permissions in WPEngine

Fix Thumbnail Sizes

The moment doing a WordPress migration is the perfect time to redesign your theme or directly switch to a new one. If that’s your case, take a look at your featured images, because it could happen that all the new images that are uploaded after activating the new theme look good, but the old thumbnails appear ugly and distorted. And just trying to adjust image sizes in Settings -> Media, won’t solve the problem.

It is important to note that when you upload an image to WordPress, it creates duplicated images of the original one (called thumbnails) of different sizes and saves them in the uploads folder. What sizes? WordPress gets the image sizes for thumbnails from your theme. Your theme defines the thumbnail sizes, which are really useful to load the best image size when needed. There is no need to load huge images when displaying a list of posts. In these cases, your theme displays smaller thumbnails. Adapting the thumbnail size to each situation improves the final loading time of your WordPress.

Nevertheless, as we have already mentioned, the problem is that these new image sizes are only applied to the images that you upload after activating the new theme. To solve this problem you need to generate new sizes for all the previously uploaded images. This process is often referred to as regenerating thumbnails and, as always, there is a plugin to do that.

In order to do this, you just have to install the plugin Regenerate Thumbnails in your WordPress installation. Then, activate the plugin and  go to Tools -> Regen. Thumbnails. Press the button Regenerate All Thumbnails to start regenerating the thumbnails for all image uploads. You can also regenerate the thumbnails for individual image uploads or specific multiple image uploads in Media -> Library.

Regenerate thumbnails in WordPress
Regenerate thumbnails in WordPress

Note that this plugin does not delete previously created thumbnails by old themes. This is something you should do manually if you are sure that you haven’t used those sizes anywhere on your website. Look for images inside your wp-content/uploads folder in WordPress that have old unused dimensions. Be careful when deleting them; it will free space in your hosting disk, but it can also have side-effects on your site when deleting wrong images (images that you actually use).

Regenerating thumbnails is very handy if you’ve changed any of your thumbnail dimensions (via Settings -> Media) after previously uploading images, or have switched to a theme with different featured image dimensions.

Nelio Unlocker

Switch to WordPress safely while keeping your design and content

Improve your SEO today and boost your site speed by converting your pages into HTML, CSS, and WordPress standards. With zero technical knowledge required, you’ll only pay for what you need.

WordPress Configuration after Migration

This part can be tricky too. Your database has lots of references to your old site. If you changed your domain name in a migration, trying to access to your new WordPress site after importing your database file will result in several redirection problems. The reason for this is that your WordPress thinks that it is located in your old server with your old domain. To solve these wrong URL address problems, continue reading.

Telling WordPress that the Site’s Location Has Changed

WordPress stores your site location on the wp_options table. You can see it when you go to to Settings -> General:


If the URL you see there is not the URL of the new domain, WordPress will always redirect you to the URL you have there. In order to easily fix this issue, search for the following lines in your wp-config.php file (or add them to the end of that file) and put there your correct URL:

define('WP_HOME', '');
define('WP_SITEURL', '');

These two statements tell WordPress to ignore the values in the database and use the home and site URL values that you specify in the wp-config.php file.

Updating URLs in Posts and Custom Fields

When you change the domain name, you need to update all the posts and custom fields that include the old URL with the URL of the new domain. When you insert a link or an image, WordPress will store it with its full path. All these absolute references have to be replaced when you’re moving to the new domain. Otherwise, all inline link and images still point to the previous domain, producing 404 errors.

To fix this, we can directly go to phpMyAdmin and access our WordPress database. Before doing anything, you should backup the database, using the export function we described before. Afterwards, you can apply the following SQL statements:

UPDATE wp_options SET option_value = REPLACE(option_value, '', '') WHERE option_value NOT LIKE '%{%';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, '', '') WHERE meta_value NOT LIKE '%{%';
UPDATE wp_posts SET guid = REPLACE(guid, '', '');

Once you have run each of these update statements, phpMyAdmin will tell you how many rows in your database were updated. Check that this number makes sense.

Note that I’ve excluded rows that have the character { in them as they would be part of serialized arrays. To replace URLs (or any other string) inside serialized arrays, go to the next section

Fixing Serialized Arrays in PHP

Serialization has become a standard in many programming languages. The problem with serialization is data portability. Let’s see an example of serialized data in PHP:


As you can see, the data is organized in a way that it has data types and number of elements in every data type. Concretely, there is a String URL that contains 67 characters. And that’s the problem.

If you change your domain, replacing it is not enough. If the old and new domain don’t have the same number of characters, and you search and replace the domain URLs in your database, you could get in trouble and corrupt your content data.

There’s no way to update serialized arrays using just MySQL queries. You need to use PHP, load the arrays, find the values, replace them and serialize back. That’s very tedious and error prone, but there are several tools that help you doing the hard job. My recommendation is to use a plugin that does the complete migration for you. WP Migrate DB, Duplicator, or All-in-One WP Migration are some examples of good plugins for this task, and they take care of replacing the serialized arrays.

Alternatively, you can use this WordPress search and replace database tool. It carries out database wide search/replace actions that don’t damage PHP serialized strings or objects with a user friendly interface.

Change DNS to Point Target Site

Once you have the new WordPress installation ready to be live, the final step of migrating your website is the DNS change. This is something that only experienced people should do, because it may cause your site to go down. And you don’t want that!

Sometimes, it is better to contact the support team of both your old and new hosting providers. They will help you and provide the right instructions to follow when performing the DNS change. Note that domain records changes need a propagation period to take place. This time is required because all of the world’s DNS servers need to update their records about your domain name.

In addition to it, while waiting for the DNS propagation period to pass, you can disable the comments and login on your old hosting. This way, you avoid losing new comments or other user activity during the so-called propagation period. When doing the DNS change, be careful with your email configurations. It may be the case that when changing some records in the DNS configuration, you destroy your mail records. Again, and sorry to repeat this, contact a professional to perform this change and ensure that you won’t lose anything.

If you liked this article, let me know by sharing it through your social networks or by writing a comment. And if something is missing, we can work together to include it on the list 😉

Featured image by Benson Kua

99 responses to “WordPress Migration Problems and How to Fix Them”

  1. Buddhika Avatar


    Thanks for the tut!, I like your website interface, care to tell the theme your using?

    1. Antonio Villegas Avatar

      Now we’re using a custom theme designed for us. Before that, we used the Angle theme you can find in Themeforest. We’re really happy switching to a custom one. Glad you liked it!

  2. Laurence Avatar

    Great post Antonio – this will come in handy! I’ve just published a similar blog on the most common WordPress problems and how to fix them. Take a look here:

    Keep up the good work!



    1. Antonio Villegas Avatar

      Thanks, Laurence. Your post is great too!

  3. Nicolò Avatar

    So many troubles.. when you can migrate a site in 5 clicks with a usefull and smart plugins like Duplicator.

    1. Antonio Villegas Avatar

      Sure thing! There are some plugins that help a lot when migrating WordPress installations. Major problems occur when you want to migrate from a different CMS to WordPress. Thanks for the comment!

    2. Buk Avatar

      I agree, Duplicator compared to this migration plugin, there is no comparison. This plugin is NOT painless.

  4. galo Avatar

    Hi we have a problem. The problem is that when we migrated we never changed home1(shared host) to home (dedicated host) and now we have problems in the cache plugin and other plugins because they want the home1 path but now is home. Any ideas of what we must do? By the way the site works ok but we cant use CDN and others

    1. Antonio Villegas Avatar

      Hi Galo. Probably you should replace the old URL with the new one in your database tables. Some plugins put metadata in your database that after the URL change it is now broken. There are several options to fix that (one is using Velvet Blues plugin), but be careful with that. First, backup your database just in case you end up breaking things. Good luck!

  5. Mike Avatar

    Hi Antonio, thanks you so much for putting your time and energy into helping others. I’ve recently conducted a good WordPress migration, but with one issue: through my host’s CPanel I can no longer access phpMyAdmin. Launching phpMyAdmin in cPanel displays a page of my site instead of the phpMyAdmin interface. Any ideas what I need to change?

    1. Nelio Avatar

      Hi Mike. It sounds like a weird redirection problem. You should contact your hosting provider directly. They must fix this and allow you to access your phpMyAdmin.

  6. Hiores Avatar

    Hello Antonio Villegas

    I have a problem, after I migrated my wordpress site from one server to another. The problem is related to the plugins, the site is working normally, is already online tbm, but the plugins are not catching, the site is all unconfigured. Can you help me?

    1. Nelio Avatar

      Olá Hiores,

      Did you move the plugins from the wp-content/plugins/ folder from the source site to the new one? If that’s not the case, maybe your plugins folder has a different name in your new installation (which is weird, by the way). Try to contact your hosting provider in order to make them take a look at it. They will be able to help you fix the issue.

  7. Mark Avatar

    We migrated servers and our Woo Commerce order plugin stopped working shortly after we migrated. The developers are having issues finding what the problem is.

    Do you think migrating the server is the issue? Any suggestions on how I can fix the problem would be appreciated.

    Seems like there is a conflict with the order plugin and the new server.

    1. Antonio Villegas Avatar

      Hi Mark. WooCommerce recently updated its version to 3.0, and apparently that version has some problems with other plugins due to being that new. Maybe when migrating everything you installed WooCommerce new version instead of moving the old version in your source installation and that’s causing the issue. Otherwise, I’ve no idea of what may be the problem.

  8. Duane Avatar

    Hi Antonio, stumbled onto this post, and glad I did. I transferred a site from hostgator to godaddy last week and all seemed to be in order. This week when visiting the site on my iPad to test mobile layout I realized none of the 86 posts on the site are able to be viewed. I get a forbidden error stating this post is not available on this server. When I logged in to the dashboard all the posts are there so am a bit confused.

    Any suggestions?

    1. Nelio Avatar

      That’s weird. If you see your posts on Desktop but not on mobile, try to contact your hosting provider because something is interfering. Maybe a plugin or some redirections, but definitely something is wrong in your configuration. Unfortunately I can help you on this without taking a deeper look at it. Hope you fix it soon.

  9. Stanao Avatar

    Good one Antonio, maybe you can review our plugin with feedback too?

    Thanks for considering…

  10. Neha Prajapati Avatar

    I changed my server(shared to shared) keeping same web URL. and properly configured.
    But why my all old post r showing in google search with page not found.
    What to do??

    1. Antonio Villegas Avatar

      Well, probably you didn’t properly configured the URL for your new content. If you can access the same URLs of your posts the same way you did before the migration, there is no reason for your posts to appear as page not found in google search console. Please recheck everything. Good luck!

  11. Benjamin Boyce Avatar

    Hey I made a video on exactly how I fixed this using your method it’s only 2 minutes long. Check it out

  12. Angie Avatar

    Hola Antonio, before my site was moved from one server to another I was able to click on the logo and it took me back to the home page but now the logo is not longer clickable. How can I fix this? I have access to my cpanel.


    1. Antonio Villegas Avatar

      Hi Angie. The problem you mentioned here is related to your theme. Look at your theme options or your theme code because the solution must be there.

  13. Fahad Rafiq Avatar

    Thanks Antonio for such a great article.
    I am facing an issue while migrating website. When I activate plugin on new site, the website show white screen of death. Can you please tell what could be the problem?

    1. Antonio Villegas Avatar

      Hi Fahad. Which is the plugin that causes the problem? If activating that plugin produces a white screen of death, maybe the problem is the plugin itself.

  14. Chris Chalmers Avatar

    Hi Antonio
    Thanks for the thoughtful post. I recently migrated a site by downloading the uploads folder from the old site and uploading it to the new site. Then I used to create new media items from the uploads. This worked great and all my posts and attachments work. EXCEPT now there are three versions of each image in my media library: one for each thumbnail size. How would you suggest I resolve this? I’m experienced with wordpress and linux but have no idea where to begin & I need your advice :/ Thanks in advance!

    1. Antonio Villegas Avatar

      Hi Chris. There are three versions of each image because these are the thumbnails WordPress created automatically in your previous site. You should delete them (probably they contain the dimensions in their name, so you could filter them that way). After that, execute the plugin Regenerate Thumbnails to generate the thumbnails for your new theme. Hope this helps you.

  15. Johnson Avatar

    Hi Antonio,
    Thanks for such a great article. It has been very helpful. However, following the steps you highlighted above, I would appreciate your opinion and advice on a mystery which I cannot find any solution online for. Here it is:
    I have developed a website using Shopkeeper on my local server which works perfectly. The shopping experience of adding items to the basket and checkout works as expected but when I transferred it to the live server, this stops working correctly (the Mini Cart doesn’t update, and items get deleted automatically).

    Despite previous suspicions, there is no custom code involved – the only variable is the live server.

    I wonder if you please advise on what might possibly be going on, and if you’ve seen something similar before – perhaps cache/refresh/something else??

    The website is approaching the launch date, and this is the final mystery!

    1. Antonio Villegas Avatar

      Hi Johnson. Sometimes live servers do not have the same configuration as your development one. If you find errors, they should appear on error logs in your server. Contact your hosting provider in order to shed some light here. I totally understand your frustration with this problems. I remember a problem like yours that was caused with some internal security configurations that prevented external requests to another servers or even wrong SSL configurations. My recommendation is to try to aisle the problem as much as you can and contact your hosting for help on it. Share screenshots with them or even a brief screencast. If they don’t help you, switch to another hosting company. Better now than in the future.

  16. Sifat Avatar

    These days I use all-on-one-wp-migration, it does everything simply and works! Thanks man

  17. Jordey Avatar

    Hello! Thanks for you post.

    I do have one question.
    I used duplicator plugin to transfer a wordpress website from website A to website B. Everything works, unfortunately not my contact form. Somehow that doesn’t work and I think it might have to do with the SQL settings.
    If anyone sends an email from that form, I will not receive it.. It has to do something with the form plugin ‘caldera forms’. But it stopped working properly after the transfer from website A to B.

    Do you have any idea how I can fix it?

    1. Antonio Villegas Avatar

      Hi Jordey. Not sure what the problem may be. Are you sure the server configurations are the same in both sites? It may be the case that your WordPress installation B cannot send emails because of a different configuration. Otherwise, contact Caldera Forms support agents. They’ll probably help you make everything work as expected. Have a nice day!

  18. Shivam Sahu Avatar

    Hi Antonio,

    Indeed a great list of common WordPress security mistakes.

    A couple of days back I faced a situation where there was some unwanted ads being displayed on my blog and that was something I did not install. When inspected I found that there was a lot of unwanted codes that were injected into the WordPress theme files and other main files.

    On further inspection I found out the following 3 things which were the reasons for this:

    1). Not updating the other WordPress installation, plugins and themes that are being run from the same hosting account if you are using a shared hosting
    2). Optimizepress 1.0 is known to have a security issue and they have released an update to it. This doesn’t update in the normal updates from your wordpress dashboard. You might want to update it manually, if you haven’t done it yet.

    3). Not Cleaning and optimizing your database periodically

    4). Leaving the default themes like twentyeleven etc. as it is and not updating them. This primarily happens if you are using a different theme and these default themes just remain there.

    5). Not uninstalling plugins that haven’t been updated for a long time by its creators.

    These are prone to attacks. A couple of solutions that I found was installing plugin like Wordfence or, Bullet Proof Security or, Better WP security.

    1. Antonio Villegas Avatar

      Hi Shivam. You’re right! Updating everything should be mandatory in order to try to avoid unexpected situations like the one you described. Thanks for the detailed comment.

  19. Henry Avatar

    This is the first time I leave a comment in a support blog page. Thanks for your wonderful guide Antonio, it was really usefull and nice. You rock.

    1. Antonio Villegas Avatar

      Thanks for the kind words, Henry.

  20. Kchloe Avatar

    Hello Antonio!
    Thanks for your post! I’m also on my way to WordPress, but because of the lack of any coding skills and time as well, I’ve decided to go the automated route. Did you hear anything about the automated website migration service called cms2cms? Would be really grateful for your suggestion!

    1. Antonio Villegas Avatar

      Yes, I know them well. As soon as your site does not contain complex things (just regular posts and pages), they’ll do a good job. But if you have anything more complex or you don’t want to left anything behind, it is better to spend more money and hire a WordPress expert in your area to do the migration. But you can try them if you want.

  21. Srba Avatar

    Hi Antonio,

    Great article! Very useful. We have recently changed our website address and soon after that Facebook is refusing to share links from our website saying: The content you’re trying to share includes a link that our security systems detected to be unsafe… and we cannot share any link from our website. Is there a cure for this?


    1. Antonio Villegas Avatar

      Honestly, I never had a problem like this. Try to contact Facebook directly, that may be your best choice.

    2. Bogdan Avatar

      Had the same problem once when I bought an old domain. You can try the facebook debugger to get to the bottom of it:

  22. Helen Avatar

    Many thanks for your post, Antonio! I do like it!
    I recently performed the migration to WordPress, but being a blank piece of paper in the technical and coding spheres, I resorted to the fully automated migration with cms2cms. And what I’d love to say is that I do not regret my decision at all. The game is worth the candle. Thus, I, fortunately, didn’t face any problem with the migration, but in case they were, your article would really solve them, I guess.

    1. Antonio Villegas Avatar

      Thanks for the kind words, Helen.

  23. Abdul Sami Avatar

    Thank you for sharing your insights. I was facing issue of database error but solve it 🙂

  24. Samuel Avatar

    I discovered something after trying out on all suggestions/recommendations in the tutorial.

    I am done importing the database and uploading the downloaded wordpress files, configuring the wp-config.php, as well as setting permalink in order to set up .htaccess.

    The Challenge is that my site do not have the settings from the previous account within the same hosting.

    The site look like a fresh site but has all themes and plugins of the previous domain/web. It does not show the designs from the previous site.

    Any help on this please. What have I not done?

    1. David Aguilera Avatar

      I’m afraid I don’t understand what’s amiss. What issue specifically are you facing? If you uploaded your themes and plugins into the wp-content directory, then it’s normal that those things work as expected and show up in a “fresh” installation. So, what’s missing?

  25. WBO Avatar

    Thanks in advance, i have followed your blog tips. But facing issue with this.

    my website is
    I have upload all the backup file/data/sql in cpanel but it does not showing my old wordpress website data. There showing only new wordpress data in front end but my old website data which i have upload from cpanel it’s showing in file manage > public html and database with the name of wpp1
    Please help me.

    1. David Aguilera Avatar

      Hi! “Old website data” is the information you had in your database, which I assume you imported in your current WordPress database. As far as I can tell, there are three possible explanations.

      1. You didn’t import your SQL file. some users just upload the SQL file in their server, but they don’t import it in their database. Make sure you did that.

      2. You imported the SQL file in a separate database. Your MySQL server (or whatever you’re using) can have more than one database, but your WordPress site is connecting to one specific database in the SQL server. If you imported the tables and data in a different database, it’s normal you don’t see any data in your WordPress site — it’s just looking at the wrong place. Either change your WordPress setup (in wp-config.php) to let it know what database should it connect to or import the tables in the right place.

      3. You imported the SQL file in the proper database, but table prefixes are wrong. WordPress adds some prefixes to your database tables. So, for example, the table that contains all your posts is usually named `wp_posts`, but it can be anything such as `wbo_posts` or `wp123_posts`. Just make sure your setup is pointing to the appropriate tables.

      If you don’t know how to do those things, I recommend you get in touch with your hosting provider. I’m sure they’ll be able to help.


  26. Zahid Hussain Avatar

    I transferred my WordPress site but I am unable to update plugins and unable to install a new plugin. I have changed permissions of WP-Content and WP-Plugin folder but nothing worked. How I can solve the issue?

    1. Antonio Villegas Avatar

      Maybe your new host has size/memory limits you need to configure. Or maybe you need to reset the permissions somewhere. The best you can do is to contact your hosting provider directly. They’ll have the tools to fix your problems faster.

  27. Joseph Avatar

    Hi Antonio,
    Im Joseph, first, im not a good in wordpress…

    i think ive got problem around your topic..

    Yesterday i tried to copy wordpress from to new subdomain
    just because i need to have another copy of the site without create from zero again.

    i follow a tutorial, which bring me to copy the all of wordpress file, create new database from phpmyadmin, give access 777, and change the url to

    but, when i tried to access the site… as you can try now… its broken, the theme gone, the construction fail…

    Now, one thing i want is just get my website back to earlier… how can i recovery from this situation?
    please help me with a simple and clear steps…

    Many thanks in advance…


    1. Antonio Villegas Avatar

      Hi Joseph. I’m sorry to hear you had problems. If you want to move your site to a subdomain, just follow the official WordPress instructions. To recover from your situation, the best thing you could do is contact your hosting provider and ask for help. They’ll be able to see what the problem is directly and provide a solution. It’s hard to help you without knowing the exact steps you did and how you had everything configured. Good luck!

  28. Igshayari Avatar

    Thanks for the tutorial. I just changed my domain name .

  29. bruce Avatar

    Hi Antonio, I recently migrated our site to a new server. All pages and posts are there but the following are not:

    Customized Menu in admin and on home page is gone
    Categories in admin is gone
    All posts are not connected to categories because of course they are gone.
    All Tags to posts are gone

    I’ve compared the two sites via FTP and can’t find anything missing. Any general ideas where I might look to find the root of this problem?

    You can see what it should look like by adding old. to the prefix of the website address I’ve provided. Also the .old site does not have an SSL on it.

    Thanks Bruce

    1. Antonio Villegas Avatar

      Hi Bruce. The categories and tags are stored in the database in several tables different than wp_posts, which seems is the only table you migrated. That would explain why they are missing. Try to migrate the whole database content properly and they should appear in your new installation. About the menus, your theme stores some rows in wp_options (another table in the database). You should recreate them manually.

  30. Gaurav Singh Avatar
    Gaurav Singh

    Hey Antonio, great blog post buddy. My site had a lot of PHP errors while I was migrating it from my subdomain to the main one. Your post definitely helped. Keep up the good work.

  31. Robin Avatar

    I’ve yet to find a simpler tool to migrate a WordPress site than All-In-One-Migration. It’s free, takes a couple of clicks, and needs zero knowledge of database configurement/FTP, or anything else for that matter. Just requires that the plugin be installed in the dashboards of the export (origin) and import (destination) sites. The rest is just a couple of clicks either end. Plus, you have the entire migration wrapped in a package for instant backups, so it performs double duty as both a migration tool and a backup tool.

    1. David Aguilera Avatar

      Thanks for your contribution, Robin! I completely agree with you; All-in-One-Migrations is a really good plugin. We wrote this post a few years ago, when we used to migrate non-WordPress sites to WordPress, and this usually required a lot of manual work. That’s why this post was more low-level 😉

  32. Waqas Avatar

    I’m having an issue with WordPress excerpt after import using there plugin excerpt is not showing for all post. Tested with different themes and 3 different websites. Have to add custom excerpt now on this

    1. Antonio Villegas Avatar

      How did you exported and imported your content?

  33. Edison Avatar

    Hi, and thank you for this article! Really helped a lot!

    Though, I have one slight problem, and was hoping if you could help.
    You see, I am new to WordPress, building web servers, and such (I am normally a programmer with exp with java, c, SQL, etc).
    Just recently, I was tasked to create a new web server for our company’s totally revamped homepage. I was doing fine with the web server (i guess) and the moment came down on exporting the new WordPress (from our new Homepage) then importing it into the old web server so it will exactly be the same.

    In order, it goes something like this:

    1.) Setup a new web server, and create the new homepage in it (wordpress, DB, everything).

    2.) Export the new page’s configs (used All-in-One WP Migration for this) and then:

    3.) Import the exported settings to the OLD web server (while it still has everything, the old site’s wordpress themes, plugins, and such)

    Everything’s look exactly fine, until the time when i was using the old server’s environment as a test site (because i was thinking the old and new environments are now exactly the same) for adding/styling various widgets. So i finished, and when i decided to import/copy exactly the same files/codes into the new site, i noticed they arent exactly the same, notably how it looks. the widgets, margins, are several pixels off. what i noticed is, when i was testing everything on the old site, eventhough the containers (div) and the widgets are exactly the same size, the positions are off so i had to adjust the position of one widget by a few pixels. but when i applied it on the new site, they were back at being off. when i deleted the position adjustment code (position: relative, etc) it went to being fine. i think the problem is on the old site , because even though the divs and widgets are of the same dimensions they were showing off. any ideas of what went wrong here? the site (top page, the only one i edited) contains many BGs pics so i was thinking if that could be the problem, based on your explanation on how WP makes thumbnails. i have to report every bit of this so any help or insight would be very much appreciated.


    1. Antonio Villegas Avatar

      Hi Edison. It is really difficult to provide you with an answer to this issue without having the possibility of taking a look at it from the inside. When migrating a WordPress site, the devil is in the details. If something is odd with your theme (the appearance of it), maybe the theme is doing things in a weird way. If both databases contain the same content, both servers have the same files, then both sites should look identical. There may be something different between both installations. Try to figure out what is different. Hope you find the answer then.

  34. moto Avatar

    I was able to successfully migrate the WP blog using All-in-One WP Migration plugin, but my original blog was in Gujarati (Indian Language) and now my migrated blog shows ???? instead of the actual content in Gujarati. Please help.

    1. Antonio Villegas Avatar

      Hi there! There must be some problem in the character encoding you have configured in your WordPress (wp-config.php file) or your database. Take a look at this resource that may help you.

  35. Lena Avatar

    Hi there,

    A friend of mine was tasked from moving our page from A to B on the host but with different domains. He downloaded the files but did not back up the php database… and managed to overwrite the original wordpress blog… Major fail.

    Your article gives me an idea that I could directly edit the wp-config.php file and possibly still somewhat manage (and yes I know its far from ideal, but too late for this…)

    Given that I have all the files but I dont have the database backed up whats the best way of going about it?


    1. Antonio Villegas Avatar

      Unfortunately, if the database is gone (or overwritten, which is the same), there is no way to fix it. If that’s not the case, the best way of going is to contact your hosting provider and ask for help. In a migration, the devil is on the details. Surely they will know everything with more detail than me. Good luck!

  36. Esmaeil Avatar

    Thanks a lot for such a great article.
    i have a problem with my product .i transfered data to new host and when i want to see one product give me this Error :

    Not Found
    The requested URL /product/bosch-dishwasher-sms63l06tr/ was not found on this server.

    please help me.

    1. Antonio Villegas Avatar

      Hi Esmaeil. Do you have your plugins transferred? It may be the case that your plugin for products is not active on your new site.

  37. Esmaeil Avatar

    thanks for plugins are activeted but Unfortunately not working None of the methods mentioned.

    1. Antonio Villegas Avatar

      I don’t know exactly how you did the migration, but I’d check the permalinks or ask for help to the new hosting provider.

  38. sahil khaati Avatar
    sahil khaati

    help me, please

    I’m unable to edit wordpress after migrating website one host to another hosting

    1. Antonio Villegas Avatar

      It is impossible to help you if you do not provide more details. Contact your hosting provider and ask them for help.

  39. sadiqali Avatar

    Thank you so much

  40. nick Avatar

    helpful article! bookmarked….

    i have a problem after a migration….( i wish i had used duplicator now….)

    the migrated site looks perfect – i thought it was a success. But when i came to make a small change to the site ( change some padding ) it seems that the change is not made!!!

    if i change text or add a new element it works.
    but i change something like padding or justification it doesnt work

    any ideas?

    1. Antonio Villegas Avatar

      I assume you are changing styles in your theme. Depending on the theme you are using, changes are made on theme settings or adding additional CSS. If your case is the first one, changes should work. Otherwise contact your theme developer. On the other hand, when adding some extra CSS rules it may be the case that the rule is not specific enough and then your changes are overwritten by the theme or some plugin. Unfortunately, without more detail about your particular problem, I cannot be more helpful here.

  41. Fon Anselm Che Avatar
    Fon Anselm Che

    help me, please
    After importing my site using all in one wp migration the updates shows only on my browser. when i switch my browser or device and search for my domain i still see the old site with no changes

    1. Antonio Villegas Avatar

      Hi Fon. I guess you should contact the developers of this plugin. They have this support forum available. In the meantime, check wether there is some cache problem on your site or not.

    2. Christine Avatar

      hey Fon Anselm Che, did you solve this problem? I have the same issue now. will appreciate it if you can provide some experience on it!

  42. Andreea Acsente Avatar
    Andreea Acsente

    Hello everyone and thank you for the support you have offered so far! I am writing to you because I have come to an issue that I heard of anywhere before and I do not know how to solve it. After performing the import/export steps, I have checked my website again (I am using Local by flywheel) and now every single page – from Home, About, Contact, Services – they have all doubled in a weird way. Now I can see 2 pages of each. However, my website says I still have the same number of pages – but for some reason I see them double. It is not only a visual issue, I have had this problem for a few days now and I tried to clone it (it looks the same – everything doubled) and restart it (no success).

    Would you mind helping me? Than you in advance.

    1. Antonio Villegas Avatar

      First thing you should do is to check if the content is duplicated in the database. If that’s the problem, then you’ll need to remove the duplicated content. Otherwise, maybe is a problem with your theme or something else.

    2. Sarah Avatar

      Hi there- How did you fix this issue? I’m experiencing the same thing on WP.

      1. Antonio Villegas Avatar

        Did you check your database? Are duplicated data there?

  43. Sachin Avatar

    After migrating my comments are going to old server. I don’t know what to do.

    1. Antonio Villegas Avatar

      What do you mean by “are going to old server”? Did you migrate them properly?

  44. Alex Avatar


    I have a problem after migration too. I have migrated my wordpress website with migrate guru pulgin.
    The website is not working yet for me. But the contact support from the host I transfered to says it works just fine. It also works on my phone, but not on the laptop.

    Secondly, I cannot use my email. Is says “re-authenticate” and asks me to update the pasword.
    After migrating the website, I changed the nameservers on godaddy (where I got my domain from).

    Any ideas where the problem is and how can I make at least the email to work for now? I am losing lots of emails….

    1. Antonio Villegas Avatar

      According to your explanation, there are several actors involved in the process. My advice is to contact your hosting support again. The are the ones that should know what is happening and may help you on this.

  45. Kushagra Oberoi Avatar
    Kushagra Oberoi

    My entire site is messed up because of migration. Now I am not able to edit anything properly and all formats have changed.

    I don’t know what to do.

    I tried to migrate from a free blog to a blog and everything is all over the place.

    Please help me!🥺

    I am not able to edit anything properly and I had just five blogs that are completely messed up because of formatting.

    Please help me if someone can. I am just a beginner and I don’t know what to do properly.

    1. Antonio Villegas Avatar

      Hi Kushagra. Unfortunately we do not offer these particular migration services. Try to contact with a WordPress professional in your area.

  46. Rex Avatar

    Hi i need help i migrated a template from my test page to my main website and it flashed everything away is there anyway i can retrieve all my post

    1. Antonio Villegas Avatar

      Make sure that you are using the same settings on both sites. The problem must be there. In addition to it, try to recover your content from a backup (I hope you have one).

  47. Rex Avatar

    i tried recovering my content using UpdraftPlus but it didnt work

  48. Rex Avatar

    Insread of wp post i now see wpux_b2s_posts

  49. Alex Dumop Avatar
    Alex Dumop

    Hello Antonio, i’ve migrated my wordpress site from one host to another one, keeping the same domain. Migrated databases, edited wp-config, uploaded all files, checked file permisisons, SSL check, but, the wordpress on new server won’t load, all I can see is a blank page, when checking the source-code all I can see is “1”.

    /wp-login.php loads, but when I try to login it keeps reloading wp-login page.

    Do you have any idea on what’s happening? Thank you in advance!

    1. Antonio Villegas Avatar

      To be honest, I have no idea. But you should contact your new hosting provider. On some occasions their server configurations need some tuning to load WordPress installations.

  50. Ann Avatar


    This is a tricky issue. Hoping to get some advices.

    I was working with a client to redesign the business website that uses WordPress (this is for a school project). I imported all the contents onto my WordPress, and rebuilt the website with a new website builder (didn’t have any problems when I imported all the pages into my WordPress)

    I imported one newly built page 5 days ago with WP Import/Export with no issue. I imported another page in 2 days ago, and the next day after that the site went down.

    I contacted the hosting provider, and they said there was change made to DNS records and the domain is pointing at a different domain.

    The business website is also managed by a developer group but they said they don’t access to the DNS records which I find strange.

    Do you think when I imported the new page from my WP server to the business’s WP, it had caused this outage that caused the DNS change?

    I was told the only way to change there the DNS record is directed is by having access to hosting provider account.

    I would really appreciate your response.

    1. Antonio Villegas Avatar

      Hi Ann,

      I don’t think importing just pages break your DNS configuration. If your hosting does not help you directly through support agents, then yes, you will need to share your hosting credentials to the developers of your trust.

Leave a Reply

Your email address will not be published. Required fields are marked *

I have read and agree to the Nelio Software Privacy Policy

Your personal data will be located on SiteGround and will be treated by Nelio Software with the sole purpose of publishing this comment here. The legitimation is carried out through your express consent. Contact us to access, rectify, limit, or delete your data.