Moving from WordPress.com to WordPress.org – My experience and troubles I faced

There are many tutorials out there on YouTube and even on blogs such as WPBeginner, to teach you how to move from WordPress.com to WordPress.org. But none of them really goes into detail explaining what to do when you face problems and how to troubleshoot them.

I took almost a week to get my site moved from WordPress.com to WordPress.org. And there were much frustration because it just didn’t go as smoothly as those tutorials were shown. Why? Because those tutorials were all very simple scenarios. Their examples usually involve moving a site with minimal posts and media. But in real life, you WordPress.com blog can have 100 over posts and media over 3GB – which can cause issues.

I’m going to go over the steps I took and the problems I encountered along the way. So that if you do move, you wouldn’t have to suffer a week like me.

My setup

This is what my current build is like on WordPress.com

  • 87 posts (85 published, 2 drafts)
  • 3.2GB worth of media content
  • 101 comments
  • 3 pages
  • Running on ‘Canard’ theme
  • Have a custom domain name with WordPress.com

The unique thing about my situation is that I have a custom domain which I paid for with WordPress.com. Most tutorials online usually cover the situation whereby you only have a free domain on WordPress.com, then getting you purchasing a custom domain with Bluehost or GoDaddy.

Because I already had a custom domain bought with WordPress.com, the setup with Bluehost was different. And there was no tutorials online showing me what to do with the nuances involved.

The steps I took

1. Export all my data from WordPress.com

I login to my WordPress.com account, went to ‘Tools’ > ‘Export’. Clicked on ‘Export all’.

Exporting content from your WordPress.com site

A .zip download began. Once it’s done, I extracted the files and got 2 .xml files. One (001) was 3.2mb, the other (002) was 0.2mb.

I was wondering how did all my 3.2GB of media content be compressed into a 3mb .xml file. By doing further research, I realised that the .xml file contains the file URL to your images. Once you import the .xml file into the WordPress.org website, it will ping the file URLs and pull the images over to the new site.

2. Find a web hosting service to setup your WordPress.org site

Many web hosting service providers such as Hostgator or Bluehost offer dedicated WordPress hosting plans. Once you sign up with them, they will provide you with a website link that will bring you to the frontend and backend of your WordPress.org site. There’s no need to download the WordPress.org application, install a database or what not.

I personally went with Bluehost – mainly because it is cheap at US$2.75/mo (provided you sign a 36-month plan), which totals up to around S$155 or S$4.30/mo. Also, they provide free SSL Certificate (very important as your WordPress.com has SSL certification as well).

Bluehost wordpress plans and pricing
Entered the domain which I purchased with WordPress.com

Once I was done with the payment, I got an email from Bluehost containing the following information which you will need in the later steps.

Because I did not create a new domain with Bluehost, I got a temporary domain to work on my site before bringing the site live. I can then login to the Bluehost Portal and start working on my new WordPress.org site.

Upon entering your temporary WordPress.org site, you will be need to create a new user and set a password. This will be your WordPress.org login details.

3. Importing WordPress.com content to the new WordPress.org site

This is where I faced the bulk of my problems.

Wordpress installer problems

I followed all tutorials that suggested using the built-in WordPress Importer. I uploaded part 001 of my .xml file and waited for the media files to populate in the Media Library. Remember that you have to wait because the .xml will ping the file URLs and pull the images over to the new site. All of my media was 3.2GB large so I left the computer overnight in case it was downloading.

But the next morning – only 9 images were imported to my library and only 2 posts were imported. Nothing more was imported. I reached out the Bluehost live chat service but they weren’t much help. Thankfully, I reached out to Andy from SmartWP for help. He was kind enough to suggest alternative methods of importing content to my new WordPress.org site, which worked.

So what caused the import to fail? My guess was that Bluehost has a limit on upload size and execution time. I’m not too sure but I’m certain that Bluehost isn’t able to process a 3.2GB worth of uploads. I even tried using a WXR splitter, and tried exporting my content by a monthly cut then importing them one by one. But the result was always the same – the import was never full and missing images in the media library.

Importing to a localhost then using Duplicator to export and import to WordPress.org site

This sub-title above is TLDR version Andy’s recommendation. Importing the .xml files to a localhost (ie. WordPress.rog running offline on your desktop) will get rid of any upload cap issues. Duplicator is a way more efficient tool of migrating because brings over everything, like its name suggests – it duplicates your site.

This method is more long-winded but it will work better if you are migrating a big site like mine where I have lots of media content.

I will link the full procedure in another post here.

4. Updating Permalinks

After I saw all my content imported successfully in my temporary site, I proceeded to update my permalinks.

WordPress.com uses a ‘Day and name’ permalink style to format post links. I have to change it on the WordPress.org site by going to ‘Settings’ > ‘Permalinks’.

This is important so that when the WordPress.org site goes live, any pingback link in your posts will not get an error.

5. Edit the theme, install Jetpack plugin and Layout Grid plugin

The .xml files in your original WordPress.com exports carries all the content except theme and plugins. As I had made some customisations to my theme in WordPress.com, I had to do the same thing to my WordPress.org theme.

Also, WordPress.com is powered mainly by Jetpack, so certain theme customisations such as site logo and settings you had in WordPress.com will not be available on the WordPress.org unless the Jetpack plugin is installed.

Grid Layout is also another plugin I installed because some of my pages used the grid layout which is pre-installed in WordPress.com.

6. Test the temporary WordPress.org site

After tweaking with the theme and customisation to get it as close to my old WordPress.com look, I surfed my own site to make sure that there are no broken pages or links.

7. Moving your subscribers

WordPress.com is powered by Jetpack, so to move my subscribers, I can use Jetpack plugin on my WordPress.org site.

Simply follow the instructions here, like I did.

8. Bringing the temporary site live – changing the name servers

In the usual tutorials where the new domain is bought with Bluehost, the site is already live with the purchased domain. The only thing left to do is to re-direct visitors to the new domain, which you can purchase this service from WordPress.com for $13/year.

However, as my custom domain is bought with WordPress.com, the re-direct will be done automatically by WordPress.com provided you keep the purchased domain as your ‘Primary’ domain on WordPress.com. But unlike the usual case, my site on Bluehost is not live – it is a temporary website.

In order to switch the WordPress.org site to display my ‘techjioblog.com’ domain, I have to change the name servers of my domain. You cannot just change site URL. At first, I was very confused about switching name servers and there was also no guide on the internet. Based on my experience, here are some things I learnt:

  • Name servers are part of a large database called the Domain Name System (DNS), which holds information that tells the Internet what to do. We see as a bunch of numbers.
  • WordPress.com hosted sites are hosted on DNS 192.0.78.30 or 192.0.78.31 (if you do a quick Google, you’ll find that they belong to Automattic)
  • Bluehost sites are on 74.220.219.26

From my experience, what I understand is that when you switch name servers, you are basically telling the Internet: “for this domain, pull the information from this place (ie. DNS)”.

Changing of name servers on WordPress.com to Bluehost
Change the name servers on WordPress.com to point to Bluehost

So, when I switched the name servers from default WordPress to Bluehost, I’m basically telling the internet the stop getting information from WordPress and get it from Bluehost.

The act of switching name servers is called DNS Propagation – ISP nodes across the world will have to update their caches to point your domain to a new DNS. And this process usually takes 1 to 24 hours, or even a full 48 hours to fully complete.

What happened to my WordPress.com site

After I switched name servers, I soon realised that my URL ‘techjioblog.com’ went down. I got error on my web browser saying that the page was not found. This is because my domain was no longer getting information from WordPress.com. And because I did not change the site URL of my temporary site, the domain ‘techjioblog.com’ even when pointed successfully to Bluehost, will be unable to produce any information.

I realised that in order to prevent my blog to go down for hours until the DNS propagation completes, I decided to change the site URL on my WordPress.org site.

Changing the site URL on my WordPress.org site (via Bluehost)

I changed the address to my domain so that in locations where the DNS propagation is complete, people would at least be re-directed to the new site rather than the domain being completely down.

However, I realised that because of doing this, sometimes I am unable to even log in to my wp-admin page. I will end up getting a blank page that just returns the text “()”. I believe this might be due to the DNS propagation not being fully complete. Clearing of my browser’s cache does work as a quick fix to regain access to my wp-admin page.

Also, even if you change your site URL to a https one, you still can have SSL errors on Google when people visit your page. I kept having my website showing up with “Your connection is not private” error shown below.

your connection is not private wordpress error

How to check if the DNS propagation is completed

A Bluehost agent recommended me to use WhatsMyDNS to check the status.

During the DNS propagation, you can see that the DNS returned for my domain is a mix of two servers. This means that in some locations, my domain will pull information from WordPress.com, and some from Bluehost. Sometimes some locations will show that they are with Bluehost servers, then an hour later they go back to WordPress.com’s. I have no idea why that happens.

Domain points to mix of two name servers – WordPress (Automattic) and Bluehost

After about the 36 hours mark, I started to see that all the locations are showing that my custom domain points to Bluehost.

Domain points to Bluehost

9. Enabling SSL certificate

After the DNS propagation is complete, remember to go into the Security settings of your Bluehost portal to toggle on the Free SSL certificate that Bluehost provides.

Bluehost free SSL certificate
It may show pending, just wait a few hours and it should be complete

If you don’t do this, your site hosted by Bluehost will always show the “Not Secure” exclamation which isn’t gonna do credibility any good.

All done

If your new WordPress.org is linked to your Jetpack account, you should be able to see stats of your new migrated site on WordPress.com as well. When you finally see zero view stats on your old WordPress.com, it is safe to conclude that your site has successfully migrated.

Also, you do not need to login to Bluehost everytime you want to access your WordPress.org site. Simply go to “your domain name”.com/wp-admin and login via the username and password you created, and you’re in.

If you are reading this and are also transitioning from WordPress.com to WordPress.org, I hope you found this relatable and helpful, supplementing the online guides out there. If you have any questions, let me know and I will try my best to answer based on my experience.

Special thanks

Big shoutout to Andy from SmartWP. Not only did he help me out my problem of migrating content, he also shared various tips and plugins which were very useful in settling into WordPress.org.

If you need any WordPress.org help, feel free to visit his site or watch his YouTube channel, he provided in-depth and useful tips and tricks!