Last week I’ve decided to move my blog from WordPress.com to WordPress.org and self hosted, I thought it will be an easy straight forward process, but it turned out it is not 🙁 especially if you have been blogging for a while and you have popular posts and good traffic coming from search engines.
Why I decided to move? Because I felt that I need more control of my blog; I want to customize the look and theme, have my own gadgets and plugins, and have better analysis of who is visiting my blog using Google analytic tool. WordPress.com is great platform for just blogging and forgetting anything else. The good thing I did when I started using WordPress.com that I registered a custom domain so my Google page rank is not affected during this move.
So In this post I will share my own experience on how I moved my blog. I know there are tons of articles from very experienced bloggers talking about this topic, but really there are some tiny details not covered in the articles I found and it kept me wondering if I’m doing the right thing or not, as well when you move your blog you want to do it with minimal down time, or at least you keep your old blog up and running while your new one is fully configured and ready to welcome your visitors.
I followed the steps below which I found them logically correct, you might do it in different way and it will be great if you shared your experience in the comments section.
Step 1: Setting up shared host with good web hosting company
First things first, you need to setup shared hosting account, there are many out there, I’ve done comparison between different hosts and finally chose Bluehost, and to be honest it was excellent choice so far, especially the customer support, they answer your phone call/chat with very minimal waiting time (1-2 minutes) and they are really helpful and patient.
Once you create an account on your preferred host company, you will have access to their control panel, you need to install the latest version of WordPress.org, it is an easy process and I followed this link to install WordPress.org using simple scripts, really it is one click setup.
After the installation is done you can access your new WordPress.org admin page using the specified IP address i.e: http://188.8.131.52/we-admin/ Once you access it will look the same as WordPress.com but without any content and with very set of simple themes, for now you can choose any one i.e (Twenty Fourteen). Note: Do not change your given IP address from your host company to your domain name at this moment; because your custom domain name is still registered with WordPress.com and points to your old blog. We’ll do this step later once you migrate everything to your new blog.
Before jumping into selecting themes and installing plugins, let’s talk how you can export all your content from your old blog.
Step 2: Exporting all your content from WordPress.com
Now let’s go back to the old blog and export all it is content (Posts, Pages, Comments, Tags, Categories, Terms, Navigation Menu, as well your Images) so we can import them to the new blog.
I’ve followed the first three steps of this article to do the export/import thing, it is very straight forward and basic, we’ll talk about step 4 and 5 in the article later on.
At this moment you should have imported all your content to your new blog, you have your posts, tags, pages, images, etc… But in my case once I previewed the imported posts on the new blog I was upset 🙁 why? because all of my posts contained code snippets, and in WordPress.com I used to wrap them with special html attributes which WordPress.com only understands.
So in my case I visited every post and did some modification on those code snippets. I thought it will be a painful process, but eventually it was a simple one. I knew that I needed to install plugins which supports pasting code snippets so I jumped to the plugins sections and searched for a good plugin were I can use it to wrap my code. There are many plugins, I decided to use Crayon Syntax Highlighter and this was a great choice, you can check my other posts to see how the code snippets are formatted, it is way better than the formatting supported in WordPress.com.
Step 3: Using a new theme so your blog shines!
After I finished this process for around 20 posts, I decided it is the time to search for themes and pick one that it is SEO friendly, doesn’t generate unneeded HTML in arbitrary way. There are many many WordPress.org themes out there, some are free and some are paid. I didn’t do an extensive search here, but I decided to use a theme and framework powered by StudioPress, I’ve made my decision based on the great reviews all over the internet. You can read how Genesis Framework empowers your blog here. The theme and framework cost around 100$ for sure you can use other themes for around 40$ but you won’t get the framework.
Installing the framework and the theme is very simple, after you create an account and pay the fees, you will be able to download two zip files (one for the framework and another one for the theme) then you can follow this link to install them on your new blog.
After the theme is installed, you can browse your new blog with the new theme. If you want to customize the theme then you will find a lot of resources and tutorials once you log in to your StudioPress account. Very simple to follow and implement.
Step 4: Configuring SEO on your new blog
When I was using WordPress.com I never thought of SEO tools, WordPress.com took care of everything, I only added Google/Bing webmaster tools and that’s it, but in WordPress.org it is a different story, you need to take care of this, you need to install plugin which helps you to write optimized content for search engines as well as taking care of your website sitemaps.
There are a lot of SEO plugins available but the most popular one is Yoast WordPress SEO by Joost de Valk. This tool is really amazing and it is easy to use, it has lots of features but what I really liked about it and was not available in WordPress.com that Yoast SEO provides a page analysis tool indicator to help you writing SEO friendly posts as the image below:
So in my case I opened again every post and started to add some focus keyword, meta description. But do not get tempted to change the SEO title because this URL is already out for long time and for sure you do not want to end up with many 404 pages when you move to the new blog.
As well you can use the SEO plugin to add Google, Bing, Alexa webmaster tools key from the SEO Dashboard page, it is pretty the same as in WordPress.com.
Step 5: Getting the cool features in WordPress.com to WordPress.org
To be honest there was some cool features available in WordPress.com which doesn’t exists by default in WordPress.org until you install a third party plugin. The tools I like are (Stats, Subscription box, the like button, and mobile push notifications when you use WordPress.com app). The good news that you didn’t loose them, you can have the same exact tools by installing JetPack which is provided by wordpress.com, all you need to do is to connect your new blog to your WordPress.com account then you start customizing the tools you want to use from JetPack.
The last thing I installed is Google Analytics where you can have deep insight about your visitors, it has too many details and you can’t compare it to the stats provided by JetPack. So to install it I’ve followed these simple instructions in this link.
Step 6: Moving existing domain to your web host
Alright, until this moment no one can access my new blog unless the visitor knows the IP address assigned to me, so you can keep changing and experiencing new plugins/widgets on your new installation until you are satisfied with the results. Once you are happy and good to go, then it is the time to the move. The move means: moving your existing domain to another host in my case Bluehost, so the domain starts pointing to your new WordPress.org installation and visitors will be able to see your new blog. This was the most stressful part of the whole process because I didn’t know about the DNS propagation delay which I’ll talk about it soon.
Now you want to Transfer the domain registered with WordPress.com to another registrar, so in future you can manage the domain renewals from one place (your hosting provider). There is another option which is changing the name servers to point the domain to your hosting provider, in this case you need to renew your domain name and manage it from WordPress.com. Personally, I prefer the Transfer option. The process to transfer is not easy, but you can follow the instructions in this link to transfer it.
Once you made all the necessary steps in WordPress.com following the previous link, you need to go to your hosting company web site and complete the transfer there. Most of the well known hosting companies have clear step by step instructions on how to complete this transfer. In my case I followed this video tutorial provided by Bluehost. You need to have your credit card scanned from the front and back because you need to verify by email that you are the owner for this host account.
Congratulations you are done! You need now to set back and wait until the DNS is propagated, this might take up to 36 hours, in my case it took exactly 22 hours.
During this process I ended up with some questions that I did’t find clear answers to it, below are the questions and how I figured out to answer them!
Q1. What will happen to my WordPress.com blog and WordPress.org while DNS is propagating?
Most probably your new blog will be temporarily unavailable until the DNS propagation is done, the best thing you can do here is to keep serving your WordPress.com blog to your readers but without using the top domain name, you need to go to WordPress.com admin page, choose My Domains and set your primary domain to “example.wordpress.com” as the image below. By doing this; users who are trying to access your blog using your top domain name “www.example.com” will be redirected to “example.wordpress.com” until the DNS propagation is done. You can always check the DNS propagation progress by using tool called Global DNS Propagation Check.
Now go back to your WordPress.org installation, it is the right time to start accessing your new blog by domain name not IP, you can do this by navigating to settings->general then change WordPress address and Site Address to your domain name, i.e: https://bitoftech.net. Note: you might not be able to access your admin page once you do this step until the DNS is fully propagated; so for any reason you want to change it back to IP you can contact your host support to change it for you, or you can change it manually from your MySQL database.
This is the ugliest part of the move, but you really need to relax and wait the DNS to propagate, there is nothing you or your hosting company can do to fasten this process.
Q2. What to do with my old WordPress.com blog after the new one is up and running?
You can keep the old blog and visitors access it using example.wordpress.com, but I think it is little bit confusing because you have migrated all your content to the new one. In my opinion the best thing to do is to set your old blog site viability to Private. You can do this by navigating to Settings->Reading and set the site visibility to private as the image below:
By doing this any visitor trying to access your old blog using the url (http://example.wordpress.com) will be asked to provide credentials to access this blog. Most probably users do not know this URL and search engines didn’t index any pages from it because you just used it for short time (until DNS propagated).
Q3. Do I need to use WordPress.com permanent site redirect (301)?
WordPress.com offers a nice service for 13$/year were you will be able to to forward visitors to your WordPress.org blog, but in my case there was no need for this and I won’t loose SEO ranking because I’ve been using custom domain name once I started blogging at wordpress.com. If you do not have custom domain name and your blog domain was like example.wordpress.com then you definitely need this service so you won’t loose SEO ranking.
Q4. Do I need to verify Google/Bing webmaster tools?
In theory you shouldn’t verify them again because you are using the same domain name and the same meta content value, but I preferred to re-verify them again. All you need to do is to log in to your webmaster tool, verify your website, submit your new site map XML file and that’s it.
I hope this post will be useful for anyone moving his/her blog to self hosted blog, once you are done, all your readers will notice the difference especially if you are using a nice theme 🙂
That’s it for now, let me hear your opinion and experience if you moved your blog already, maybe there is simpler way you can share it with us.