WordPress/PHP から Django/Python への移行:いつ元が取れ、いくらかかるか
WordPress は PHP 上で多くのコンテンツサイトをカバーしますが、事業が成長するにつれ、プラグイン、カスタムコード、CMS の限界がボトルネックになります。Django/Python は、プラグインの「動物園」なしに、カスタムビジネスロジック、API、ロール、スケーラブルな backend へ進む道です。以下は移行のサイン、典型シナリオ、予算、期間、2026 年に移行がペイするかどうかの見方です。
- 典型的なトリガー - 複雑なビジネスロジック、連携、セキュリティ、パフォーマンス、PHP の技術的負債
- 移行予算 - データ量、機能、SEO 要件により $3,000 - $80,000+
- 期間 - 典型サイト 3-12 週、EC・SaaS は 3-9 ヶ月
- 回収 - コンバージョン向上、サポート削減、新連携で 12-36 ヶ月
- 最大リスク - Django 自体ではなく、legacy 監査不足と URL 移行による SEO 損失
WordPress が足りなくなるとき
サイトが コンテンツ + フォーム + 基本カタログ のままなら WordPress で十分です。ビジネスロジックがプラグイン ecosystem を超えると問題が始まります:
- 10+ プラグイン - 機能重複、更新競合、セキュリティホール;
functions.php、mu-plugins、フォークプラグインのカスタム PHP - テスト・ドキュメント・code review なし;- ページが遅い - 5 万+ レコード、複雑フィルタ、重い WooCommerce クエリ;
- 連携が workaround 頼み - Zapier webhook、CSV エクスポート、CRM/ERP 手動同期;
- モバイルアプリ、パートナーポータル、headless 向けの API が不十分;
- ロール・権限 が「管理者 / 編集者 / 購読者」を超える - 部門、承認フロー、audit log。
Django は「すべてで WordPress より優れている」わけではなく、CMS がプラグイン上の自作 ERP になった領域で強いです。
移行が必要なサイン
| 症状 | 何が起きるか | 結果 |
|---|---|---|
| WP 更新でサイトが壊れる | プラグイン競合、deprecated hook | ダウンタイム、リード損失 |
| 「プラグイン開発」に数週間 | コアロジックに触れない | 高コスト改修 |
| セキュリティが常に火事 | プラグイン脆弱性、nulled テーマ | 侵害、SEO ペナルティ |
| データ重複 | 注文は WP、顧客は CRM、在庫は Excel | ミス、手作業 |
| 負荷増、キャッシュ无效 | プラグイン上の monolith 構造 | コンバージョン低下 |
表の 2-3 項目 に当てはまるなら、移行は「流行スタック」ではなく 運用リスク低減 です。
移行に含まれるもの
典型的な「WordPress → Django」は HTML 移動だけではありません:
- Legacy 監査 - プラグイン、カスタムコード、DB、cron、連携、「隠れた」ビジネスロジック。
- 新アーキテクチャ設計 - データモデル、API、ロール、バックグラウンドジョブ(Celery)。
- コンテンツ移行 - 投稿、ページ、メディア、meta、カテゴリ、タグ、カスタムフィールド(ACF)。
- ユーザー移行 - パスワードハッシュ(多くは初回ログインで re-hash)、ロール、プロフィール。
- EC / 注文 - WooCommerce なら:商品、バリエーション、注文、クーポン、税。
- SEO 層 - 301 リダイレクト、sitemap、canonical、Schema.org、可能なら slug 維持。
- 連携 - CRM、決済、メール、分析 - Python 直結、中間層なし。
- 並行運用 - staging、UAT、cutover 計画、rollback。
- 編集者トレーニング - Wagtail / Django Admin / headless CMS。
Django は WordPress 管理画面を 1:1 で再現する必要はありません。チームの実プロセスに合った簡素 CMS の方が勝つことが多いです。
移行戦略
Big bang(一括切替)
旧サイト停止、新サイトをメンテナンス窓(夜間 / 週末)で起動。
- メリット - cutover 一回、二重サポートなし。
- デメリット - リスク高、rollback 必須、SEO とチームへの負荷。
- 向くケース - 小規模サイト、連携少、オフピーク トラフィック低。
段階的(strangler fig)
まず 1 モジュール - ブログ、アカウント、API - を移し、一部トラフィックを Django へ。
- メリット - リスク低、KPI を部分ごとに測定。
- デメリット - 一時的に二システム、infra 複雑(reverse proxy、共有 auth)。
- 向くケース - EC、SaaS、高トラフィック、zero-downtime 要件。
Headless WordPress → Django backend
初期は WordPress が編集 CMS のまま;Django が カタログ、注文、API を担当。後にコンテンツは Wagtail へ。
- メリット - 編集者は継続;ビジネスロジックが PHP から早く離れる。
- デメリット - 移行期間中は二 CMS。
多くの B2B・EC プロジェクトでは 段階的移行 が、チームの安定とダウンタイム削減でペイします。
移行コスト
価格は データ量、WooCommerce / membership の深さ、連携数、SEO 要件 に依存 - 「Python に移す」こと自体ではありません。
典型レンジ(USD、東欧 / CIS アウトソース)
| シナリオ | 移行内容 | 予算 | 期間 |
|---|---|---|---|
| コーポレートサイト | 20-100 ページ、ブログ、フォーム、SEO | $3,000 - $12,000 | 3-6 週 |
| コンテンツ + アカウント | ユーザー、ロール、ドキュメント、API | $8,000 - $25,000 | 6-10 週 |
| WooCommerce MVP | 最大 2,000 SKU、注文、決済、admin | $15,000 - $45,000 | 2-4 ヶ月 |
| Marketplace / SaaS | マルチベンダー、サブスク、課金、RBAC | $40,000 - $80,000+ | 4-9 ヶ月 |
米国・西欧チームは x2-x3。移行は同規模 Django greenfield より通常 +15-35% - legacy 解析、リダイレクト、並行運用のため。
予算内訳
| 項目 | 割合 | コメント |
|---|---|---|
| 監査・仕様 | 10-15% | なければ 40-60% 過小見積もり |
| デザイン / frontend | 15-30% | リデザインまたは既存 markup 適応 |
| Django backend | 30-45% | モデル、API、ビジネスロジック、admin |
| データ移行 | 10-20% | スクリプト、検証、dry-run |
| SEO・リダイレクト | 5-10% | URL マップ、301、Search Console |
| テスト、UAT | 10-15% | 回帰、負荷、cutover リハーサル |
| DevOps | 5-10% | CI/CD、staging、監視 |
legacy 監査と SEO で節約するのは危険 - 予算超過と organic トラフィック損失はここで起きがちです。
期間とクリティカルパス
| 段階 | コーポレート | WooCommerce | SaaS / marketplace |
|---|---|---|---|
| WP 監査、データマップ | 3-7 日 | 1-2 週 | 2-3 週 |
| アーキテクチャ、仕様 | 3-5 日 | 1-2 週 | 2-4 週 |
| Django 開発 | 2-4 週 | 6-12 週 | 12-24 週 |
| 移行スクリプト + dry-run | 3-5 日 | 1-2 週 | 2-3 週 |
| SEO、リダイレクト、UAT | 3-5 日 | 1-2 週 | 2-3 週 |
| Cutover | 1 日 | 1-2 日 | 2-5 日 |
| 合計 | 3-6 週 | 2-4 ヶ月 | 4-9 ヶ月 |
汚い WP データ(ACF 大量フィールド、slug 重複)、不安定なパートナー API、SEO とのリダイレクト承認遅延 で期間は伸びます。
いつ移行がペイするか
回収は お金とリスク で測り、「スタックの美しさ」ではありません:
直接削減
- プラグインサポートと緊急修正 - WP で $200-800/月 vs プラグイン動物園なし Django retainer $150-500/月;
- ホスティング - managed WP 上の重い WooCommerce $100-400/月 vs VPS 最適化 Django $40-150/月(同等負荷);
- 連携 - Zapier/Make と CSV 中間層をやめると $50-300/月と手作業時間を削減。
収益増
- サイト速度 - LCP +0.1 秒で EC コンバージョン +1-3% になりがち;
- 「プラグイン上限」を超える新機能 - サブスク、B2B ポータル、パートナー API;
- ダウンタイム減 - WP 侵害や更新競合 1 回が四半期サポートより高くつくことも。
簡単 ROI 式
ROI(月)=(移行コスト)/(月間削減 + コンバージョン向上によるマージン)
例: WooCommerce 移行 $25,000。サポート・ホスティング・連携で $600/月 削減。速度と B2B 新セクションで $800/月 増収。合計 $1,400/月 → 回収 約 18 ヶ月。
10 ページのパンフレットで連携も成長計画もなければ移行は ペイしません - WP 更新、プラグイン整理、適切なホスティング の方が安いです。
リスクと対策
SEO 損失。 cutover 前に 301 マップ、最初 4-8 週は 404 監視、可能なら URL 構造維持。
データ損失。 dry-run 最低 2 回、checksum、注文・ユーザーの抜き取り検証。
cutover ダウンタイム。 staging リハーサル、rollback 計画、低トラフィック窓、feature flag。
編集者の抵抗。 新 admin への早期アクセス、短い研修、1-2 週並行利用。
スコープクリープ。 移行中は機能凍結;新規は安定後の「フェーズ 2」。
移行後 WordPress vs Django
| 観点 | WordPress | Django |
|---|---|---|
| コンテンツ、ブログ | 優秀 | Wagtail / headless CMS |
| カスタムビジネスロジック | 弱い(workaround) | 強み |
| API、モバイル | プラグイン経由 | DRF 標準 |
| エンタープライズ EC | WooCommerce + 痛み | Oscar / カスタム |
| セキュリティ | プラグイン依存 | 攻撃面小 |
| MVP 速度 | 速い | 初期は遅い |
| スケール時 TCO | 非線形増 | 予測しやすい |
まとめ
CMS が 技術的負債 になったとき - プラグイン競合、カスタムロジック、連携、セキュリティ、スケール - WordPress/PHP から Django/Python への移行 に意味があります。予算はコンテンツサイト $3,000 から marketplace $80,000+;期間 3 週 から 9 ヶ月;測定可能なサポート削減とコンバージョン成長で 12-36 ヶ月 回収。
まず 3-5 日の legacy 監査 から - 実スコープが分かり、「移行のための移行」を除外できます。Django が不要なら、監査コスト以上に節約できます。
よくある質問
Django 移行で SEO を失わずに済む?
はい、正しい URL マップがあれば。 変更 URL ごとに 301 リダイレクト、可能なら slug 維持、最新 sitemap、cutover 後の Search Console と 404 監視。コンテンツと meta はスクリプト移行 + 高トラフィックページの手動確認。リダイレクト漏れ がリスク - SEO に予算 5-10% を確保。
WordPress から移行後、ユーザーパスワードは残る?
ハッシュ方式次第。 WordPress は phpass - Django は直接受け付けません。典型:初回ログイン成功時に re-hash(カスタム auth backend)、または ワンタイムリンク で新パスワード設定。大規模 B2C は事前連絡;B2B は重要アカウントを手動 onboarding。
EC なし、コンテンツのみ移行の費用は?
コーポレートサイト(最大 100 ページ、ブログ、メディア、フォーム)- $3,000 - $8,000、3-5 週。ACF/カスタムフィールド、多言語(WPML/Polylang)、非標準 post type で複雑化。Wagtail + 新デザインなら frontend +15-25%。
WordPress 拡張と Django 移行、どちらが安い?
短期(日-週) で 小機能 1 つ、技術的負債なしなら WP 拡張が安い。1-3 年 でプラグイン・連携・セキュリティ事故が積み、新機能ごとに x2 なら Django が安い。直近 2-3 改修 が予定超過なら移行 TCO を計算。
ブログは WordPress、ビジネスロジックは Django にできる?
はい、一般的な中間ステップです。 Django がカタログ、注文、API、アカウント;WordPress は編集コンテンツのみ。reverse proxy(Nginx)が /blog/ を WP、他を Django へ。二システム の更新・セキュリティが欠点;time-to-value 加速 と編集者リスク低減が利点。長期ではビジネスモジュール安定後、コンテンツは Wagtail へ移ることが多いです。