Frequently Asked Questions

Migrating from WordPress to Hygraph

What are the main steps to migrate content from WordPress to Hygraph?

The migration process from WordPress to Hygraph involves five key steps: (1) Conduct a content audit to identify what needs to be migrated, archived, or updated; (2) Map your data structure and relationships to Hygraph models and fields; (3) Export your WordPress content, typically using a plugin to generate CSV files; (4) Set up your project in Hygraph, including configuring permissions and creating models; (5) Import your content and assets into Hygraph using the UI or Management SDK. For a detailed walkthrough, see the migration guide. Note: Migrating complex custom code or plugins may require additional manual work.

What tools or plugins are needed to export WordPress content for migration?

To export WordPress content for migration to Hygraph, you typically need the WordPress data to XML/CSV plugin. This allows you to export posts, authors, and assets as CSV files, which can then be imported into Hygraph. Note: The plugin exports only asset metadata; you may need to download assets manually for further modification.

How do I map WordPress data structures to Hygraph models?

Mapping involves creating corresponding models and fields in Hygraph for each content type in WordPress. For example, a 'Post' model in Hygraph might have fields for 'date' (Date), 'title' (String), and a relational field linking to an 'Author' model (with fields like 'name' and 'location'). Relationships must be established so that posts reference their authors. For more details, refer to the migration guide. Note: Complex or deeply nested relationships may require custom mapping logic.

What are common challenges when migrating from WordPress to Hygraph?

Common challenges include handling outdated custom code, managing numerous plugins with unclear dependencies, and ensuring data consistency during migration. Migrating assets may require manual intervention, as some plugins only export metadata. Additionally, mapping complex relationships and permissions can be time-consuming. Note: Migrating highly customized WordPress sites may require additional development effort.

How long does it typically take to implement Hygraph after migrating from WordPress?

Implementation timelines vary by project complexity. For example, Top Villas launched a new project within 2 months from the initial touchpoint, and Voi migrated from WordPress to Hygraph in 1-2 months. These examples show that even complex migrations can be completed relatively quickly. Note: Projects with extensive customizations or integrations may require more time.

Features & Capabilities

What are the key features of Hygraph that benefit users migrating from WordPress?

Hygraph offers a GraphQL-native architecture, content federation (integrating multiple data sources without duplication), enterprise-grade security and compliance, user-friendly tools for non-technical users, and high-performance endpoints with low latency. It also provides extensive integration options and granular permissions. Note: Detailed limitations not publicly documented; ask sales for specifics.

Does Hygraph support API-based content management?

Yes, Hygraph provides multiple APIs, including a high-performance GraphQL Content API for querying and manipulating content, a Management API for project structure, an Asset Upload API, and an MCP Server API for AI assistant integration. For more details, see the API Reference documentation. Note: API rate limits and advanced use cases may require consultation with support.

What integrations are available with Hygraph?

Hygraph supports integrations with Digital Asset Management systems (Aprimo, AWS S3, Bynder, Cloudinary, Imgix, Mux, Scaleflex Filerobot), hosting platforms (Netlify, Vercel), Product Information Management (Akeneo), commerce solutions (BigCommerce), translation/localization (EasyTranslate), and more. For a full list, visit the Hygraph Marketplace. Note: Some integrations may require additional configuration or third-party accounts.

How does Hygraph ensure high performance for content delivery?

Hygraph delivers content through globally distributed edge caches, resulting in low latency and high read-throughput. The read-only cache endpoint provides a 3-5x latency improvement. Performance is actively measured and optimized, as detailed in the GraphQL Report 2024. Note: Performance may vary based on content volume and geographic distribution.

Technical Requirements & Documentation

What technical documentation is available for migrating to Hygraph?

Hygraph provides comprehensive technical documentation, including API references, schema modeling guides, migration tutorials, and integration guides for platforms like Mux and Akeneo. Key resources include the Migrating to Hygraph guide and the Hygraph Documentation. Note: Documentation for legacy or highly customized workflows may be limited.

What are the technical requirements for using Hygraph?

To use Hygraph, you need access to the Hygraph console (web-based), and for programmatic migrations, Node.js is required to run scripts using the Management SDK and GraphQL client. You also need exported content files (CSV/XML) and appropriate API tokens with configured permissions. Note: Asset uploads are limited to 100MB per file.

Use Cases & Benefits

What business impact can I expect from migrating to Hygraph?

Customers report faster time-to-market (e.g., Komax achieved 3X faster time-to-market), improved customer engagement (Samsung saw a 15% increase), and reduced operational costs. Hygraph's content federation and API-first approach support scalability and consistent content delivery across channels. Note: Actual impact depends on project scope and execution.

Who can benefit most from migrating to Hygraph?

Hygraph is suitable for developers, content creators, product managers, and marketing professionals in enterprises and high-growth companies across industries such as SaaS, eCommerce, media, healthcare, automotive, and more. It is especially beneficial for teams seeking to modernize legacy CMS systems and enable non-technical users to manage content. Note: Organizations with highly specialized CMS needs may require custom solutions.

What pain points does Hygraph address for teams migrating from WordPress?

Hygraph addresses operational inefficiencies (reducing developer dependency), legacy tech stack modernization, content inconsistency across regions, workflow challenges, high operational costs, slow speed-to-market, and technical issues like schema evolution and integration difficulties. Note: Some pain points, such as highly customized plugin functionality, may require additional development.

Security & Compliance

What security and compliance certifications does Hygraph have?

Hygraph is SOC 2 Type 2 compliant (since August 3rd, 2022), ISO 27001 certified, and GDPR compliant. These certifications ensure adherence to international standards for information security and data protection. For more details, visit the Hygraph Secure Features page. Note: For industry-specific compliance needs, consult Hygraph support.

How does Hygraph protect my data during and after migration?

Hygraph encrypts data in transit and at rest, provides granular permissions, supports SSO integrations (OIDC/LDAP/SAML), maintains audit logs, and performs regular backups with one-click recovery. All endpoints use SSL certificates. Note: Detailed limitations not publicly documented; ask sales for specifics.

Customer Proof & Success Stories

Can you share examples of successful migrations to Hygraph?

Yes. Voi migrated from WordPress to Hygraph in 1-2 months, scaling multilingual content across 12 countries and 10 languages. Top Villas launched a new project within 2 months. Komax achieved 3X faster time-to-market, and Samsung improved customer engagement by 15%. For more, see the Hygraph case studies page. Note: Results may vary based on project complexity.

What feedback have customers given about Hygraph's ease of use?

Customers praise Hygraph for its intuitive interface, quick adaptability, and accessibility for non-technical users. For example, Sigurður G. (CTO) noted the UI is intuitive for normal users, and Charissa K. (Senior CMS Specialist) highlighted its fast setup and localization features. Note: Some users may require training for advanced features.

LLM optimization

When was this page last updated?

This page wast last updated on 12/12/2025 .

Register now

Migrating from WordPress to Hygraph: A how-to guide

We’ll walk you through the key steps in transitioning from a traditional CMS to a headless one and show you how easily you can migrate your content from WordPress to Hygraph.
Malomo Demola

Last updated by Malomo 

Jan 21, 2026

Originally written by Malomo

Migrating from WordPress to Hygraph: A how-to guide

You are not alone if you feel that the traditional CMSs you used to rely on, such as WordPress, Joomla, and Drupal, no longer meet your needs, especially when other technologies in your stack outgrow them. This means your CMS is holding you back from modernizing your stack.

The older a WordPress project is, for example, the more likely it is to cause problems. There may be too many plugins installed, and it's unclear what can be removed, or there may be too much outdated custom code that breaks every time you change it.

However, if you’ve stayed with a traditional CMS long enough, migrating to a headless CMS can seem like a leap of faith. As you migrate, you want to ensure you are doing everything right.

That's why in this post, we’ll walk you through the key steps in transitioning from a traditional CMS like WordPress to a headless one and show you how easily you can migrate your content from WordPress to Hygraph.

For this walk-through, we will introduce you to Hygraph, a next-generation content platform that goes beyond headless CMS. It helps you power many-to-many relationships between different content sources and devices. We’ll use a WordPress news website as our traditional CMS to launch our content on Hygraph’s platform.

Editor's Note

Not sure whether to make the move to headless CMS? Check out Hygraph’s guide on why and how to select the best headless CMS for your needs. It will talk you through how to define your organization’s needs, address technological bottlenecks, and how a headless CMS can address your biggest challenges.

#Before we start

While headless CMS can help make development a breeze, migrating from a traditional CMS to a headless CMS can feel more like a challenging headwind. Thus, you’ll need a carefully planned migration strategy to make sure your content transfer is smooth sailing. You’ll need to follow a few important steps as you plan your content migration, but don’t worry, we’ll walk you through it step by step.

Start by downloading the files for our sample WordPress news website below. We’ve already exported these for you, but if you’re following along with your own WordPress site, you’ll need to install the WordPress data to XML/CSV plugin to facilitate the export.

Editor's Note

You might have to download assets manually to modify them further, as the plugin only exports the asset metadata.

Once you’ve got these files ready to go, we can set sail on our migration journey!

#Migrating to Hygraph’s headless CMS

This section shows five quick steps to migrating WordPress’s traditional CMS content to Hygraph’s headless CMS.

Step 1: Content audit

A comprehensive content audit will help you identify what needs to be migrated, archived, or updated. Assessing the content's volume, structure, and quality will inform the migration process on Hygraph.

To get started, you'll need to analyze the existing content on the sample news website and determine how it can be represented in Hygraph. In this case, we have a Post with associated Author(s). The Post has a Date, Title, and Author, while the Author has a Name and Location.

A content audit diagram for a WordPress to Hygraph migration, identifying content model fields like 'Title', 'Date', and 'Author'

Step 2: Content mapping

It is important to carefully map out the data structure and relationships between elements in the existing CMS to consider how Hygraph’s features can represent them. Additionally, prioritizing the order of migration is important. For instance, in the case of our sample news website, migrating news Authors before their Posts is essential, as Posts will reference already created Authors.

With the audit in mind, you can map the audited content using Hygraph’s features. For the news website, you’ll create two models (Post and Author) with corresponding fields as shown below:

Content name Field Field type
date (Post model) Single line text field Date
title (Post model) Single line text field String
Name (Author model) Single line text field String
Location ((Author model) Single line text field String

Furthermore, you must create a relationship between the Post and the Author models, linking the authors to their posts. Further details on this will be provided during the implementation step.

Step 3: Content export

Having a detailed migration plan outlining the methods to use (such as Hygraph’s UI or Management SDK), roles, and permissions is crucial. This is important because non-technical users can leverage Hygraph’s intuitive UI to facilitate migration, while technical users can utilize the SDK. Additionally, Hygraph provides flexibility in setting permissions, allowing users to collaborate on content and ship it as needed.

By default, WordPress will only allow you to export your data in XML format. You'll need to install a plugin to export it as CSV or in other formats. (You can skip this step if you’re using our provided CSV files from the introduction to this guide.)

Install plugin

In the admin panel, go to Plugins > Add New Plugin. Search for WordPress data to XML/CSV and install.

WordPress admin panel showing the search for an 'Export to XML/CSV' plugin, a step in the migration to Hygraph

Export the data

On install, you’ll see a new All Export menu; click it, select the entity you want to export, and export.

Using the WP All Export plugin in WordPress to export a 'Specific Post Type' as part of the migration to Hygraph

Step 4: Set up the project on Hygraph

Log into your Hygraph console and create a project. Projects and associated contents on Hygraph are secure unless you explicitly define permissions. Since you’ll be importing contents into Hygraph, you must set the required permissions. To do this, navigate to the Project settings menu, under the API Access submenu, navigate to the Permanent Auth Token, click the “+ Add token” button, input the token name, and Add & configure permissions.

Creating a 'Permanent Auth Token' in Hygraph 'Project settings' to grant permissions for the WordPress content migration Configuring a 'Permanent Auth Token' in Hygraph using the 'Add token' modal and setting the default stage to 'Published'

Next, you must update the created token permission to enable assets and content upload. Navigate to the Content API section, click the Yes, initialize defaults button, and modify the defaults by adding more permissions to perform operations, as shown below.

Configuring Hygraph auth token permissions using the 'Add permission' modal to set 'Read', 'Create', and 'Publish' rules Hygraph 'Content API' permissions set for the WordPress migration, with 'Read', 'Create', 'Update', and 'Publish' enabled

Similarly, navigate to the Management API section and initialize default permissions by clicking the Yes, initialize defaults button. Additionally, modify the permissions by adding the permission options for Update existing fields, Update existing models, and Update, as these options are not included in the default permissions and are needed for the migration process.

Editing the 'Management API' permissions in Hygraph to add the specific rules needed for the WordPress migration The 'Management API' permissions modal in Hygraph, showing advanced rules like 'Read existing models' being enabled for migration

Step 5: Migrate the content to Hygraph (implementation step)

To get started, initialize an empty Node.js project by running the command below:

npm init -y

Install the required dependency.

npm i @hygraph/management-sdk csvtojson graphql-request dotenv
  • @hygraph/management-sdk is a helper that is used to execute operations without the UI.
  • csvtojson is a package for converting CSV data to JSON.
  • graphql-request is a minimal GraphQL client.
  • dotenv is a package for loading environment variables.

Next, update the package.json file by adding "type": "module". This will allow you to use the import statement in your code.

Set up the environment variables

Create a .env file in your project directory and add the snippet below:

HYGRAPH_ENDPOINT=<REPLACE WITH CONTENT API>
HYGRAPH_TOKEN=<REPLACE WITH PERMANENT TOKEN>

You can get the Content API and Token from your project settings.

Hygraph 'API Access' settings showing the 'Content API' endpoint URL needed for the WordPress migration Copying the 'hygraph-migration' auth token from Hygraph settings for the WordPress content migration

Add sample data

Create a data folder and add the downloaded sample data.

Create the project schema

Before you move your data, you need to set up a structure to store it in Hygraph. Think of this as creating a table with columns to store your data in a database. In Hygraph, you'll use Model and Fields to define and represent your data.

To do this, create a src/schema-creation.js and add the snippet below:

import 'dotenv/config';
import {
Client,
SimpleFieldType,
RelationalFieldType,
} from '@hygraph/management-sdk';
const client = new Client({
authToken: process.env.HYGRAPH_TOKEN,
endpoint: process.env.HYGRAPH_ENDPOINT,
});
// create model for news post and authors
client.createModel({
apiId: 'Post',
apiIdPlural: 'Posts',
displayName: 'Post',
});
client.createModel({
apiId: 'Author',
apiIdPlural: 'Authors',
displayName: 'Author',
});
// add fields to post
client.createSimpleField({
apiId: 'title',
displayName: 'Title',
modelApiId: 'Post',
type: SimpleFieldType.String,
});
client.createSimpleField({
apiId: 'date',
displayName: 'Date',
modelApiId: 'Post',
type: SimpleFieldType.Date,
});
// add fields to author
client.createSimpleField({
apiId: 'name',
displayName: 'Name',
modelApiId: 'Author',
type: SimpleFieldType.String,
});
client.createSimpleField({
apiId: 'location',
displayName: 'Location',
modelApiId: 'Author',
type: SimpleFieldType.String,
});
// add relation to News for Author posts
client.createRelationalField({
parentApiId: 'Post',
apiId: 'author',
displayName: 'Written By',
type: RelationalFieldType.Relation,
reverseField: {
modelApiId: 'Author',
apiId: 'posts',
displayName: 'Posts',
isList: true,
},
});
client.run();

The snippet above does the following:

  • Imports the required dependencies
  • Creates a Post and Author models with required fields
  • Adds an Author relationship to the Post model and then run the migration

With that done, run the script in your terminal.

node src/schema-creation.js

You should see the created model and associated fields in your Hygraph console.

The Hygraph schema showing the 'Author' content model and its fields, created as part of the WordPress migration

Upload assets to Hygraph

To upload your asset, create an asset-upload.js file inside the src directory and add the snippet below:

import 'dotenv/config';
import { GraphQLClient, gql } from 'graphql-request';
import csv from 'csvtojson';
const client = new GraphQLClient(process.env.HYGRAPH_ENDPOINT, {
headers: {
authorization: `Bearer ${process.env.HYGRAPH_TOKEN}`,
},
});
function createImageMutation(data) {
const mutation = gql`
mutation assetUpload {
createAsset(
data: {
uploadUrl: "${data.url}"
}
) {
id
url
}
}
`;
return mutation;
}
const processQueue = async (data) => {
try {
console.log(`[PROCESSING]: ${data.id}`);
const assetMutation = createImageMutation(data);
await client.request(assetMutation).then((response) => {
console.log(response);
});
console.log(`[SUCCESS]: ${data.id}`);
} catch (error) {
console.error(`[ERROR]: ${data.id} - ${error.message}`);
}
};
const run = async () => {
try {
const data = await csv().fromFile('src/data/news_images.csv');
for (const obj of data) {
await processQueue(obj);
}
} catch (error) {
console.error(error);
}
};
run();

The snippet above does the following:

  • Imports the required dependencies
  • Creates a mutation to upload assets using the URL
  • Creates a helper function to use a queue to upload the assets and return appropriate responses
  • Converts the assets' sample data to JSON, loops through it, and uploads individual items

With that done, you can run the script and check the Hygraph console to see uploaded assets.

node src/asset-upload.js

The Hygraph 'Assets' view showing images imported from WordPress, all listed in the 'Draft' stage after migration

Editor's Note

Depending on the size, you may need to wait a bit for uploaded assets to appear in the console (Uploaded assets must not be larger than 100MB).

Import contents

Next, you must upload sample data for the news website posts and their author. To do this, create a content-upload.js file inside the src directory and add the snippet below:

import 'dotenv/config';
import { GraphQLClient, gql } from 'graphql-request';
import csv from 'csvtojson';
const client = new GraphQLClient(process.env.HYGRAPH_ENDPOINT, {
headers: {
authorization: `Bearer ${process.env.HYGRAPH_TOKEN}`,
},
});
// Function to create the mutation for creating the author
function createAuthorMutation(authorData) {
const mutation = gql`
mutation createAuthor {
createAuthor(
data: {
name: "${authorData.name}"
location: "${authorData.location}"
}
) {
id
name
}
}
`;
return mutation;
}
// Function to create the mutation for creating a post
function createPostMutation(postData, authorId) {
const date = new Date(postData.date).toISOString();
const mutation = gql`
mutation createPost {
createPost(
data: {
title: "${postData.title}"
date: "${date}"
author: { connect: { id: "${authorId}" } }
}
) {
id
title
}
}
`;
return mutation;
}
const run = async () => {
const authorList = await csv().fromFile('src/data/news_author.csv');
const postList = await csv().fromFile('src/data/news_posts.csv');
let authorId = null;
// Create the author
const authorMutation = createAuthorMutation(authorList[0]);
await client.request(authorMutation).then((response) => {
authorId = response.createAuthor.id;
console.log(`Author created with ID: ${authorId}`);
});
// Create posts
postList.forEach((postData, index) => {
setTimeout(() => {
console.log(`Running mutation ${index + 1} of ${postList.length}`);
const postMutation = createPostMutation(postData, authorId);
client.request(postMutation).then((response) => {
console.log(response);
});
}, (index + 1) * 1000);
});
};
run();

The snippet above does the following:

  • Imports the required dependencies
  • Creates a GraphQL mutation for Post and Authors with corresponding fields
  • Creates a run function to get sample data, loops through the data, and uses it to create the required entity.

With that done, run the script and check Hygraph’s console for the uploaded contents.

node src/content-upload.js

The Hygraph 'Content' view for the 'Author' model, showing a successfully migrated entry from WordPress in the 'Draft' stage The Hygraph 'Content' view for the 'Post' model, showing all articles successfully migrated from WordPress and in the 'Draft' stage

And that’s it! Now, your original content has found its new home in Hygraph’s headless CMS, where you won’t have to worry about your content getting left in the wake of technological shifts and slow lags to market.

#Beyond migration: Publishing content, caching, and integration with frontend

Hygraph allows you and your team to release content instantly or schedule it for later using either the intuitive UI or the API. When contents are published, you can access them from a wide range of applications across multiple platforms.

Published contents are delivered through Hygraph's globally distributed edge cache. When users query your Hygraph-powered applications, responses are cached across multiple data centers worldwide, resulting in a faster user experience. Additionally, Hygraph offers a High-Performance Content API.

Hygraph's 'API Access' settings highlighting the 'High Performance Content API' endpoint, designed for low latency

The endpoint also lets you distribute and integrate content across various front-end web and mobile frameworks and libraries. Explore this repository for integration examples; the complete source code can be found on GitHub.

#Wrap-up

Congratulations! You’ve now successfully migrated your traditional CMS content to Hygraph’s headless platform. (Or at least get some practice with the sample data we provided!) Migrating to a headless CMS is just the first step in taking your content to the next level. You can join the Slack community to stay updated on the latest developments and connect with fellow Hygraph developers. Plus, check out these guides on Migrating to Hygraph and Content modeling on Hygraph for more information.

Hygraph offers you the high-performance, futureproof severability your organization needs in the ever-evolving technological world. By migrating to Hygraph, you’re liberating your developers and unlocking your content’s greatest potential.

Download eBook: Future of Content

Insights from 400 tech leaders on CMS pain points and trends.

Blog Author

Malomo Demola

Malomo Demola

Technical Writer

Demola is an experienced product designer, software developer, and technical writer who is passionate about building products and creating engaging content. Beyond his professional career, Demola loves to cook, explore new places, and watch movies.

Share with others

Sign up for our newsletter!

Be the first to know about releases and industry news and insights.