Migrating from WordPress Posts to SharePoint Modern Pages

Embarking on a migration journey can be quite a challenge for organizations, especially when moving from a familiar CMS platform like WordPress to the often misunderstood waters of SharePoint Online.

In today's digital landscape, adaptability and collaboration are key, and migrating to SharePoint Online offers strategic advantages in content management, team collaboration, and a range of powerful features tailored for modern businesses. Although the transition might seem daunting to some, it presents an opportunity for growth and transformation.

In my first blog post, we will delve into the intricacies of migrating from a self hosted WordPress blog to SharePoint Online, addressing the challenges that have deterred many service providers from bidding on these types of migration contracts. We'll explore the potential benefits and pitfalls, providing you with the essential knowledge to make informed decisions and ensure a successful migration process.

So, get ready as we navigate through the complexities, guiding you towards a migration that unlocks the full potential of SharePoint Online for your business. This is going to get technical, complicated, and messy. Lets Go!

Perquisites & Required Knowledge

Here is a brief list of the technologies and software I used to perform this migration. You can probably find free versions of the software, but this writeup refers to these and I will not be able to provide much help for other approaches. Be sure to get license quotes for each of these as part of setting your customer expectations.

  • Wordpress and General CMD Knowledge
  • ShareGate Software & License (may require license) - used to copy pages and update publishing metadata
  • PowerShell
  • Autohotkey (freeware) - used to automate copy/paste actions to import into SharePoint
  • Excel and Excel VBA knowledge - used to save exported markup to static html files 
  • Basic HTML Knowledge
  • Find and Replace (freeware) used to update links and references from the source to the destination.
  • WP All Export plugin (may require license) - used to export WordPress pages
  • Admin access to both the WordPress site and the SharePoint site.

Managing Expectations

Whether for an internal or external customer, It's important to manage expectations when migrating across platforms. Modern SharePoint pages use a different markup than Wordpress, so some things may not align exactly like they did in the source. This project will require a lot of Q&A and bugs and limitations are expected to be discovered. Make sure you are planning for this and informing the site owner often and early. Sometimes managing the expectations is the difference between a project being seen as a success rather than a failure.

Discovery

Get in there, touch the WordPress deployment. Talk to the site owner and find out how they use it and what their vision is for it in SharePoint. In my migration, the customer is using their WordPress site to post news and events for their employees. Understanding how the source is being used will help you in your approach to migrate the data to the destination.


Export WordPress posts

Install the WP All Export plugin, Perform your first export of data by running an export by Specific Post Type and whatever type the customer wants migrated. 

After completing the export, you will be given the option to download the CSV file. 

Download attachments from WordPress


Upload attachments to SharePoint site assets


Update references to attachments to new location


Update I'll link URLs to new locations


If saving with a new file name make sure to perform a lookup to switch the Old locations to the new locations with the new file name


Run provide a macro to save each item as an HTML file


Used auto hotkey script to open each file and save as a new post


Use share gate to update the posted date and the author