【完全移行ガイド】WordPressからmicroCMSへコーポレートサイトを移行する全手順!脱プラグイン・超高速化・改ざんリスクゼロを実現するモダン開発

Web技術

企業の顔として長年運用してきたWordPressのコーポレートサイト。

「プラグインを更新するたびに表示崩れが起きて胃が痛い」「セキュリティ警告や改ざん対策のメンテナンスに追われている」「表示速度(PageSpeed Insights)のスコアが上がらずSEOに悪影響が出ている」といった課題を抱えていませんか?

近年、こうしたWordPress特有の運用・保守コストから脱却するため、フロントエンドとバックエンド(管理画面)を分離する「ヘッドレスCMS(microCMS)+ 静的サイトジェネレーター(Next.js / Astro)」へのリプレイスに踏み切る企業が急速に増えています。

「でも、これまで蓄積したお知らせやブログ記事のデータをどうやって移行すればいいの?」「SEOの検索順位を落とさずに安全に移管できるの?」と疑問に思う方も多いはずです。

本記事では、現役Webエンジニアが実践するWordPressからmicroCMSへの移行ワークフロー、データ抽出からスキーマ設計、インポートスクリプト、フロントエンド実装、DNS切り替え時のSEO対策まで、3,000字オーバーで徹底解説します!


1. なぜコーポレートサイトをmicroCMSへ移行するのか?4大メリット

具体的な移行手順に入る前に、従来のWordPress(モノリシック構成)と比較して得られる圧倒的な恩恵を整理しておきましょう。

比較項目 従来のWordPress microCMS + モダンフロントエンド
セキュリティ 本体・プラグインの脆弱性による改ざんリスクが常にある 静的配信のためPHPやDBがサーバー上に存在せず、原理的に改ざん不可能
保守コスト 毎月のプラグイン更新・PHPバージョン対応が必須 CMSのアップデートはmicroCMS側が自動管理。運用保守フリー
表示速度(Core Web Vitals) アクセスごとにDB問い合わせが発生し、重くなりやすい ビルド済みのHTML/CSS/JSをCDN配信するため爆速(90点〜100点台)
障害・アクセス耐性 急激なアクセス集中(テレビ放映やSNS拡散)でサーバーダウン CloudflareやVercelなどのグローバルCDNが処理するため絶対に落ちない

2. 移行プロジェクトの全体ロードマップ

WordPressからmicroCMSへの移行は、大きく分けて以下の5つのステップで進行します。

  1. データ棚卸し・WordPressからのデータエクスポート(XMLまたはREST API)
  2. microCMS側でのAPIスキーマ設計(お知らせ・プレスリリース・事例など)
  3. データ変換と一括インポート(Management APIの活用)
  4. フロントエンド構築(Astro / Next.js等での静的生成・Webhook連携)
  5. DNS切り替え・リダイレクト(301)設定(SEO評価の継承)

3. ステップ1:WordPressから既存記事データをエクスポートする

まずは、WordPress内に保存されている投稿データを安全に抽出します。移行データ量や構造に応じて2通りのアプローチがあります。

アプローチA:標準の「エクスポート」機能(XML形式)

WordPress管理画面の ツール > エクスポート から「投稿」を選択し、XMLファイル(WXR形式)をダウンロードします。手軽ですが、microCMSへ投入する前にXMLをパース(構文解析)してJSONへ変換する処理が必要になります。

アプローチB:WordPress REST APIを使ったJSON直接取得(推奨)

移行作業用のローカルスクリプト等から、WordPress標準のREST API(/wp-json/wp/v2/posts)を叩いてJSON形式で全記事を一括取得する手法です。アイキャッチ画像のURLやカスタムフィールドの値も整った形式で直接ハンドリングできるため、開発者にとって最も扱いやすい方法です。

# REST APIから記事一覧を取得するエンドポイント例
GET https://example.com/wp-json/wp/v2/posts?per_page=100&page=1&_embed

4. ステップ2:microCMS側でAPIスキーマ(データ構造)を設計する

WordPressの「投稿」や「カスタム投稿タイプ」に合わせて、microCMSの管理画面で新しいAPIを作成します。

一般的なコーポレートサイトのAPI設計例(お知らせ・ニュース)

microCMSでは「リスト形式」のAPIを選択し、以下のフィールドを定義します。

  • タイトル(テキストフィールド):title
  • 公開日(日時フィールド):publishedAt(※WordPressの過去の投稿日時を維持したい場合はカスタム日時フィールド date を用意)
  • カテゴリ(セレクトフィールド または 別API参照):category
  • アイキャッチ画像(画像フィールド):thumbnail
  • 本文(リッチエディタ または HTMLフィールド):content
  • 旧スラッグ(テキストフィールド):slug(※URL構造を引き継ぐために必須)

5. ステップ3:データをmicroCMSへ一括インポートする

記事数が数十件〜数百件以上ある場合、手作業でのコピペ移行は現実的ではありません。microCMSが提供する**「マネジメントAPI(Management API)」**を利用し、Node.js等のスクリプトで自動流し込み(一括インポート)を行います。

Node.jsによるデータ移行スクリプトのサンプルコード

// import-posts.mjs
import fetch from 'node-fetch';

const MICROCMS_SERVICE_DOMAIN = 'your-service-subdomain';
const MICROCMS_API_KEY = 'your-management-api-key';
const ENDPOINT = 'news'; // microCMSのAPIエンドポイント名

// 移行用データのサンプル配列(WordPressから抽出・整形したデータ)
const posts = [
  {
    title: 'コーポレートサイトリニューアルのお知らせ',
    slug: 'renewal-2026',
    content: '<p>いつもご利用いただきありがとうございます。本日サイトを刷新いたしました。</p>',
    category: ['news'],
    publishedAt: '2026-04-01T10:00:00.000Z'
  }
];

async function importToMicroCMS() {
  for (const post of posts) {
    try {
      const response = await fetch(`https://${MICROCMS_SERVICE_DOMAIN}.microcms.io/api/v1/${ENDPOINT}`, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'X-MICROCMS-API-KEY': MICROCMS_API_KEY,
        },
        body: JSON.stringify(post),
      });

      if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
      }

      const result = await response.json();
      console.log(`Successfully imported: ${post.title} (ID: ${result.id})`);
    } catch (error) {
      console.error(`Failed to import: ${post.title}`, error);
    }
  }
}

importToMicroCMS();

※画像の移行について:WordPressの wp-content/uploads/ に保存されている画像群は、CloudinaryやS3、またはmicroCMSのメディア管理へアップロードし、記事本文内の画像URLを一括置換(RegEx置換)しておくのが鉄則です。


6. ステップ4:フロントエンド構築とWebhook自動ビルド

コーポレートサイトのフロントエンドには、表示速度とSEOの観点からAstroNext.js(SSG / ISR)の採用が最も推奨されます。

AstroでのmicroCMSデータ取得とページ生成例

microCMS公式のSDK(microcms-js-sdk)を使用すれば、TypeScriptの型安全性を保ちながら直感的にコンテンツを取得できます。

---
// src/pages/news/[id].astro
import { createClient } from 'microcms-js-sdk';

const client = createClient({
  serviceDomain: import.meta.env.MICROCMS_SERVICE_DOMAIN,
  apiKey: import.meta.env.MICROCMS_API_KEY,
});

export async function getStaticPaths() {
  const data = await client.getList({ endpoint: 'news' });
  return data.contents.map((content) => ({
    params: { id: content.slug || content.id },
    props: { post: content },
  }));
}

const { post } = Astro.props;
---

<article>
  <h1>{post.title}</h1>
  <time datetime={post.publishedAt}>{post.publishedAt.slice(0, 10)}</time>
  <div class="entry-content" set:html={post.content} />
</article>

更新作業をWordPress並みに快適にするWebhook設定

microCMSで記事を「公開」「更新」「削除」した瞬間に、ホスティング環境(Cloudflare Pages、Vercel、Netlify等)へWebhook通知を飛ばし、自動的にサイトを再ビルド(またはオンデマンド再生成)する設定を行います。これにより、非エンジニアの運用担当者でもWordPressと全く変わらない感覚で即座に記事をWeb上に反映させることができます。


7. ステップ5:絶対に失敗できない「SEO評価の引き継ぎ(301リダイレクト)」

コーポレートサイトの移管で最も恐ろしいのが、「リニューアル後にGoogle検索からの流入が激減すること」です。SEO評価を失わないために、以下の3点は徹底的に遵守してください。

① パーマリンク構造(URL)を極力維持する

WordPress時代のURLが /news/company-announcement/ だった場合、新サイトでも全く同じURLパスで表示できるようにルーティングを設計します。

② URLが変わる場合は必ず「301リダイレクト」を設定する

ディレクトリ構造を変更する場合は、新環境のCDN(Cloudflareのエッジリダイレクトやホスティング側の _redirects 設定)で、古いURLから新しいURLへ恒久的な転送(301 Redirect)を1対1で設定します。

# Cloudflare Pages / Netlify の _redirects 記述例
/archives/1234  /news/new-product-launch  301
/category/press/*  /news/press/:splat  301

③ Google Search Consoleへのサイトマップ再送信

新サイト公開直後にXMLサイトマップ(sitemap.xml)を生成・公開し、Google Search Consoleから再送信してクローラーの巡回を促します。


8. まとめ:セキュアで高速な次世代コーポレートサイトへ

WordPressからmicroCMSへの移行は、単なるツールの変更ではなく、**「保守・セキュリティの恐怖から会社を永久に解放し、Webサイトの表示速度とユーザー体験を劇的に引き上げる投資」**です。

  1. WordPressのREST APIを活用して記事と画像データを正確に抽出する。
  2. microCMSで柔軟なスキーマを設計し、Management APIで自動インポートする。
  3. AstroやNext.jsと組み合わせて静的生成(SSG)を行い、爆速表示を実現する。
  4. パーマリンクの維持と301リダイレクトを徹底し、SEO資産を確実に保護する。

「プラグインの更新に怯える日々」を終わらせ、本業のマーケティングやコンテンツ発信に集中できる強固なWeb基盤を手に入れましょう!

(Visited 1 times, 1 visits today)
タイトルとURLをコピーしました