If you have a website or blog hosted on wordpress.com and you wish to move to a different hosting platform, you are in the right place. This step by step guide will show you everything you need to know to move from wordpress.com to wordpress.org (a web hosting server running on WordPress).
How to Move from WordPress.com to WordPress.org
The setup process is actually very easy and quick if you follow this guide. And once you sign up for my recommended plan WordPress will be automatically installed for you (If it’s not installed you can just do it a single click from your cPanel). You will receive an email notifying you of the install.
wordpress.com has a guide for this migration process. But I believe they don’t show all the steps and it might be difficult for users to follow who are not tech-savvy. This guide covers all the necessary steps and I followed this exact process to move one of my websites from wordpress.com to wordpress.org.
Step 1: Export Content from Your WordPress.com Site
Before you start the migration process, you want to create a backup of all of your posts, pages, media, and comments. So just log into the dashboard of your wordpress.com site and export all content from Tools -> Export,

When the export process is finished wordpress.com will send you the file via email. The file sent to you would be in a zip format so you actually need extract to retrieve the XML file in it.
You might receive an error in the email when you click the download button – “Unfortunately, there was an error exporting your site”. Try it a couple of times until you get a success email (it worked for me after trying 3 times).
Step 2: Sign up on Bluehost
In order to host your website, you need a hosting environment running on WordPress. I recommend you to sign up for the Bluehost special WordPress hosting plan here.
Why Bluehost special WordPress hosting?
1. Officially Recommended by WordPress as the #1 WordPress hosting provider

2. Free Domain & Free SSL
If you want to fully optimize your website for search engines and outrank your competitors, there is no alternative to SSL these days. With Bluehost special WordPress hosting plan you can get a Free SSL certificate and a Free Domain.
3. Reliable
WordPress only recommend a web host that offers optimized hosting environment for running WordPress. Since Bluehost is ranked #1 I can assure you that it’s reliable.
4. My WordPress site is running on it
I used to have a blog on the wordpress.com server. But since wordpress.com has a lot of limitations I eventually had to move from wordpress.com to wordpress.org (self-hosted WordPress site).
5. Special Managed WordPress hosting for the price of shared hosting
Bluehost special WordPress hosting plan is special because this plan is not advertised on the Bluehost website. So if you go with this plan you will actually be hosting your website on a managed WordPress hosting environment for the price of shared hosting.
Step 3: Bluehost Special WordPress Hosting Signup
If you didn’t finish the signup process in step 2, here is what you need to do,
1. Go to the Bluehost special WordPress hosting plan page and click “Get Started Now”.

2. Select a plan that is suitable for your website.

Normally you would probably go for the basic/plus plan. But since the prime one is currently on sale I would recommend you to go for that instead.
3. Type your existing domain name in the “I have a domain name” field and click “next”.

4. Enter your personal and payment information.

5. Select if you wish to sign up for a 12-month/24-month/36-month/60-month term and click “submit”.

6. Once you have successfully made the payment, you will be redirected to the confirmation page.

Click “Create your password” to create a password for your Bluehost control panel.
You will also receive a welcome email from Bluehost that will contain all of your account related information. Please make sure to keep this information in a safe place.

7. Once you have set a password for your control panel, you will get redirected to your Bluehost dashboard where it will initiate the installation of WordPress on your new site.
8. Pick a theme for your site (feel free to skip this step if you want to install a theme later).

9. That’s it! WordPress installation should be done for you. Click “Start Building” to go to the WordPress admin dashboard and set up your website.

10. Once you are on your wp-admin dashboard you can start installing plugins and customizing your website.

One good thing I like about this Bluehost WordPress plan is that it knows that you are moving your site. So instead of setting the site address to your actual domain name, it creates a temporary site address for you. For example,
http://box4657.temp.domains/~mytest/
This allows you to work on your new site on the side while your actual website hosted on the wordpress.com server continues to get visits as usual.
Step 4: Import Content into Your New Site
Now it’s time to import all of your content into this new site. Go to Tools -> Import and select WordPress.

Choose the XML file on your computer that you saved earlier and select Download and import file attachments.
Step 5: Set up the Permalinks
Your permalinks should already be set to Day and name. This is how it is set on a wordpress.com site (even though you don’t get any option to modify it). If it is not set for some reason please make sure to update it. Otherwise, your existing posts will go to a 404 page when you launch your new site.

Step 6: Update Your Site URL
Importing content into your new site is the most important part of website migration. But if you want to get some other work done feel free do it before we go to the next step. In this step, we are going to update our temporary URL to our actual site address. That means we will not be able to access this site for now (it will take you to the site hosted on the wordpress.com server unless you change its DNS record).
From your Bluehost control panel go to My Sites and click Manage Site on the website to which you want to apply this setting.

Switch to the “Settings” tab, enter your actual “Site URL” and click “Save Updates”.

For some reason, if you need to access this new site, you can change it back to your temporary site URL. Alternatively, you can edit the hosts file on our computer so it forces your browser to go to this new site.
Step 7: Update Your DNS Records
When your site is hosted on the wordpress.com server the domain name automatically points to their server. Now that you are moving to Bluehost you need to update your existing DNS records so your traffic starts to come to the new site.
Go to “My Sites” from your wordpress.com account, select your website and click “Domains”. Now select Name Servers and DNS and Use Custom Name Servers.

Update it with your new name servers. This information should already be in the welcome email that Bluehost sent you. Once you are done click “Save Custom Name Servers”.
If your domain is registered elsewhere and not on wordpress.com, you can apply this same method to point it to the new name servers.
Once you have updated that record some traffic will start to see the new site and some will see the old one. But they won’t know the difference because both sites look the same. It usually takes between 24-72 hours for the DNS propagation of name servers to fully propagate. After this period all of your traffic should only come to this new site.
Step 8: Connect Jetpack to WordPress.com
A self-hosted WordPress install doesn’t come with all the wordpress.com features that you get by default. In order to get these features, you will need to install the Jetpack WordPress plugin and connect your website to wordpress.com. This will also allow you to enable stats on this website.
Go to “Plugins->Add New” and install “Jetpack by WordPress.com”. This is a featured plugin so you don’t even need to search for it.
Once Jetpack is installed you just connect it to the wordpress.com account where your site is hosted and all of your wordpress.com features will be available to you. You can also enable/disable certain features in the Jetpack plugin.
Step 9: Import Stats and Subscribers
Users who subscribed to your site don’t get imported into your new site automatically. You can import them from your wordpress.com site by following the instructions here: https://jetpack.com/support/subscription-migration-tool/.
When you connect to your wordpress.com account your new site stats reset. As far as I know, there is no option in the wordpress.com account settings to sync with your old stats. You can request the wordpress.com support staff to merge it with your new site stats.
That’s it! you have successfully moved from wordpress.com to wordpress.org. Your new site should be all ready to go now. If you have any questions about the migration process feel free to share it in the comments.