With WordPress Installed from Step 2, let’s continue with moving your WordPress.com site to your new self-hosted WordPress site on SiteGround. Note, if your WordPress.com site is on the Business plan, you can follow the instructions at Step 3b instead. You can find those here.
If your site is not on the business plan with WordPress.com then your only option for going self-hosted WordPress is to use the built in WordPress export function. Keep in mind though, this only exports your content, so posts, pages, comments, and media if referenced to in the posts and pages. Themes, customization settings, logos, etc. will not be included in the export file. Also, large sites (lots of media files for example) will most likely time out on the import portion of this process, so will have to be re-imported several times (depending on the site size) before it’s fully imported. One option to get around this is to use SSH and CLI commands to get around the limits, or on SiteGround’s GrowBig and GoGeek plans, SiteGround will actually handle the import for you if you ask them. Another option, upgrade your WordPress.com plan to the Business plan and use the Business plan transfer option here. Yes, this will cost you a bunch of $$$, but WordPress.com will give you a full refund if you cancel the upgrade within 30 days.
Lastly, the Premium themes on WordPress.com are not transferrable, so they will not import/work on the self-hosted site.
Let’s get started!
From your site’s Dashboard, click on Tools to expand the options and click on Export.

In the Export your content section, click on the Export All button.

When the export is complete you’ll see a success message. Click on the Download link to download the export file.

That’s it for the export process. The next step will require you to import the file to your new WordPress installation. Before we get there, you’ll note the downloaded file is a .zip file. The new WordPress installation won’t be able to import directly from the zip file, so this will first have to be extracted. After extraction there’ll be at least one .xml file from the zip file. On larger sites there could be multiple files. Each one will need to be imported separately.
Let’s start importing!
Log in to your new WordPress installation dashboard on your new host we setup in steps one and two, and go to Tools > Import. Scroll down and click on Install Now under WordPress.

After it’s installed, click on the Run Importer link.

Click on the Choose File button and select the xml file from your computer’s hard drive (or the first xml file if there’s more than one) you extracted from the export zip file you downloaded from WordPress.com.

After the file is selected, click on the Upload and import button to start the import.

The file will be uploaded and analyzed. When done, select the Download and import file attachments option to make sure your media files are imported, and click on Submit.

You may get some error messages, and this is normal since not all WordPress.com elements are importable.

If you don’t get a success message indicating the import was successful, navigate back to Tools > Import and run the importer again, upload the file again, and keep doing this until you get a success message. If your site is very large, ie lots of posts and media files, this could take a few iterations to complete. Keep at it until you get the All done. Have fun! message.

When the import’s done, our recommendation is to spend some time setting the site up to look the way you want it. This means installing the theme you want and customizing it to look like your WordPress.com site, so your menus, logo, widgets, etc.. Depending on the theme you had on your WordPress.com site, you may be able to find it in the WordPress repository if was a free theme.
When you’re happy with the look of the site you can start the final steps of pointing your domain name to the new site to take it live. We need to know the name servers to use, so the first let’s grab these from our SiteGround account area. Click on the My Accounts tab, and then the Information & Settings tab, and copy the name servers shown under Account DNS.

If your domain name is registered with WordPress.com, then follow these steps. If your domain name is registered elsewhere, then follow your registrar’s support documentation for changing name servers. In your WordPress.com dashboard for your site, go to Manage > Domains, then click on your domain name.

Click on Name Servers and DNS

Turn off the switch next to the Use WordPress.com Name Servers and enter the two name servers you copied from SiteGround earlier, and click on the Save Custom Name Servers button.

Note that due to something called DNS propagation, it could take some time (a few minutes to several hours) for these settings to work, so don’t worry if it doesn’t work right away.
Now head back to your new dashboard and change all internal temporary domain references to the correct domain. We’ll use a plugin for this, so from the WordPress dashboard, click on Plugins > Add New.

In the search box type in Search & Replace and look for the Search & Replace plugin by Inpsyde GmbH and click on the Install Now button.

Then click on the Activate button.

Go to Tools > Search & Replace, and then create a backup of your existing database just in case. Click not the Create SQL File button just in case.

Now click on the Download SQL File button to download a copy of the backup.

Click on the Search & Replace tab.

Now under the Search for: text box, enter your temporary url you’ve using to access your site. In the Replace with: text box, enter your domain name. You’re going to activate the SSL certificate after this step, so use the full https in the url. So, http://146.66.68.31/~goselfho
in the first field for example, and https://goselfhosted.com
in the second field. Make sure to replace the above with your own temporary and actual domain names.
Select the Select all tables checkbox, make sure Dry Run is selected, and click on the Do Search & Replace button to start the dry run. Your settings should look like this:

The dry run should show the results of a test of the search and replace action.

If your results show nothing was processed or updated, then the search for field may have incorrect information in it. Correct this and try it again.
To run it for real this time, click again the Select all tables checkbox, and uncheck the Dry Run box, choose the Save changes to Database option, then click on the Do Search & Replace button again.

You should get another similar success message, but this time you’ll probably be booted from the dashboard and asked to log back in. You likely won’t be able to log in though since you’ve set the domain url as https and there’s no SSL certificate issued for the domain name. To fix that, head back to your SiteGround account cPanel. Click on the My Accounts tab, and then on the reed Go to cPanel button.

Scroll down to the SECURITY section and click on Let’s Encrypt.

Select your domain (if you have more than one), and click on Install. The SSL certificate will now be queued to be installed, and within a few minutes the domain name will start working again and showing as secure and you’ll be able to log into your WordPress dashboard again.

And that’s it! Your WordPress site is now self-hosted and you can clean up/cancel your plan subscription at WordPress.com.
Disclosure: Some of the links in this page are ‘affiliate links.’ This means if you click on the link and purchase the item or service, we may receive an affiliate commission at no extra cost to you.