Skip to content

Migrate from WordPress

Move a WordPress site to Flow CMS — turn pages and posts into structured types, import via the WP REST API, and keep your URLs.

Moving from WordPress is less "transfer the database" and more "give the content the structure it never had". The payoff is querying posts like data, reusing authors and categories as real references, and serving everything over an API instead of a theme.

The shape of the migration

  1. Decide the model (posts, pages, authors, categories → types).
  2. Pull content out over the WordPress REST API.
  3. Import media, then entries, into Flow CMS.
  4. Rebuild templates in your front-end framework; keep URLs with redirects.

1. Model first, don't copy blindly

A typical WordPress site becomes four or five types:

WordPress Flow CMS Notes
Post post collection title, slug, excerpt, rich-text body, cover, references
Page page collection (or per-template types) structured sections beat one big body
Author author collection referenced by posts — one bio, everywhere
Category / tag category collection + a tags field references, not free text
ACF field groups Components / typed fields this is where structure pays off

Resist recreating "one giant rich text field per page". Model the pieces (hero, sections, CTAs) as components — that is what makes the content reusable across channels later.

2. Export over the WP REST API

Every WordPress site already exposes what you need, paginated:

# Posts with embedded authors, categories and featured media
curl "https://old-site.com/wp-json/wp/v2/posts?per_page=100&page=1&_embed"

Walk the pages until exhausted; do the same for pages, users, categories, media. (WXR export files work too, but the REST API gives you clean JSON and resolved media URLs.)

3. Import into Flow CMS

  • Media first: download each asset and upload it — optimization to WebP happens automatically. Keep a map of old URL → new asset id.
  • Entries next: convert post HTML to the block editor's rich text on import, rewrite in-body image URLs using the media map, and set real references for author and category.
  • Use the content import tooling (see the help center's import guide) or script the management API: create → publish, 100 at a time.

4. Keep your URLs

Ranking pages keep their equity only if their URLs survive or redirect:

  • Keep the same slugs where possible (/blog/my-post/blog/my-post).
  • 301 anything that must move, including old date-based permalinks (/2023/05/my-post/blog/my-post) — one redirects file in your front-end covers it.
  • Recreate titles and meta descriptions in the per-entry SEO fields, then let the SEO suite audit the result — it will list missing descriptions and duplicate titles deterministically.

Comments, plugins and theme behaviour don't migrate — a headless front-end replaces them deliberately (a comments service, real components, your framework). Budget that as front-end work, not content work.