There are times when you just want to transfer the content from one of your WordPress blogs to another one. Several reasons can be cited. Here are two that immediately comes to my mind:
- You are changing your domain.
- You want to move some selected content from one of your blogs to another niche blog.
Another reason I can think of is you are somehow locked out of your WordPress site, and you want to get the content (though unlikely because if you are locked out, you can gain control from your server unless of course, your hosting provider locked you out).
So, if you are facing any of these situations, what is your way out? Yes! Just have the content transferred.
But how do you do that?
There are at least two ways you can approach. First, manually copy the content from one blog and paste it into another. This method is not an ideal one. Such manual labor makes sense only and only when you have few content pieces. When there are hundreds and thousands, this method is not an ideal one.
This is where automation comes in.
You should use a plugin that will automatically transfer all your content (or your selected content) from one blog to another.
So, are there any such plugins?
Yes! There are.
One of them is free and it comes as a part of WordPress installation. The other one is a paid plugin that will allow you to copy the content from one website to another with a set of rules you define.
Let us go through each plugin and find out what to expect.
WordPress Importer – The Free Plugin
Using WordPress Importer is ideal when you want to bulk transfer your pages, posts, and images from one blog to another. You cannot selectively transfer posts. For instance, you cannot transfer posts from just one category while leaving the rest untouched.
It will work only and only when you have login access to both the blogs, that is, the blog from which you want to transfer content, and the blog to which you want to transfer. If you do not have access to the blog with the original content, this plugin cannot work.
How Does WordPress Importer Work?
There are simple steps involved in using WordPress Importer. Let us go through them one at a time and figure out how this plugin works.
Step 1: Access the plugin
Log into your WordPress site from which you want to import the content. From the dashboard, take the route: Dashboard >> Tools >> Export.
You will see the screen below:
Step 2: Select what you want to download
By default, “All content” will be selected. You can see other options like Posts, Pages, and Media. You will see additional options depending on what are using on your site. For instance, if you have a forum installed, you will see options like “questions.” “Campaigns” that you see above are from the paid plugin that I will talk about shortly.
Select whatever you need. But note that you really cannot export the content specific to a category. This is a big limitation. The good news is that you can export everything at once, or you can get only the posts and images, if you want so.
Step 3: Download the file
Once you have selected what to export, just click on the “Download Export File” button you see at the bottom.
Now wait for a file to download. The downloaded file will be in XML format. It will be a small file, but its size will depend on how many posts and media files you have on your server.
You cannot see the actual media files or the content in some word document format. Do not worry, the XML file is all you need.
Step 4: To the new blog
Once you have downloaded the XML file, head over to your new blog and log in to your WordPress dashboard and take the route: Dashboard >> Tools >> Import.
You will see the following screen:
This is where you will see the option of installing a plugin. Since you will be transferring posts from one WordPress blog to another, you need to select the last option on the list, which is ‘WordPress.’
Click on the “Install Now” link to start the plugin installation process.
This is how it will look like:
Once the installation is complete, you will see this screen:
You must now be seeing the “Run Importer” option.
Step 5: Run the importer
Now, clicking on the “Run Importer” link will give you the option of choosing the exported XML file. This is how the screen will look like:
You will notice an option to choose the file you downloaded.
At this stage, click on it and browse & select the XML file from the location where it was downloaded.
Once you have selected the XML file, you will see the button that reads “Upload file and import.”
Click on that blue button to start the import.
Step 6: Assign Author
Once the upload is complete, you will see the option for assigning author and importing attachments. This is the screen you will notice:
The importer will ask you whether to import the original author’s name, create a new author, or select an author from the existing list of users.
If you want to keep the original author, do nothing. If you want to create a new author, create a new user with login name. In case you want to assign the imported posts to an existing author, you can do that as well from the dropdown.
Finally, check the “Download and import file attachments” option under “Import Attachments” header and then click on the Submit button.
Depending on the number of posts you have, the import can take a few moments to a few minutes.
That is all!
You have successfully imported all your posts, pages, and media attachments.
Things to note here:
- The importer will not create categories for you. You must assign posts to their individual categories.
- The blog from which you are importing the content must be online during the import process.
- Some attachment imports may completely fail, giving you broken images and broken links.
How do you get over these problems? This is where the paid plugin comes in.
WP Automatic – The Paid Plugin
Before I start with this plugin, I would like to clarify a few things, and they are:
- It has too many options to give a detailed explanation of each option. The options you select will depend on the complexity of the content you are trying to import.
- It supports regular expressions. So, do not fiddle around with those things until you know what you are doing.
- You can selectively remove scripts and HTML tags as well as CSS while importing content.
- You do not need login access to the site from where you want to import.
- You will need to have the site (from which you want to import) online.
- You can import images, or you can use a third-party plugin to hotlink to the images.
- You can create individual campaigns for importing content specific to a category.
- You can create campaigns to import content using feed (if that is available).
- You can import a single piece of content, or you can import content from multiple pages – paginated or with infinite scroll.
- You can assign categories and allow the plugin to automatically create categories based on the imported content.
- If you want, the plugin can automatically spin the content with third-party tools.
- It can set the post dates to original dates. You can even import the original authors’ names.
- You can automate the content import process and set the plugin to extract content at regular intervals.
And there are many more features that you will love. However, setting up the campaigns can be tiring and difficult. Good thing, however, is that the plugin has extensive tutorials. You can follow them and set up campaigns quite easily.
What is interesting is that the plugin is platform independent. It simply means that you can copy content from any website in this world irrespective of whether the content is published on a CMS like WordPress or Blogger, or it is a custom-coded website. It really does not matter.
WP Automatic is available for purchase from CodeCanyon – an Envato product and it costs $30 one-time purchase fee with six months of support. You can extend the support to 12 months by paying additional $9.38 dollars during the plugin purchase.
NOTE: The plugin can be illegally used for scraping and stealing content from other websites (even from those that have right-click disabled). I never support stealing others’ content. Work harder and create your own unique content.
Once you purchase the plugin, you can upload it through the plugin installation interface of your WordPress site dashboard and then activate it using the purchase code you receive from CodeCanyon.
Remember, the plugin can be used on a single site using the license you get. To use it on multiple sites, all you have to do is install the plugin on another site and enter the license, but before you hit the activate button, just check the ‘Change Domain’ option. This will deactivate the plugin on your previous installation and activate it one the new site.
Accessing the Plugin and Creating New Campaign
Once you install the plugin, you can access it from the route Dashboard >> Automatic.
You can activate the license from Settings. “All Campaigns” will give you the list of all active campaigns. You have set. Since it is a new installation, you will most likely not have any active campaign.
To create a new campaign, just click on the “New campaign” option you find by hovering your mouse cursor on “Automatic.”
Creating a new Campaign and Playing with Settings
Once you are on the new campaign page, you must give it a name to identify it quickly and then select the campaign type from the dropdown.
There are diverse types of campaigns you can create. You can pull articles from various sources like EzineArticles, Amazon, Feed, YouTube, Clickbank, Vimeo, and so on. There is also an option called Multi-Page Scraper that will help you to pulling multiple content pieces from a single site.
You can set new keywords to allow the plugin to scrape content from the Internet. If you are scraping content, make sure you are using proxies (to avoid Google banning your IP address because Google does not allow scraping their search engine).
Since this article focuses on getting content from another WordPress site you own, you must select Multi-Page Scraper as the campaign type and leave the keywords options empty. You do not need to scrape the Internet and hence, you do not need keywords.
Alternatively, you can choose the Feeds option for campaign type and provide the links to the feeds.
I usually use this Multi-Page scraper method and select the option called “Post from a list of posts URLs Instead.” Then I grab grab the sitemap for posts and pages and put the links in the provided field. This eliminates the need for toying around with far more complex settings.
Once you enable the requisite option as highlighted above, you will see complex fields disappearing and you will see this:
Add the URLs grabbed from the sitemap and add them in the field (one URL per line).
Now you can scroll down to see many settings that will allow you to fine tune the way you want to extract the content. For instance, you can eliminate certain parts of the contents by using ID or Class (especially useful if you want to eliminate unnecessary CSS codes).
You can even strip parts of the content using regular expressions (REGEX), or you can strip away certain HTML tags. You can pull content using its original time, and so on. There are more settings available. You can scroll down to check them out. Here is a quick view of the various settings available in Campaign options:
You can set the post categories to original categories for the posts from the site from which you are pulling content. You can set original author as post author, skip posts that do not have content or images, and so on.
One option that will be enabled by default is ‘Don’t strip script tags.’ Disable that if you do not want scripts like ads or tracking codes to be imported. Anyway, keeping scripts will only show you blank spaces in the newly imported content. You have to manually get rid of those scripts later.
Once you are done setting the campaign options, move to the next segment called Post Template. This is how the default settings looks like:
This is what I usually keep:
You will definitely not want ads to be extracted, and hence, you will not want ad segments to be imported either.
Once you are done setting the post template, scroll down to work with post type, status, and format.
These are pretty straightforward options, and you can toy around with them depending on what you need. I will usually prefer the status to be set as draft, because I will want to perform SEO and other fixes before making the posts live.
Scroll further down to play with the image settings. This is what you will find:
Now, scroll further down to set categories and tags. I usually pull all content to the “Uncategorized” category and then manually add the categories. If you want to add content to existing categories, you can select one from dropdown. If you don’t have an appropriate category, create one before setting up the project so that the category shows up.
You can scroll further down to reach the post filters segment where you can skip importing certain posts based on different filters. I usually do not touch them unless I particularly want to skip certain imports.
Once you are happy with the post filter settings, scroll further down to see the find the rewriting options.
For rewriting, you will need an account with “The Best Spinner.” I do not recommend using spinners because machine paraphrasing is just “AWFUL.” On top of that, you will be pulling your own content (most likely because you will be moving to a new domain, and hence, you will be deleting the old content pieces), you will not need spinning.
You can have the posts translated to a different language, or you can set a WPML language for the posts you are posting. If you enable translation, you will have multiple translators like Google translator, Microsoft translator API, Yandex translator API, and Deepl Pro API translator.
Once you are done setting the options here, you can scroll down further to the content search and replace segment where you can have specific words in the imported content to be replaced by other words or links.
Once you have done that, you can scroll down again to get to the links segment. It looks like this:
I will not recommend stripping original links. There are two reasons. Your posts will most likely have references to external links. You don’t want them to be removed. Also, your posts will have internal links for SEO, you should not remove them.
Of course, if you don’t remove the internal links, the new domain will have internal links from old domain, making them external links. I will tell you how to deal with them.
You can toy around the remaining settings in the link depending on what you need.
Finally, you will reach the miscellaneous segment where you can set proxies and deactivate keywords as you need. I will not recommend doing this unless of course you are scraping content from websites that you do not own.
Setting Time
Now you can scroll all the way up to find the Update Frequency option on the top right.
You can set it on autopilot and make the plugin pull content at set intervals. It is ideal to give at least 5 to 10 minutes of gap between pulling contents because the more frequently it tries doing that, the more load it puts on the target server, increasing your chances of having your IP address banned.
You can also set custom time if you want. This will only pull content published on the other site from the specified time frame.
Once you are done with all the settings, hit the publish button for the campaign.
Once you hit the publish button, the campaign will be ready to run.
Running a Campaign
Once you have set and published a campaign, this is how the campaign will look like:
You see that play button on the top? Just click on it for a test trial and you will the new posts getting imported and updated on the right side under “Last Post.”
No to the pulled content (post either published or saved as draft) and check whether everything is imported as you intended. If not, tweak the settings further and delete the imported post. Now, rerun the campaign.
Rinse and repeat until you get what you want.
Don’t worry, what you see above belongs to me. Yes, I own the property called Listmos and I am in the process of merging it to a new site.
If you are pulling content from your own site, you should not be worried about using proxies. Just get all the content. Afterall, you are not going to block your own IP.
Dealing with URLs
Once you have pulled content using any of the two plugins, you will need to update the internal links because the pulled content will still carry the links from your previous domain.
Manually changing hundreds of links can be difficult and tiring. People will usually ask you to use the plugin called “Better Search & Replace.” Well, that is useful when you want to update permalinks. But it becomes quite ineffective when you need to change the in-content URLs (like internal links).
This is where you will need the plugin called “Velvet Blues Update URLs.” It is a free plugin that you can get from WordPress repository.
Install and activate the plugin and then access it from the route: Dashboard >> Tools >> Update URLs.
Once you follow that path, you will see this page:
Set the URL for the old domain on the first field and the URL for the new domain in the second field. Now select the options below. Select all except from the last option (GUIDs). Finally, hit the “Update URLs NOW” button.
This will update all the old ULRs (even the internal links in the posts) and replace them with the new URL of your current domain. This will ensure that all internal links are changed in a single sweep. It does not matter if you have hundreds of posts. The update will happen smoothly, and it will take barely a couple of seconds.
Conclusion
There are situations where you need to migrate WordPress content from one blog to another. The process is quite simple, but depending on your specific needs, the plugin you use will define how smoothly the process continues. While the free WordPress Importer works great, you may need a paid plugin like WP Automatic to deal with complex setups.
Choose wisely and you will get your WordPress content moved in no time.