CMS Migration Guide: From WordPress, Shopify, Wix to Next.js with Zero SEO Loss
Comprehensive step-by-step export guides for WordPress XML, Shopify CSV, Wix, and Squarespace. Migrate content to Next.js while preserving rankings, traffic, and performance.
Quick Start
Export Guides
Advanced
The NextJS Content Migration Workflow
MigrateCMS serves as a universal converter, transforming proprietary exports (XML, CSV) from legacy CMS into clean MDX files optimized for Next.js. This process minimizes SEO disruptions by maintaining slugs, metadata, and links.
Workflow Details
| Step | Description | Tools/Considerations | Potential SEO Impact |
|---|---|---|---|
| Export | Download raw data from CMS dashboard. | Official plugins/apps (e.g., Matrixify for Shopify). | Preserve original slugs to avoid 404 errors. |
| Convert | Parse into MDX format. | Custom tool handling HTML to Markdown conversion. | Retain meta tags for descriptions and keywords. |
| Deploy | Integrate into Next.js app. | Use ISR for dynamic updates. | Faster load times improve Core Web Vitals. |
WordPress Migration
How to Export XML
WordPress exports via XML (WXR format) include posts, pages, comments, categories, and tags, but not themes or plugins.
- Log into WordPress Admin Dashboard.
- Go to Tools > Export.
- Select "All Content" or filter by posts/pages/authors/dates for large sites to prevent failures.
- Download the .xml file; if large, expect a zipped set of XML files via email.
- Prepare site: Set to public, delete spam/drafts, deactivate unused plugins for smoother export.
Common Issues
| Issue | Cause | Solution | SEO Relevance |
|---|---|---|---|
| Missing Data | Incomplete export filters. | Export in batches; verify counts. | Prevents content gaps that could drop rankings. |
| Broken Links/Images | URL changes. | Implement 301 redirects in next.config.js. | Maintains link equity. |
| Database Errors | Config mismatches. | Update wp-config.php credentials. | Ensures smooth data fetch for headless setup. |
Next.js Integration Example
export async function getStaticPaths() {
const posts = await fetchWordPressPosts(); // Fetch from WP API
const paths = posts.map(post => ({ params: { slug: post.slug } }));
return { paths, fallback: 'blocking' };
}
export async function getStaticProps({ params }) {
const post = await fetchWordPressPost(params.slug);
return { props: { post }, revalidate: 60 }; // ISR for updates
}Shopify Migration
How to Export CSV
Shopify lacks native full-blog exports, so use apps like Mixtable or Matrixify for CSV. For products, native CSV is available.
For Products
- Navigate to Products in admin.
- Click Export > All Products > CSV for Excel.
- Include columns like Title, Body HTML, Handle for SEO slugs.
For Blog Posts (Using Mixtable)
- Install Mixtable app.
- Create workbook from Blogs template.
- Sync data, add columns (e.g., Content, Tags).
- Export to CSV/XLSX.
Pitfalls: App limits (e.g., 100 posts); use bulk tools. Preserve handles for URL continuity to avoid SEO loss.
Export Formats Comparison
| Platform | Format | Key Columns | Limitations |
|---|---|---|---|
| Shopify Products | CSV | Title, Handle, Body HTML, Images | Native, no blogs included. |
| Shopify Blogs | CSV (via app) | Title, Content, Author, Tags | Requires third-party; sync manually for updates. |
| WordPress | XML | Title, PubDate, Content, Categories | Includes media links but not files. |
Wix & Squarespace
Squarespace
Squarespace uses the WordPress export format natively.
- Go to Settings > Advanced > Import/Export.
- Click Export.
- Select the WordPress icon (yes, really).
- Download the XML file and upload it to our tool as "Squarespace".
Enhancements: Add manual media downloads; use tools for full backups.
Wix
Wix allows CSV exports for blog data.
- Go to your dashboard and select Blog.
- Click the More Actions (three dots) menu.
- Select Download Posts.
- Upload the CSV to our tool as "Wix".
Enhancements: Add manual media downloads; use tools for full backups.
Adobe AEM Migration
Exporting and migrating content from Adobe Experience Manager (AEM) leverages its Java Content Repository (JCR) for data integrity. AEM stores pages, assets, configurations, and fragments hierarchically.
Export Methods Comparison
| Method | Description | Best For | Format | Limitations |
|---|---|---|---|---|
| Package Manager | Bundles repository content into ZIP files using filters. | Full-site or selective exports. | Vault ZIP. | No historical versions; requires admin access. |
| Page Exporter | Exports pages as static HTML with embedded assets. | Static site generation. | HTML bundle. | Limited to pages. |
| Assets HTTP API | Programmatic download of assets. | Bulk media exports. | Files or JSON. | API authentication needed. |
Step-by-Step Package Manager Export
- Log in to AEM as admin and navigate to Package Manager (/crx/packmgr/).
- Create package with name, version, group.
- Add filters (e.g., /content/my-site).
- Build and download ZIP.
For migration phases: Prepare (audit content), extract, transform (map to Next.js schema), import, test. Use APIs for automation.
Integration Guide
Once you have your ZIP file, structure your Next.js project for optimal performance and SEO.
my-nextjs-app/
├── app/
├── public/
└── images/ // (Optional) For downloaded assets
└── content/
└── posts/ // Extract your MDX files here
├── my-first-post.mdx
└── hello-world.mdx
next.config.js for Redirects
module.exports = {
async redirects() {
return [
{ source: '/old-wp-post/:slug', destination: '/posts/:slug', permanent: true },
];
},
};Frontmatter Reference
Our tool generates standardized YAML frontmatter:
---
title: "Your Article Title"
date: "2024-03-20T10:00:00.000Z"
slug: "your-article-slug"
categories: ["Tech", "News"]
tags: ["Next.js", "React"]
platform: "wordpress"
seo: { description: "Optimized meta description for search engines", keywords: ["migration guide"] }
---Common Migration Challenges and Solutions
Migrations can introduce issues like performance dips or SEO hits, but proactive steps mitigate them.
| Challenge | Description | Solution | Prevention Tip |
|---|---|---|---|
| Performance Issues | Slow loads post-migration. | Optimize with Next.js Image and caching. | Use SSG/ISR from start. |
| Incompatible Themes | Design mismatches. | Rebuild with React components. | Prototype early. |
| SEO Loss | Broken redirects. | Map old URLs to new. | Test with Google Search Console. |
Ready to Migrate Your Content?
Ensure zero SEO loss by following these guides. For more tips, check Next.js SEO Docs.
Go to Migration Tool