The WordPress.com platform is a great, hassle-free choice for hosting your website. It’s a managed content-management service that provides easy set-up, security, and maintenance. The free plan restricts your theme and plugin installations. But, the paid plans offer more flexibility with the ability to customize the styling, install virtually any theme, and use additional plugins. In this tutorial, I’ll take you through the steps of migrating a site from the self-hosted WordPress.org platform to a Personal account on WordPress.com.
There’s always more than one way to do something. We’ll be doing a manual migration. But, you could use a plugin or request a free migration from the WordPress.com team. There are basically 4 steps to take when migrating a site from WordPress.org (“source” site) to WordPress.com (“destination” site):
- Sign up for a Paid Plan on WordPress.com
- Export the content on source site (WordPress.org), then import it on destination site (WordPress.com)
- Upload a custom theme
- Connect the domain name
STEP 1: Paid Plan
There is a tier of paid plans, ranging from Personal to Business. Each upgrade opens a bundle of new features and gives you increased storage. All of the paid plans allow you to upload your own custom theme and use your own domain name.

Personal Plan
There are a couple of ways to establish any paid plan. In our tutorial, we’ll choose Personal Plan.
1. Sign Up for an Account
- On the WordPress.com home page, click on the “Get started” button.

- Follow the prompts to establish your account.
- To keep things simple, use your same username and password as on the WordPress.org site.
- Select “Personal Plan”.
- Site address: use the free subdomain (example: askdesigndev.wordpress.com). We will return to the domain name later.
- Select a theme. In our tutorial, we’re migrating a custom child theme based on the default theme “Twenty Twenty-Four“. So, naturally, that’s the theme we chose.
2. If you already have a free WordPress.com account
With an existing account, upgrading is simple. But, before you can do anything, you need to create a site. Follow the same steps we just covered (above) for site address and selecting a theme. Then you’ll be able upgrade to “Personal Plan“.
- Go to your site’s Dashboard.
- In the left Admin. sidebar, go to “Upgrades > Plans“.
- Click on the “Upgrade” button for the Personal Plan.
- Fill out the order form. You can pay monthly or yearly. Enter your billing information and payment method.
STEP 2: Content Export and Import
1. Export the WordPress.org site (“source”)
Log into the WordPress.org site.
You can choose to export all of the content or restrict the export to certain content. Explore what options appear with each selection. Posts and Pages can get pretty specific. We’re going to export everything.
- Select “All content“.
- Click the “Download Export File” button.

2. Import the WordPress.org (source) site
Log into your new WordPress.com site.
- In the left Admin. sidebar, go to “Tools > Import“.
- Scroll to the last option, labeled “WordPress”, and click the “Install Now” button.

- Next, you will see a small notice at the top of the screen: “Importer installed successfully. Run importer“. Click on the “Run Importer” hyperlink.
- Choose the XML file you exported and downloaded from the source site. Click the “Upload file and import” button.

STEP 3: Custom Theme
The free WordPress plan offers dozens of nice themes. One of the advantages of a paid plan is access to hundreds more premium themes. A paid plan also allows you to upload any third-party theme as well as your own custom-made theme.
In our tutorial, the source site on WordPress.org has a custom child theme that uses the “Twenty Twenty-Four” theme as its parent. For details on how to create a child theme, check out my post Building My First WordPress Block Theme – part 4: Child Themes. Here, we’ll see how to get that theme onto our new destination site on WordPress.com.
WordPress.org site (“source”)
Log into the WordPress.org site. The Create Block Theme (CBT) plugin has been installed to give us the power to create child themes. Now, we’re going to use the plugin to save changes to and export our theme.
- Save Changes to Theme. Be sure you have the most recent version of the child theme.
- Appearance > Editor > Content Area > Create Block Theme panel.
- Click Save Changes to Theme.
- The options you should select include: Save Fonts, Save Style Changes, Save Template Changes, Process Only Modified Templates, and Remove Navigation Refs (this one is very important!). Click the Save Changes button.
- Export child theme. There are 2 pathways:
- through the administrative sidebar menu Appearance > Create Block Theme > CBT page
OR - through the Appearance > Editor > Content Area > Create Block Theme panel.
- through the administrative sidebar menu Appearance > Create Block Theme > CBT page


WordPress.com site (“destination”)
Log into the WordPress.com site. Since we’re using a child theme, we need to install its parent theme, then upload and activate the child theme.
- There are two ways to search for a theme:
- Appearance > Themes: “Add Theme” button.
OR - Appearance > Theme Showcase.
- Appearance > Themes: “Add Theme” button.
- Search for the Twenty Twenty-Four theme (parent theme). Hover over its thumbnail image, then click the “Install” button.
- Upload your child theme.
- Go to the themes section: Appearance > Themes.
- Click on the “Add Theme” button. On the next screen, click on the “Upload Theme” button.
- If you are in the Theme Showcase section, you click on the “Install New Theme” button instead.
- Choose the theme file and then click “Install Now“.
- Activate the child theme.
STEP 4: Connect Domain Name
You can continue to use the free subdomain, but I recommend using the domain name you’ve already purchased for the WordPress.org site. You need to decide how to connect that domain name with your new WordPress.com site. There is no fee to connect a domain with a paid WordPress.com plan. The decision is a matter of logistics and personal preference.
Note: sometimes your webhost is also the registrar.
- Log into your domain name registrar account. I like to open a new browser tab for easy switching to and from the different accounts.
- Go to your WordPress.com site dashboard.

- In the left Admin. sidebar, hover over “Upgrades” to reveal the slide-out menu.
- Click on “Domains”.
Keep Domain Name Registration As Is
If you’ve been happy with the cost and customer service, you can keep the domain registered where it is. In this scenario, you connect the external domain name to the WordPress.com platform by changing a few settings. You continue to renew the registration at the external provider.
WordPress provides detailed instructions, which I will summarize for you:
- Click on the “Add new domain” arrow in the top-right corner and select “Use a domain I own” from the drop-down menu.

- In the empty field, type the domain name you own and click the Continue button.
- You see two options on the next screen: transfer or connect. Click the “Select” button next to “Connect your domain”.
- Click the “Start Setup” button.
Automatic Setup
- If your registrar is capable of an automatic setup, that will be the first option presented to you.
- Return to your domain name registrar screen and confirm the connection.
Manual Setup
If automatic setup isn’t an option with your registrar, or it simply doesn’t work, you can configure the settings manually. You’ll be going back and forth from WordPress to the Domain Name registrar.
- WordPress: navigate back to the domain connection screen and click the “Start setup” button.
- Domain registrar: find the domain settings page. This is where you’ll edit the nameservers.
- Domain registrar: Make note of the old name servers, then remove them.
- WordPress: click the “I found the domain settings page” button.
- WordPress: Copy these WordPress.com name servers:
ns1.wordpress.com
ns2.wordpress.com
ns3.wordpress.com - Domain registrar: Add the 3 WordPress.com name servers, one per line. There should only be these 3 values.
- WordPress: click the “Verify Connection” button.
After changing the nameservers, it can take up to 72 hours to fully propagate world wide. You can check on the status by navigating to the Upgrades > Domains area. When the status says “Active“, your domain is connected! Meanwhile, the default subdomain address will continue to work on your WordPress.com site.
Transfer Domain Name Registration to WordPress
Sometimes it’s just easier to transfer both the hosting and domain name registration to WordPress. I have summarized the detailed WordPress instructions for you:
- Log into your domain name registrar account. I like to open a new browser tab for easy switching to and from the different accounts.
- Go to your WordPress.com site dashboard.

- In the left Admin. sidebar, hover over “Upgrades” to reveal the slide-out menu.
- Click on “Domains”.
- Click on the “Add new domain” arrow in the top-right corner and select “Use a domain I own” from the drop-down menu.

- In the empty field, type the domain name you own and click the Continue button.
- You see two options on the next screen: transfer or connect. Click the “Select” button next to “Transfer your domain”.
- Click the “Start Setup” button.
Now you’ll be going back and forth from WordPress to the Domain Name registrar.
- Domain registrar: Unlock your domain. This security measure prevents unauthorized actions. The domain needs to be unlocked in order to make the transfer.
- Domain registrar: Obtain a transfer code. This is an authorization code that will allow the transfer. Depending on the vendor, it may take anywhere from 10 minutes to several hours to be emailed to you. Sometimes, you’ll get an email with a required confirmation link approving the transfer.
- Domain registrar: Make sure your domain is unlocked! I’ve seen domains get re-locked after requesting the transfer code.
- WordPress: enter the transfer authorization code you received from your domain provider.
- WordPress: click the “Check readiness for transfer” button. If all is well, the code gets validated and your domain transfer progresses.
- WordPress: on the checkout screen, confirm your contact and payment details.
After initiating the transfer, it can take 5 to 7 days to complete. You can check on the status by navigating to the Upgrades > Domains area. When the status says “In Progress“, the transfer has begun. Meanwhile, the default subdomain address will continue to work on your WordPress.com site. When the status says “Active“, the domain has fully transferred to WordPress! You can then manage all domain and hosting settings from your WordPress.com account.
Any email accounts associated with your domain name (anne@domainname.com) may be impacted by connecting the domain name to your new WordPress.com site.
- Find out who your email provider is.
- If the domain name registrar handles your email and you keep the same domain name registrar, obtain the DNS records (usually it’s the MX and TXT records, but it might include more).
- You’ll have to add those records to WordPress
- Check out the WordPress instructions for details
If you transfer the domain name registration to WordPress.com, or if the previous web host had been handling your email, all of those email records become irrelevant. As the new webhost, WordPress.com now manages all DNS records. You need to find a new email solution.
Email Solutions
- Plugins – Many to choose from. 2 that I’ve used:
- Professional Email – Purchased through your dashboard, renewed annually.
- MailPoet is another good option.
- External email provider, like Google Workspace.
Post Site Migration
Once the import is complete, check the following to make sure everything is OK:
- Posts
- Pages
- Authors
- Users
- Media Library
- Plugins
- Reinstate Search Engine Visibility (Settings > Reading)
- Permalinks
Reset Primary Domain
Once everything is transferred and checked, you can change the default site address to your domain name.
- Go to “Upgrades > Domain“
- Select your domain name from the drop-down menu at the top of the screen.
Video Tutorial
Watch and learn! Check out my video tutorial that demonstrates how to migrate a site from WordPress.org to WordPress.com.






Leave a Reply