07/27/2026

PayloadCMS

Migrating from WordPress to Payload CMS the Right Way

A WordPress to Payload CMS migration is not about running an import script. It starts with designing the right content structure before the first piece of content is migrated.

Migrate WordPress to Payload cover

You've already made the decision: your WordPress website is holding you back more than it helps, and Payload CMS is one of the serious options you're considering to replace it. The remaining question is the difficult one: how do you migrate without rebuilding everything from scratch, and more importantly, how do you avoid ending up six months later with the same limitations you had before?

This article will not teach you how to write a script that fetches your content through the WordPress API and imports it into Payload. That part already exists, is well documented, and an experienced developer can usually handle it within a few days depending on the amount of content.

What is much less documented is what needs to be decided before writing that script, and what should never be sacrificed afterward. This is the less visible but most critical part of a migration, and it is something we have seen poorly managed across multiple projects, including websites that had already been migrated to Payload.

The real risk: changing the tool without changing the model

We were once asked to take over a website that had already been built with Payload CMS. On paper, everything looked right: the stack was appropriate, the team had moved away from WordPress, and the project was running. In reality, the marketing team was blocked again. Each page type had predefined blocks with no ability to add, remove, or rearrange sections. Creating a landing page that differed slightly from the original template required going back into the code.

This is the main trap of a WordPress to Payload migration: assuming WordPress is the problem.

Most of the time, the real issue is the lack of thinking around content structure. Payload is a code-first CMS: its collections, globals, and blocks are exactly what you decide to make them. Nothing prevents you from rebuilding the same rigid system you had before, just with better technology.

The method: design the structure before coding

This is where the success of a migration is truly determined, long before writing the first import script. The goal is not to simply replicate your existing WordPress website in Payload, but to start with an honest assessment of your content: what types of pages do you actually have, which sections are reused across the site, where does your marketing team need flexibility, and where does a stricter framework help preserve your brand consistency?

Collections, globals, and blocks: what are they really for ?

In Payload, a collection is used to manage repeatable content types such as articles, pages, case studies, or team members. A global represents unique content that is defined once and reused across the website, such as the header, footer, or a settings page. A block is a reusable section that can be combined to build a page, such as an FAQ section, a content and image section, a gallery, or an article listing.

A well-designed Payload page often follows a structure like this: a slug field, a title field, a flexible hero section, a freely composable array of blocks, and a shared set of SEO fields available across all content types. This content architecture, rather than the technology itself, is what gives your team the ability to create new pages without relying on a developer every time.

Finding the right balance between structure and flexibility

Three approaches appear frequently, and none of them is inherently right or wrong. Everything depends on where you place the balance.

A WordPress setup using ACF with Twig templates can lock everything down. This provides strong visual consistency, but every exception becomes a development request. Elementor takes the opposite approach. It gives users complete freedom and is quick to use, until every page develops its own layout, the brand identity becomes inconsistent, and nobody understands why certain pages behave differently from others.

A well-structured Payload CMS approach aims for the middle ground: a block system designed around your visual identity, where not every block can be placed anywhere, while still offering genuine flexibility within that framework.

It is the difference between giving someone LEGO bricks to build with and giving them a finished statue.

How to approach the migration process

Before writing a single line of Payload configuration, we always begin with a complete audit of the existing content structure: page types, recurring sections, and specific business requirements. This is followed by a modeling phase to define what should be shared across the system (SEO fields, links, calls to action), which sections should become reusable blocks, and which content deserves its own collection rather than being buried inside a generic page.

This step takes time, often more time than the technical import itself. It is a deliberate choice: a poorly designed content structure becomes far more expensive to fix later, once dozens of pages have already been built on top of it.

Before/after comparison: overloaded WordPress stack with too many plugins (slow performance) vs Payload + Next.js stack (CMS, Blocks, SEO, fast performance).


SEO migration: what cannot be compromised

A successful content migration can still fail because of poor SEO execution.

The rule remains the same: every changed URL must receive a 301 redirect, without exception, otherwise years of accumulated rankings can be lost.

In practice, this means starting from your existing WordPress sitemap, listing every indexed URL, and creating a redirect plan before the new website goes live.

Cross-referencing this plan with Google Search Console (URLs still receiving clicks or impressions) and GA4 (pages generating traffic or conversions) helps prioritize the important pages.

Some URLs deserve careful attention, while others can be merged or redirected to a more relevant page within the new architecture.

For the content migration itself, the choice between manual migration and an automated script mainly depends on volume.

A few dozen pages and articles can often be migrated manually, allowing you to clean up outdated content at the same time.

Once you reach several hundred pieces of content, an import script becomes necessary for efficiency. However, it never replaces manual review or a carefully prepared redirect strategy.

We cover Payload-specific SEO best practices (metadata, technical structure, sitemap) in our guide to building an SEO-optimized CMS.

Migrate, yes. But build the right foundation.

A successful WordPress to Payload CMS migration is not measured by the number of articles imported successfully. It is measured by the freedom your team regains after launch and the stability of your SEO performance in the following weeks. Both outcomes are decided before migration begins: in the content structure, not in the import script.

If you are considering this transition, our Payload CMS expertise always starts with this modeling phase before writing any configuration.

Have a migration project in mind? Let's discuss the best structure for your content.


Jeune homme aux cheveux bruns courts, portant des lunettes rondes et une chemise bleue, souriant légèrement devant un fond neutre

Martin Lotz

Co-Founder

Project Manager

Martin Lotz is an experienced full-stack web developer and one of the key members of the Beease Digital web agency team.

arrowSchedule a demo with Martin