Many beginners often start with WordPress.com, but they soon realize its limitations and want to switch to the self-hosted WordPress.org platform.
In this step by step guide, we’ll show you how to properly move your blog from WordPress.com to WordPress.org.
WordPress.com allows anyone to start a blog by creating an account. However, beginners soon realize that there are a lot of limitations on their free WordPress.com blog like limited ability to monetize, can’t install plugins, third-party ads displayed to your users, and more.
This is why users soon switch to the more powerful and popular self-hosted WordPress.org platform.
To understand the differences between the two platforms, see our full comparison of WordPress.com vs WordPress.org.
We recommend using WordPress.org because it gives you complete ownership of your website and freedom to control all its features. To learn more about all these features, see our complete WordPress review with pros and cons.
That being said let’s take a look at how to properly migrate your blog from WordPress.com to WordPress.org.
Things You Need Before You Start
To start with self-hosted WordPress.org, you’ll need a WordPress hosting account and a domain name.
They are also offering nframa users a free domain name and a 60% discount on web hosting. Basically, you can get started for $2.75 / month (and this also includes free SSL).
If your WordPress site already has a custom domain name, then you’ll still need web hosting. Go ahead and signup with Bluehost and under the domain step, add your blog domain. We will show you how to keep the same domain while transferring from WordPress.com to WordPress.org without losing search rankings in the later steps.
Aside from the hosting account, you’ll of course need access to your WordPress.com account, so you can easily move all of your posts, pages, images, comments, and other data over to your self-hosted WordPress site.
Bonus Free Offer: Since a lot of you asked for this, we are now offering free migration service from WordPress.com to WordPress.org as part of our free WordPress blog setup service. During this guided transfer, one of our expert team members will do the entire migration for you (100% free). This means you can switch from WordPress.com to WordPress.org without any risk.
Step 1: Exporting Data from WordPress.com
First, you need to sign in to your WordPress.com site and go to your account dashboard. From the left column, you need to click on the Tools » Export menu and then click on the ‘Export All’ button.
This allows you to export your WordPress site. Once the export file is ready, a download link will be visible. You can click to download the zip file on your computer.
WordPress.com will also email the link to your email address.
Once you have downloaded the file to your computer, you need to unzip it. Inside it, you’ll find an XML file that has all of your posts, pages, images, comments, custom fields, categories, tags, navigation menus, and other data.
Step 2: Setting up WordPress
Now that you have exported your WordPress.com data, the next step is to set up a fresh WordPress install on your web hosting.
WordPress is very easy to install, and it only takes a few clicks. If you signed up with Bluehost like we mentioned above, then WordPress will be automatically installed for you.
Alternatively if you chose a different hosting service, then you can follow our step-by-step tutorial on how to install WordPress within 5 minutes.
Once you have installed WordPress, it is time to import your content into your new self-hosted WordPress website.
Step 3: Importing Content into Self Hosted WordPress Site
In order to import your old WordPress.com site content to your new WordPress.org site, you will need to login to your freshly installed WordPress website’s admin area. From here you need to visit the Tools » Import page and click on the ‘Install Now’ button below WordPress.
WordPress will now install the WordPress importer for you. Once it’s done, you need to click on the ‘Run importer’ link to continue.
It will take you to a screen where you will be asked to upload your WordPress.com XML file that you downloaded in step 1 of this tutorial.
Note: if your file size is larger than 2MB, then you have two options. One is to ask your web hosting company to increase that limit temporarily, so you can get on with the process. The other option would be to split your file by using a WXR file splitter.
When you start importing, you will have the option of assigning imported content to an existing user or create a new user. You’ll also have the option to import file attachments. It is very important that you check this box, so your image files are imported properly.
Step 4: Importing Your Blogroll Links
If you had been using the Links feature on your WordPress.com blog to store blogroll or other links, then you need to follow these instructions to import them. Users who were not using this feature can skip to Step 5.
WordPress does not natively support blogroll feature. If you don’t have too many links in your blogroll, then see our guide on how to add blogroll links in WordPress without using a plugin.
However, if you have too many links, or you would like to keep the blogroll functionality, then continue reading.
Blogroll links are exported in OPML format. It is an XML format that allows you to export and import your links and link categories. Your WordPress.com links have an OPML file located at an address like this:
Replace example with your WordPress.com blog’s subdomain. If you are using a custom domain with your WordPress.com website, then your OPML file can be accessed by visiting a URL like this:
Your OPML file will open in your browser window, and you need to save it to your desktop. Press CTRL+S (Command+S on Mac) to save the file on your computer.
Now that you have a backup of your WordPress.com links, the next step is to import them into WordPress. However, self-hosted WordPress does not have a link manager enabled by default.
You will need to install and activate the Link Manager plugin. The plugin’s page says that it hasn’t been updated in many years. That’s because it didn’t need updating, and you can confidently install this plugin.
Upon activation, the plugin will add a new menu item in your WordPress admin bar labeled ‘Links’.
Next, you need to install and activate the OPML Importer plugin. This plugin simply enables a new importer tool that allows you to import blogroll links.
Upon activation, you need to visit the Tools » Import page and click on ‘Run Importer’ link below the Blogroll importer.
On the Blogroll importer page, you need to upload the OPML file you saved earlier and click on the import OPML file button.
WordPress will now import your links and link categories from the OPML file. You will be able to see the progress and on completion, you will see the success message.
Step 5: Setting your WordPress.com blog to private
Now if you don’t want to redirect your old users to your new site, then this will be your final step.
First, visit your old blog’s WordPress.com dashboard. From the left menu, you need to click on Manage » Settings menu and scroll down to the ‘Privacy’ section.
From here, you need to select ‘Private’ option and then click on the ‘Save settings’ button. This will make your old WordPress.com blog private, and it will only be visible to you or other logged in users that you approve.
Attention: If you have been writing for some time, and you have a loyal audience, then it does not make sense to leave them hanging.
Furthermore, if your blog has been out there for a while, then chances are that it is indexed in Google and other search engines. You can keep all the search engine rankings and easily redirect your old users to your new blog by following Step 6 (highly recommended if your site is established).
Step 6: Redirecting Visitors and Preserving SEO
Redirecting users to the new location with the 301 header is a standard solution to keep search rankings while moving a site from one location to another.
Since you don’t have access to .htaccess on WordPress.com, you cannot make any changes by yourself to retain search engine rankings. However, WordPress.com offers a paid upgrade feature called, Site Redirect, which provides this functionality.
Simply go to WordPress.com blog’s dashboard and click on the Manage » Settings menu item. Under the ‘Site Address’ option, click on the ‘redirect’ link.
On the next screen, you will be asked to provide the domain name where you want visitors to be redirected. Enter your new WordPress.org site’s domain name and click on the go button.
Note: Site redirect is a paid upgrade and costs $13 per year. It will add a 301 redirect which redirects your WordPress.com blog’s visitors and search engines to your new site.
Some of you will ask how long should I keep paying for this Offsite redirect feature? The answer is for as long as you want to. However, we personally think that 2 years would be enough time for your old users to memorize your new domain name.
If you are changing domains, then another thing you want to do is update all in-post URLs. If you ever inter-linked your posts, then those links have to be updated. You can use our article on how to update URLs when moving your WordPress site.
If you had a custom domain on WordPress.com, then you don’t have to worry about anything. Simply change the DNS record to your host, and you will retain all the SEO benefits.