Key Takeaways
- Migrating from WordPress.com to a self-hosted WordPress site offers more complex plugins, customization, and functionality, but requires planning and time.
- Replicating the design of a WordPress.com site on a self-hosted site can be challenging, especially if the original theme isn’t available on WordPress.org. Options include finding a similar theme and customizing it, or hiring a developer to create a custom theme.
- Some features, such as menus, can only be exported using the “all content” option and may require tweaks upon import. Custom fonts, widgets, and some site settings cannot be exported and must be manually set up on the new site.
- If a custom domain name was used on WordPress.com, it’s important to change the name servers or transfer the domain to another provider to continue using it without needing to log in to WordPress.com.
- After migrating, it’s necessary to verify that all content has been moved correctly, that images are being loaded from the new site’s media library, and that the site is functioning properly. The old WordPress.com site can then be made hidden, but not deleted, as it may still be needed for certain functions.
WordPress.com is a limited version of WordPress run by Automattic. Here, you can create a blog or website in moments without worrying about hosting and managing your WordPress. However, to use many more complex plugins and functionality, and to have the full breadth of customization you desire, you may at some point decide to use the full WordPress platform available from WordPress.org and “self-host” it – host it on your own server, or pay a company for hosting services.
Moving your blog from the “managed hosting” at WordPress.com to a self-hosted installation of the full WordPress platform requires a little planning, and some time, but can definitely be worth it in the end.
For the most part, getting your content out of WordPress.com is a fairly easy task. What is not easy, though, is matching your design from WordPress.com, and trying to replicate what you had on that platform on the new one.
If you happened to choose one of the themes that are built for WordPress.com by the team at Automattic, then you may be out of luck if it’s not available in the WordPress.org repository. Consider launching a new theme design for your site along with the move. However, if that’s not an option and you are very attached to your current WordPress.com site’s appearance, there are two ways you can go about replicating this look on your own hosting.
- The first way is to look for a free or paid version of a theme which is as close in design as possible to the one you chose originally, and then setup a child theme to modify the CSS to get it looking as similar as you can to the old one.
- The second way is to hire a developer and get a theme custom-coded for you to match your original design.
As for exporting other features, some, like menus, are only possible if you export using the “all content” option, and will require minor tweaks upon import to the new WordPress installation. Most plugins that you had before (and thousands more) can be found in the WordPress.org repository, and with thanks to the Jetpack plugin, you can enable the social functions, subscriber, and statistics from WordPress.com. This will allow you to take advantage of the desktop and mobile apps to help publish and manage your site on the go.
There are some elements that are not currently possible to export: custom fonts, widgets, and some site settings (such as the site permalink structure). For the most part, you will be able to replace the fonts with something similar after the content import, or even use a fonts plugin or custom inclusion to add the same one back in. You will read about handling the migration of your permalink structure later in this post.
Lastly, if you used a custom domain name on WordPress.com and will be using it with the new site as well, don’t forget to change your name servers, or even transfer the domain name away from WordPress.com to another provider so you can continue to use the domain for the future without needing to login to WordPress.com to alter settings.
In order to do the export in the quickest amount of time, this step-by-step guide requires two things. The first is a functioning site on WordPress.com that contains at least one blog post or page (so we have something to export), preferably with images uploaded and embedded in the post. The second is a new WordPress install on your favorite hosting provider.
Getting Started
First, log in to your WordPress.com account.
First you need to make sure your site has been set to “public”. This gives the necessary permissions that allow the import on your installation to download the images and other media attached in the posts and pages. Without this step, you will need to access your media library, and download a copy of each item in the media library and manually upload and reattach to each post and page (a time consuming job).
To do this go to My Site > Settings > Privacy, and select Public, then save settings.
Note that the above image is of my own WordPress.com account where I manage a few different sites. From this account dashboard, you can also perform exports. The only difference is the fact that WordPress sends an email with a link to the finished file for download.
After accessing the admin area of the particular site in question, under the “Tools” menu, select the submenu “Start Export”.
From here you will need to decide what exactly you would like to export. You could export all elements in one go, but for bigger sites, I recommend splitting this up, and only exporting portions of the site at once (i.e. pages, then posts), and for even bigger sites, exporting based on authors, or published posts followed by drafts, etc. The key here is to plan what to export, and then manage the files for importing.
There are elements that you won’t have on your self-installed sites. If you don’t wish to install the Jetpack plugin, for instance, exporting the Feedback, Testimonial, or Projects/Portfolio sections will be unnecessary. They are part of WordPress.com (and of the Jetpack plugin on self-hosted WordPress) and not a standard part of the WordPress platform.
If you did want a portfolio section and have original content in your WordPress.com site, but didn’t want to use Jetpack, because of differences in table names, I suggest installing Jetpack for the migration, then afterwards install your prefered portfolio plugin, and copy and paste content into the new area. After that, you could delete Jetpack’s content before finally deactivating and uninstalling the unwanted plugin.
By default, you won’t see the testimonial and Projects sections in the export list, if they aren’t enabled in the settings page, so don’t worry if you don’t have them enabled. If you weren’t using them, then they will not be included in the export of “all content” or individual exports.
One main reason I recommend splitting out the posts from the pages for larger sites is that sometimes the images don’t get imported correctly, or they get corrupted in some way. So, breaking it down into sections makes for easier troubleshooting if required, and less wasted time from having to delete all posts and pages and start again. But the caveat to this is that you can’t export menus separately – the only option is via the “all content” export feature if you need to export and import your menus rather than rebuilding them.
Just make your selection, and click “Download Export File”. There really is no right or wrong here, if you don’t like the import, just dump and delete the posts/pages, and create a new export file and do it again.
An XML file will be downloaded to your computer.
Migrating from WordPress.com Using Your Exported Data
Now that you have made sure your old site is public accessible and you have your exported content, log in to your new hosted WordPress website. For best results, install the theme and plugins that add the same functionality as your old site. You also need to change the permalink settings to match your WordPress.com site structure for the blog.
Change the settings to day and name, this matches the default WordPress.com permalink structure. If in the future you want to change this, you should also setup a 301 redirect plugin, add a header and footer plugin to insert your Google Analytics tracking codes, and setup a Google Search Console account to monitor broken links, and old page structures that need redirecting or creation, as well as other important notifications from Google about your site, this ultimately will help the search engines and users find the changed URLs. But during the import, you’ll want things to work as similarly to your old WordPress.com site as possible for simplicity’s sake.
Now it is time to import your content! To do this, navigate to “Tools” then “Import”. The first time you do this, you will install the WordPress importer plugin. The next time you use it, you will just see “Run Importer”.
Select your XML file from your computer, and click “upload file and import”.
You are immediately presented with the ability import the existing users into the site (select nothing), to assign the posts to a new user (enter a new username) or to assign it to your admin user. Be careful here; if you have more than one author you need to select nothing, so that all previous authors are added to the site, with their correct posts assigned to them. Choosing a user will override any previous author information from the export.
In this example, I have only one user, and don’t wish to make another user, but instead want to re-assign all posts and pages to my new admin user. In the highlighted box below, I will select my current admin user. Also tick “Download and import file attachments”, this is needed to get your media out of your WordPress.com account into your new media library.
Now hit submit and wait and wait till you see the next notification. The time this will take depends on how much content you have, the size and quantity of your media, and other networking factors of your hosting platform.
When it has finished importing it will remind you to update any imported users. By default, as a security measure all new imported users will be made “Subscribers”. You can then change their roles, passwords, etc from the Users section.
We are almost done, now we need to verify things went smoothly and the next steps needed to get everything running right.
First, double-check that the correct number of posts and pages and other custom post types are now inside your new site.
Then check that the images and attachments were imported into your media library.
Create the menu (or assign the menu to the correct area in the theme if you imported it), assign widgets, and copy over any data that was in your widget areas from the old WordPress.com site, because as noted above, this is not included in the export file.
Lastly we need to verify that the images embedded in your posts are actually loaded from your new site’s media library, and not still being loaded from the WordPress.com site.
To do this, I first check that the site loads on the frontend and that the content is appearing. When hovering over featured images, they match the correct URL of the new site. I next verify each of the posts/pages in the editor, using text mode. The reason for this is to look for the site url in the image attachments. If this is wrong, it will stand out to you (you could also use the search field in your browser to highlight the URL wordpress.com
, to save some time – it shouldn’t appear on the new site). Whereas if you look in visual mode you won’t see the difference until that image is either deleted, or you change the privacy setting on the WordPress.com site to private.
After all checks are done, and you have confirmed that all your data is moved across, you can simply make your WordPress.com account hidden. Don’t delete it, because as I mentioned earlier, if you want to use JetPack for stats and the desktop and mobile apps, you will need a WordPress.com account to activate and sync to your new site. You can also enable other services offered by WordPress.com, such as VaultPress (backups) and Akismet (spam protection) if you desire.
But wait, don’t forget that your users will still be going to https://twentyseventeendemo.wordpress.com/
, (your WordPress.com sub-domain) and you need to setup a redirect to the new address (this only applies if you didn’t buy and map a custom domain name). You don’t have access to the server so you will have to use the paid option found here to pay for the redirection to take place. https://wordpress.com/domains/add/site-redirect/ it only costs a couple of dollars each year. Like when you move to a new house and have your mail redirected, you can choose to keep paying for this re-direction, or, sometime in the future, stop. I suggest you have a plan in place as to what you are wanting to do, and start updating your links around the web to point to the new correct location for your site. This includes reaching out to old contacts and give them the new link. It will save your bottom dollar in the long run, and is the perfect time to talk to those contacts about your business, blog or services.
Troubleshooting Tips
As mentioned earlier, for bigger sites I like to export sections of the site instead of using the all content export. One common problem is the importing of images. If you site is really big, just dumping the posts and starting again can be painful after an error. Thankfully, other solutions exist in the form of plugins that aid in downloading of your externally linked images, importing them into the media library and attaching it to the posts instead. One plugin I recommend is Image Teleporter. It can help import images (beyond just helping with migration errors), as they suggest in their page, it can also be used to bring in embedded images from services like Flickr, Instagram, or Pinterest, so they are hosted locally for a faster site.
Does the WordPress Importer plugin repeatedly fail for your bigger sites? If so, the developers over at Human Made that work mainly on VIP WordPress customers developed a WordPress import fork that works really well for larger WordPress imports. Recently it also came to my attention that you can perform migrations using the VaultPress backups from your WordPress.com account. To do this you need to be on a paid tier that includes backups, but from this, instead of restoring backups to the WordPress.com site, you can restore to your self-hosted, Jetpack connected site. This is a method of importing to a self-hosted environment that I will be testing in the future.
Have any personal experiences with moving from WordPress.com to a self-hosted installation? Share them in the comments below!
Frequently Asked Questions about Migrating from WordPress.com to WordPress.org
What are the main differences between WordPress.com and WordPress.org?
WordPress.com is a hosting service created by the co-founder of WordPress, Matt Mullenweg. It’s great for beginners as it takes care of all the web hosting for you. It’s completely free, but it does come with some limitations. On the other hand, WordPress.org, also known as self-hosted WordPress, is where you host your own website. It’s completely customizable and you have full control over your website.
Why should I migrate from WordPress.com to WordPress.org?
If you want more control over your website, then migrating to WordPress.org is a good idea. With WordPress.org, you can install plugins, customize your site design, and have access to your website’s database. It’s also a better option if you’re planning to monetize your website as WordPress.com has some restrictions on selling ads and sponsored posts.
How do I migrate my content from WordPress.com to WordPress.org?
The process involves exporting your content from WordPress.com and then importing it into your new WordPress.org site. You can do this by going to the ‘Tools’ section in your WordPress.com dashboard and clicking on ‘Export’. Then, in your WordPress.org dashboard, go to ‘Tools’ and click on ‘Import’.
Will I lose my content during the migration?
No, you won’t lose your content during the migration. However, it’s always a good idea to backup your content before starting the migration process. This way, if anything goes wrong, you can easily restore your content.
Can I use the same theme on my new WordPress.org site?
Yes, you can use the same theme on your new WordPress.org site. However, not all WordPress.com themes are available on WordPress.org. If your theme isn’t available, you’ll need to find a similar one or choose a new one.
What happens to my WordPress.com domain after migration?
After migration, you can choose to keep your WordPress.com domain or move to a new one. If you decide to keep your current domain, you’ll need to point it to your new WordPress.org site.
Can I still use the WordPress.com interface after migration?
No, after migrating to WordPress.org, you’ll be using the WordPress.org interface. However, the interfaces are very similar and you should be able to navigate your way around easily.
What are the costs involved in migrating to WordPress.org?
The costs involved in migrating to WordPress.org include web hosting, domain registration, and possibly a premium theme or plugins. However, these costs are usually quite affordable and are worth it for the additional control and features you get with WordPress.org.
Can I migrate my WordPress.com site to WordPress.org myself?
Yes, you can migrate your WordPress.com site to WordPress.org yourself. However, if you’re not comfortable doing it yourself, there are many professionals and services available that can do it for you.
What should I do after migrating to WordPress.org?
After migrating to WordPress.org, you should check your site to make sure everything is working correctly. You should also set up Google Analytics, install SEO plugins, and start optimizing your site for search engines.
Chris runs Lanauze Designs, a small virtual agency in the Northern Suburbs of Melbourne, Australia. He predominantly works with clients in the Restaurant and Hospitality Industries, of which he has had extensive experience in (an Ex Chef, and Industrial Designer). Chris brings a unique edge to his clients, combining inside Hospitality industry knowledge, Design, Graphics, Photography, SEO, Email Marketing, Marketing, advanced funnel techniques and anything in between. Chris is an active member of the WordPress community in Melbourne and online.