# WordPressからヘッドレスCMSへ移行する手順とSEOの注意点

公開日: 2026-10-20 | 更新日: 2026-10-20 | URL: https://blog.genko.me/wordpress-to-headless-cms

> WordPressからヘッドレスCMSへ移行する手順を解説します。記事と画像の書き出し、genko.me向けのスキーマ変換、CSV・JSON取り込み、URL維持と301転送、公開切り替えの確認事項をまとめました。

WordPressからヘッドレスCMSへ移行するときは、記事・画像・URLを棚卸しし、移行先のスキーマに変換してから、新しいフロントエンドへ切り替えます。genko.meではCSV・JSONを取り込めますが、WordPressのWXRを直接読み込む機能はないため、変換が必要です。SEOへの影響を抑えるには、既存URLをできるだけ維持し、変更したURLには301または308の恒久転送を設定します。

本記事はgenko.meの運営側が執筆しています。機能は2026年10月20日時点の公式資料と実装を確認しています。

## WordPressから移行したほうがよいケース

サイトの表示部分をNext.jsやAstroで作りたい、同じ原稿を複数のサイトで使いたい場合は、ヘッドレスCMSが候補になります。ただし、CMSを替えるだけで速度や検索順位が上がるわけではありません。ページ生成、画像、キャッシュ、メタ情報は新しいサイト側で実装します。

| 現在の状況 | 判断の目安 |
| --- | --- |
| ブログとお知らせが中心で、開発担当がいる | 小さな記事群から移行を試す価値があります |
| テーマとプラグインで必要な機能が動いている | 維持費と移行費を比べ、継続も検討します |
| フォーム・検索・会員機能をプラグインに依存 | 代替を決めてから移行します |
| 編集者がページのレイアウトも頻繁に変える | 新しい編集画面で同じ作業ができるか試します |

WordPressを残し、REST APIから原稿だけ取得する方法もあります。[WordPress公式REST API](https://developer.wordpress.org/rest-api/)がその構成を支えます。編集運用を替えずに表示側だけ刷新したい場合は、この方法と比較してください。構成の違いは[ヘッドレスCMSとWordPressの比較](https://blog.genko.me/headless-cms-vs-wordpress)でも整理しています。

## 1. 移行前に記事・画像・URLの一覧を作る

公開記事だけでなく、固定ページ、下書き、カテゴリ、タグ、著者、添付ファイル、カスタムフィールドを対象に含めます。移行しないものにも理由を残します。

URL表には旧URL、記事ID、移行先ID、新URL、転送の要否を記録します。`/2024/10/article/`を`/blog/article/`へ変える場合、スラッグだけでなく日付階層や末尾スラッシュも対応付けます。画像URL、カテゴリ一覧、ページ送りも確認対象です。

まず「表・コード・画像・埋め込みがある記事」「日本語スラッグの記事」「古い記事」を少数選びます。全件を取り込む前に、この組み合わせで変換の問題を洗い出すほうが修正範囲を抑えられます。

## 2. WordPressの記事とメディアを書き出す

[WordPressのエクスポート](https://wordpress.org/documentation/article/tools-export-screen/)は、管理画面の「ツール」→「エクスポート」から行います。WXRというXML形式で投稿や関連データを書き出せます。

1. 移行対象に合う条件でWXRを保存します。
2. ホスティング側のバックアップ機能などで、画像・添付ファイルの実体も別途保管します。
3. 旧サイトで本文と画像が表示できる間に、変換と照合を進めます。
4. 切り替え直前に更新を止め、差分の記事とメディアを再取得します。

WXRだけを保存して移行完了と考えないでください。旧画像URLへの参照が残ったまま旧ホストを解約すると、本文が読めても画像が欠ける可能性があります。

本文は、生のショートコードやブロック固有の記述をそのまま移すと再現できない場合があります。移行用HTMLを作り、旧ページの表示結果と比較します。フォームや目次など動的な機能は、HTMLのコピーとは別に置き換えます。

## 3. WordPressの項目をgenko.meのスキーマへ対応付ける

[APIとスキーマ](https://docs.genko.me/studio/apis)で記事用のリスト形式APIを作り、必要な[フィールド](https://docs.genko.me/studio/fields)を用意します。元データの項目を全部コピーするのではなく、表示・検索・編集に必要なものを選びます。

| WordPress側の情報 | genko.me側の設計例 |
| --- | --- |
| 投稿タイトル | `title`：テキスト |
| 本文の表示用HTML | `body`：リッチテキスト |
| 投稿スラッグ | `slug`：テキスト。サイトのルート解決に使用 |
| 元の公開日 | `originalPublishedAt`：日時 |
| 抜粋 | `summary`：テキストエリア |
| 著者・カテゴリ | 別APIへの参照、またはテキスト・選択肢 |
| アイキャッチ | `eyecatch`：画像。メディアを登録して指定 |

`slug`を作っても自動的にそのURLでページができるわけではありません。ルーティングはサイト側で実装します。genko.meのコンテンツIDは英数字・ハイフン・アンダースコアで64文字以内です。日本語やスラッシュを含む旧スラッグは、別のテキスト項目に保持する方法が使えます。

著者とカテゴリを独立させる場合は、参照先を先に作ります。元のWordPress IDと移行先IDの対応表を持ち、記事側の参照を置き換えてください。参照IDの自動変換はありません。

## 4. CSV・JSONに変換して下書きとして取り込む

genko.meの[インポートとエクスポート](https://docs.genko.me/studio/import-export)は、CSVまたはJSONを受け付けます。WXRをそのまま選ぶのではなく、前節のフィールドIDに合う形へローカルで変換します。

次は、`title`・`body`・`slug`・`originalPublishedAt`を作成したAPIに取り込めるJSONの最小例です。日時は元記事の値に置き換えます。

```json
{
  "contents": [
    {
      "id": "wp-123",
      "title": "移行した最初の記事",
      "body": "<p>元の記事から変換した本文です。</p>",
      "slug": "first-article",
      "originalPublishedAt": "2024-10-01T00:00:00.000Z"
    }
  ]
}
```

1. 対象APIの「インポート」で変換済みファイルを選びます。
2. 検証結果を確認し、「記事IDを引き継ぐ」を必要に応じて使います。
3. 最初は「下書き」で取り込みます。
4. プレビューと旧ページを比較し、問題を直してから対象範囲を広げます。

2026年10月時点では1ファイル10MB、1回1,000件までです。本文が長ければ件数上限より先にファイルサイズが効くため、どちらも満たすよう分割します。必須フィールドは下書き保存でも必要です。

リスト形式への取り込みは追加処理です。同じIDが既にあると途中で停止し、それまでに保存した原稿は残ります。再実行前に一覧を確認し、未登録分だけを取り込んでください。元の公開状態、予約、作成日時は復元されず、画面で選んだ状態が適用されます。元の公開日を表示したい場合は、例のような専用フィールドを使います。

## 5. 画像と内部リンクを移行する

WordPress画像をgenko.meへ自動コピーする専用機能はありません。画像は[コンテンツの画像・ファイル欄からアップロード](https://docs.genko.me/studio/media)し、原稿を保存して参照を確定させます。配信APIの`{ url, alt }`と、取り込みで使うメディアIDを含む保存値は同じ形ではありません。

小規模なら取り込み後に画像欄と本文画像を設定し直す方法が確実です。件数が多い場合は、画像の旧URLと移行先を台帳で管理し、テスト原稿のエクスポートを保存値の見本にしてください。Newt向けの画像コピー機能をWordPressにも使えるとは考えないでください。

本文内の旧ドメインへのリンク、`srcset`、PDF、キャプション、代替テキストも照合します。記事URLを維持しても、画像パスまで自動で維持されるわけではありません。

## 6. URL変更には301・308を設定する

URLを変えない場合は、新サイトが同じパスで本文を返すようにします。変える場合は旧URLから対応する新URLへ、サーバー側で301または308を返します。転送はCMSの取り込み設定ではなく、ホスティングやアプリで実装します。

[Googleのサイト移転ガイド](https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes)では、URL対応表、恒久転送、サイトマップの更新などを案内しています。転送先をすべてトップページにせず、内容が対応するページへ結び付けてください。

切り替え前後で、旧URLの応答、転送先の200、canonical、内部リンク、サイトマップ、意図しない`noindex`を確認します。恒久転送を用意しても順位維持の保証はありません。切り替え後も404や検索流入を追います。

## 公開切り替えのチェックリスト

1. 移行対象の記事数と、公開・下書きごとの内訳を照合します。
2. 画像・表・埋め込み・関連記事・元の公開日を確認します。
3. 一覧・詳細・ページ送り・検索・フォームを操作します。
4. 編集を止め、最後の更新差分を反映します。
5. 公開、キャッシュ更新、URL切り替えを順序どおり実施します。
6. 旧URLからの到達と、新しい編集画面からの更新を確認します。
7. 旧データと戻し方を、運用担当が合意した期間保管します。

[genko.me](https://genko.me/)の導入前に、[料金と容量](https://docs.genko.me/studio/plans)と実データを照らし合わせてください。Next.jsでの表示は[接続ガイド](https://blog.genko.me/headless-cms-nextjs)、移行対象の考え方は[Contentful移行ガイド](https://blog.genko.me/contentful-migration)も参考になります。

## よくある質問

### WordPressのXMLをgenko.meに直接取り込めますか？

WXRの直接取り込みには対応していません。スキーマを作成し、本文や項目を対応付けたCSVまたはJSONへ変換します。

### WordPressから移行するとSEOに強くなりますか？

CMSの変更だけで検索順位が改善するとは限りません。URL、本文、メタ情報、表示速度、内部リンクなどをサイト側で維持・改善する必要があります。

### WordPressの画像は自動で移行されますか？

WordPress用の画像自動移行機能はありません。ファイル実体を保管し、移行先で登録したうえで本文と画像欄を更新してください。

### WordPressの公開日や下書きは引き継げますか？

取り込みは元の公開状態や作成日時を復元しません。公開日は専用フィールドで保持し、公開記事と下書きはファイルを分けて取り込むなど、意図した状態を指定します。

## 出典

2026年10月20日に確認しました。

- [WordPress：エクスポート画面](https://wordpress.org/documentation/article/tools-export-screen/)
- [WordPress：REST API Handbook](https://developer.wordpress.org/rest-api/)
- [Google：URL変更を伴うサイト移転](https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes)
- [genko.me：インポートとエクスポート](https://docs.genko.me/studio/import-export)
- [genko.me：メディア管理](https://docs.genko.me/studio/media)
