旧WordPressから新サイトへブログ記事だけ移す手順|丸ごと移行ツールを使わず、投稿と画像を差分で移して照合する
旧WordPressから新サイトへブログ記事だけ移す手順|丸ごと移行ツールを使わず、投稿と画像を差分で移して照合する
ホームページを新しく作り直したあとに、「前のサイトのブログ記事だけを新しいサイトへ移してほしい」という依頼はよくあります。デザインや固定ページは新サイトのものを使い、これまで書いてきた記事と画像だけを持ってくる作業です。ここで最初に決めることは、どのツールを使うかではなく、「何を、何件、どこから移すのか」を数字で確定することです。
結論から書きます。記事だけを移すなら、サイト丸ごとの移行ツールは使いません。WordPress標準のエクスポート機能で旧サイトと新サイトの両方からWXR形式のファイルを取り、新サイトに無い記事とその記事が使う画像だけを抜き出した差分ファイルを作り、公式のインポーターで「添付ファイルをダウンロードしてインポート」を有効にして読み込みます。最後に、投稿数・公開状態・日付・著者・カテゴリーとタグ・アイキャッチ・本文画像・記事URLの8項目を新旧で突き合わせて完了です。
この記事では、弊社graciautoが教育施設のサイトで、旧サイトに残っていた約6年分の記事184件と画像1,710点を新サイトへ移した作業をもとに、手順と判断基準、時間のかかりどころをまとめます。
先に結論|記事だけを移す手順は7ステップ
| # | 手順 | 要点 |
|---|---|---|
| 0 | 新旧両方をバックアップする | 失敗しても戻せる状態を先に作る |
| 1 | 移植元を確定する | 「現在のホームページ」が別ドメインの旧サイトを指していることがある。件数と最新記事の日付を両方で見る |
| 2 | 新旧のエクスポートを取る | ツール→エクスポート。旧は「すべてのコンテンツ」、新は照合用 |
| 3 | 差分ファイルを作る | 新サイトに無い記事と、その記事が使う画像だけを抜き出す |
| 4 | 受け入れ側を整える | 投稿タイプ・カテゴリー・著者・トップの表示切替 |
| 5 | 公式インポーターで読み込む | 添付ファイルのダウンロードと本文内URLの書き換えを有効にする |
| 6 | 画像は分割して順番に入れる | 同時に走らせない。進捗はメディア件数ではなく公開URLの200応答で確定する |
| 7 | 8項目を照合する | 件数・公開状態・日付・著者・分類・アイキャッチ・本文画像・URL |
なぜサイト丸ごとの移行ツールを使わないか
All-in-One WP Migrationのようなツールは、データベースとファイルを丸ごと複製します。サーバーを引っ越す、検証用の複製環境を作る、という用途には向いていて、その手順はWordPressのサーバー移転をダウンタイムなしで行う手順にまとめています。
しかし「記事だけを移す」場面では、この性質が逆に働きます。丸ごと移行は、移行先のデザイン・固定ページ・プラグイン設定・テーマ設定を、すべて移行元のもので上書きします。新しく作ったサイトに旧サイトのデータを流し込めば、新サイトが旧サイトに戻るだけです。
移してよいのは投稿と、その投稿が使っている画像だけ。この範囲を守れるのが、WordPress標準のエクスポートとインポートです。
実例|旧サイトに残っていた184件と画像1,710点
作業の前提は次のとおりでした。
- 新サイトは数年前に旧サイトを複製して作られ、その時点の記事131件が入っていた
- 旧サイトはその後も更新が続き、投稿は240件。最新記事は移行作業の2か月前
- 旧サイトは別ドメインで、httpのみ(SSL未設定)
- 旧サイトはお知らせもブログも「投稿」をカテゴリーで分けている。新サイトはお知らせを別の投稿タイプで持っている
新旧のエクスポートを照合して出た差分と、実際に移した数です。
| 種類 | 旧サイトの件数 | 新サイトに無かった件数(移した数) | 関連する画像 |
|---|---|---|---|
| ブログ(投稿) | 240件 | 105件(公開103・下書き2) | 1,594点 |
| お知らせ | 82件 | 79件(公開77・下書き2) | 116点 |
記事本文の取り込みは数分で終わりました。公開側の投稿数は137件から239件になり、本文内の画像URLが新ドメインへ書き換わっていることも実際の記事で確認できました。
時間がかかるのは画像です。インポーターは旧サーバーから画像を1点ずつ取得するため、この環境では1分あたり約4点。1,594点なら単純計算で6〜7時間、途中停止と再分割を含めると半日以上かかりました。「記事を移す」と言われて想像する作業時間の大半は、画像の取得待ちです。
手順の詳細
手順0|新旧両方をバックアップする
旧サイトだけでなく、新サイトも「インポート前の状態」に戻せるようにします。差分の作り方を誤って二重登録した場合、記事を1件ずつ消すより、戻して作り直す方が確実です。何を取れば戻せるかはホームページのバックアップは何をどこまで取れば足りるかに書いています。
手順1|移植元を確定する
依頼者が言う「現在のホームページ」と、制作側が見ている「新サイト」が別のものを指していることがあります。新サイトを公開したあとも旧ドメインが現役で、スタッフが旧サイトの管理画面に記事を書き続けているケースです。
見分け方は単純で、両サイトの投稿件数と最新記事の日付を比べます。新サイトの記事が数年前で止まっていて、旧ドメインに直近の記事があれば、移植元は旧ドメインです。ここを確認せずに「ブログの更新が止まっている」と判断すると、移すべき記事の存在そのものを見落とします。
手順2・3|エクスポートを両方から取り、差分ファイルを作る
旧サイトからは「すべてのコンテンツ」、新サイトからは照合用に現状のエクスポートを取ります。両方の投稿をタイトル・日付・スラッグで照合し、新サイトに無い投稿だけを抜き出します。その投稿の本文とアイキャッチで使われている添付ファイルも、同じファイルに含めます。作ったファイルはXMLとして妥当かを確認してからインポートに使います。
差分を作る理由は、二重登録を避けるためです。旧サイトの全件をそのまま入れると、新サイトに既にある131件と重複します。インポーター側にも既存記事を飛ばす判定はありますが、タイトルや日付がわずかに違えば別記事として登録されます。先に差分を作る方が確実です。
手順4|受け入れ側を整える
記事を入れる前に、新サイト側で3つを決めます。
- 投稿タイプの違い。旧サイトが「投稿+カテゴリー」でお知らせを管理し、新サイトが別の投稿タイプで持っている場合、移植後の運用をどちらに揃えるかを先に決めます。この案件では旧サイトの運用に揃え、トップのお知らせ欄が参照する先を設定1つで切り替えられるようにしておき、移植が終わってから切り替えました
- 著者。旧サイトの著者を、新サイトのどのユーザーに割り当てるか
- カテゴリーの参照範囲。ブログとお知らせが同じ「投稿」に入ると、トップのブログ欄にお知らせが混ざります。欄ごとに参照するカテゴリーを限定します
手順5|公式インポーターで読み込む
WordPress公式のインポーターを新サイトに入れ、差分ファイルを読み込みます。設定は「添付ファイルをダウンロードしてインポート」を有効にし、著者の割り当てを指定します。
このとき旧サイトは、画像の取得が終わるまで公開状態のまま到達できるようにしておきます。インポーターは本文内の画像URLを新サイトのものへ書き換えるので、旧サイトがhttpのみでも、新サイトの記事はhttpsの画像だけで構成されます。旧URLが残ったままだと、https側で混在コンテンツの警告が出ます。
手順6|画像は分割して、順番に、URLで確認する
画像の取り込みで守ることは3つです。
1つ目は、同時に走らせないこと。ブログの画像取り込みが終わるまで、お知らせの取り込みは始めません。並行させるとIDの衝突とサーバー負荷の原因になります。
2つ目は、便を分けること。管理画面での長時間処理は、ブラウザや接続の都合で途中で止まることがあります。50件や100件の単位に分けて投入します。実例では、100件の便が58〜72件で止まることが繰り返し起きました。
3つ目は、進捗を公開URLで確定すること。メディアの件数を見て「増えたから終わった」と判断せず、旧サイトの画像URLに対応する新サイトのURLが200を返すかを1点ずつ照合します。止まった位置を照合で確定し、未取得分だけを再分割して次の便にします。最終的に1,594点のうち1,593点が同じパスで200、残る1点はファイル名が編集されていたため、元のファイル名で200を確認しました。
手順7|8項目を照合する
| 照合項目 | 見るもの |
|---|---|
| 投稿件数 | 新サイトの件数が「移行前+差分」と一致するか |
| 公開状態 | 公開・下書き・パスワード保護が旧と同じか |
| 日付 | 公開日が旧と同じか(インポート日になっていないか) |
| 著者 | 意図したユーザーに割り当たっているか |
| カテゴリー・タグ | 分類が付いているか。トップの各欄に正しく出るか |
| アイキャッチ | 設定が外れていないか |
| 本文画像 | 旧ドメインの参照が0件か。表示されるか |
| 記事URL | 旧記事のURLから新記事へ辿れるか |
旧サイトの扱い
移植が終わるまでは旧サイトを公開状態で維持します。画像の取得元だからです。終わったら、閉鎖するか新サイトへの転送に切り替えます。同じ記事が2つのドメインに存在し続けるのは検索評価の面で不利です。旧サイトを放置した場合の危険は使っていないWordPressサイトを放置する危険に、ドメインを跨いだ転送の設計はサイトリニューアルでSEOを落とさない移行チェックリストにまとめています。ドメインが変わるので、旧記事URLから新記事URLへの301転送と、本文中の旧内部リンクの修正も必要です。
起こりうるリスクと予防
| 起こりうること | 予防 |
|---|---|
| 既存記事との二重登録 | 差分ファイルを作ってから入れる。全件は入れない |
| 混在コンテンツの警告 | インポーターのURL書き換えを有効にし、移植後に旧ドメインの参照が0件かを検索する |
| 本文レイアウトの崩れ | 旧テーマ専用のショートコードは新テーマでは文字のまま出る。移植後に数記事を開いて確認する |
| 画像点数の見積ズレ | 依頼時点で「1記事3〜5枚」と仮定して300〜500点を見込んでも、実際は1,710点だった。エクスポートから添付の件数を数えてから見積もる |
| 途中停止を「完了」と誤認 | メディア件数ではなく公開URLの200応答で確定する |
| トップの表示切替を先に行う | 切替を先にすると、表示中の記事が消える。切替は移植完了後 |
費用と時間の目安
標準のエクスポートとインポートで進める方式で、弊社が見積として提示した作業工数は約11時間、費用は12〜15万円(税別)が目安です。画像の取得待ちの時間は含みません。記事数・画像点数・ショートコードの有無・投稿タイプの違いで変わるため、エクスポートを取って件数を数えてから確定するのが正しい順番です。
よくある質問
Q. 旧サイトのログイン情報が分かりません。移せますか
エクスポートには旧サイトの管理者権限でのログインが必要です。前の制作会社や担当者から取り寄せます。取り寄せられるまでは受け入れ側の準備だけを進め、移植そのものは情報が揃ってから行います。制作会社が変わるときに何を受け取るべきかは制作会社を変えるときサイトの何を引き継ぐかにまとめています。
Q. 記事のURLは変わりますか
ドメインが変われば、URLの前半は必ず変わります。後半のパス部分は、新サイトのパーマリンク設定を旧サイトと同じ構造にすれば維持できます。いずれにしても、旧記事URLから新記事URLへの301転送を用意します。
Q. 自分でできますか
記事が数十件、画像が数百点までで、新旧の投稿タイプが同じなら、WordPress標準のエクスポートとインポートで進められます。件数が多い、投稿タイプが違う、新サイトにも記事が入っていて重複の可能性がある、という条件が1つでもあれば、差分ファイルの作成と8項目の照合が必要になるので、制作会社に依頼する方が安全です。
まとめ|記事だけを移すなら「差分・画像・照合」
- 記事だけを移す場面で、サイト丸ごとの移行ツールは使わない。新サイトのデザインと設定が上書きされる
- 移植元を件数と最新記事の日付で確定する。「現在のホームページ」が旧ドメインを指していることがある
- 新旧のエクスポートを照合し、新サイトに無い記事とその画像だけの差分ファイルを作る
- 公式インポーターで添付ファイルの取得とURL書き換えを有効にする。旧サイトは取得が終わるまで公開を維持する
- 画像は分割して順番に入れ、進捗は公開URLの200応答で確定する
- 件数・公開状態・日付・著者・分類・アイキャッチ・本文画像・URLの8項目を照合して完了とする
- 終わったら旧サイトを閉鎖または転送し、旧記事URLの301と旧内部リンクの修正を行う
弊社では、旧サイトの記事だけを新サイトへ移す作業を、差分の作成から画像の取得、8項目の照合、旧サイトの転送設計まで一式で対応しています。サイトを作り直したあとに記事が旧サイトに残っている方は、お問い合わせからご相談ください。