Do you feel locked-in and restricted by your CMS? It might be time to give WordPress a try. “But what about all my old content?” you might ask. Well, if your current CMS can export your content to a text file, then you can automatically migrate that content to WordPress. And even if your CMS has no export function, a developer should be able to export the content directly from the database. Let’s get started.
1. Export Content from Current CMS
The first step is to export the content from your current CMS. And when you do that, you first need to decide which content types you want to migrate. Blog content is a good candidate for migration because blogs are usually composed of a simple list of paragraphs and images. However, specialized pages with nested layouts might not work correctly if migrated directly to WordPress, so it would make more sense to just rebuild those pages manually.
If your CMS can export content types to separate export files, do that. But if not, we will show you how to import multiple content types from the same file later.
Depending on the quality of the export, you might need to pre-process the export file before importing it. You might need a developer for this step. For example, if all you get from your current CMS is a database dump, you will need to import that dump into a database, and then run some queries to gather the necessary data scattered across multiple tables.
Once you have your content exported as CSV, JSON, or XML, you can go to the next step.
2. Define Post Types in WordPress
In WordPress all content is stored as “posts”, with the “post type” distinguishing content types from each other. So before you import your content, you need to define what your post types are. For this, we usually use the Advanced Custom Fields (ACF) plugin, which also allows you to define custom post types. So if you are importing blogs, press releases, and case studies, you’ll need a post type for each of those.
You’ll also want to use ACF to define any taxonomies (i.e. categories) and meta data needed by your post types.
Once you have your post type defined, you are ready to import your content.
3. Import Content into WordPress
For this step we usually use the WP All Import plugin. You’ll need to create a separate import for each post type, which will be pretty clear, as WP All Import requires you to select the post type when you start an import for cleaning up taxonomies.
If all your content is in a single file, you’ll need to filter the content in the file to the desired post type using the option in WP All Import. For example, you’ll need to filter the content to where the “content_type” field is equal to “blog”, or whatever field and identifier are in your file.
On the next step, you just drag and drop the fields from your export file to map them to the appropriate WordPress fields. For example, you drag the “blog_title” field to the Title field, and the “blog_content” field to the Post Content field. For the Images section, be sure to check the option to import images linked in the Post Content. This will download the images and import them into WordPress during the import process. During this step you can also map the export file fields to the custom fields you defined with ACF, and for this we recommend the ACF Add-On for WP All Import. Once you have everything mapped correctly, you can run the import.
Repeat this process for each post type and you should be all set. If you are using the Post Reference or Relationship field in ACF, be sure to import the post types in the correct order, as the posts will need to exist before the link is made.
Bonus: Already on WordPress?
Are you already on WordPress but frustrated with your current host? It might be time to choose another hosting provider migrate your site. Most hosts provide a migration plugin that can migrate your entire site in a couple of clicks. For example, WP Engine provides a plugin that you install on both sites, you copy a bit of text from the WP Engine site and paste it into the source site, and click “Migrate”, and the entire site moves over automatically.