MENU

WordPressインポートの失敗原因&データ移行のコツ

2020 6/02

何かと評判の悪いWordPressの標準インポート機能ですが、基本の手順通りにやれば、容量の大きいサイトでも無事にデータ移行できます。

何回やっても上手くいかず、有料ツールを衝動買いする前に、参考にして頂ければ幸いです。
(私も隅々まで知り尽くしている訳ではないので、あくまで体験談として)

※ ちなみに、WordPress5.0以降、インポート機能もかなり改善されています。

目次

インポート前にやってはいけないこと

WordPressのインポートを成功させるコツは、インポート作業の前に、ファイルをアップロードしたり、オプション設定を行ったりしないことです。

レンタルサーバーで、WordPressの新規インストールを行い、アカウント開設に成功したら、そのままの、まっさらな状態でインポート作業に入ります。

以下、インポート前にやってはいけないこと。

・SQLやXMLファイルののパーマリンクURL、ファイル名、語句などをエディタで一括変換する。
  → 一括変換はインポート完了後、データベース用のReplace&Searchを使って置換する。

・インポート前に、メディアファイルやプラグインをwp-content/uploadsにアップロードする

・インポート前に、テスト記事を投稿したり、タグやカテゴリーを新規作成する

・インポート前に、プラグインやテーマテンプレートなどのオプションを設定する

・インポート前に、WordPressの細々した設定を行う

・バックグラウンドでサーバーに負荷のかかる作業をする(ファイル転送や別サイトの編集など)

WordPressのインポート機能は、「まっさらな状態にデータを注入する」ことを基準にしており(サーバー上でXMLをPHPに変換して、データベースに格納する)、インポート前に余計なデータが入っていると、サーバーの方で混乱して、データ変換や格納に失敗するそうです。
※ 一見、インポートに成功したように見えても、アイキャッチ画像が欠損したり、無関係な画像に置き換わったりすることがある。

また、『添付ファイルのインポート』では、前サイトのサーバーから自動的にファイルを取り込む作業がステルスで行われます。

その間、サーバーに大きな負荷がかかるので、途中で余計な作業をすると、サーバーがますます過負荷となって、失敗するとのこと。

英語のサイトに書いてあったので、理解不十分かもしれませんが、ともかく、「移転先のWordPressが真っ新な状態で移行作業を行う」のが成功の秘訣のようです。

基本の手順を守る

まずコピーしたいサイトのエクスポートファイルを準備します。

何も考えずに「すべて」を選択。

WordPress インポート

記事数が多い場合は、カテゴリー別、もしくは、カスタム投稿タイプ別にエクスポートファイルを用意してもOK。

その際も、エクスポートファイルに、絶対に手を加えないこと。

XMLファイル上の、置換や編集はインポート失敗の元です。

WordPress インポート

添付ファイルの扱い方(アイキャッチ画像)

恐らく、皆さんがインポートに失敗する最大の原因は、『アイキャッチ画像が正常に取り込まれない』だと思います。

記事数やメディアファイル数が少なければ問題ないですが、記事、アイキャッチ画像ともに、数百、数千の規模になれば、失敗する危険性も高まります。

数GBのサイトであれば、有料プラグインを購入するのも一考です。

私も数GB規模のサイトで、何度もエクスポート&インポートを失敗した経験があります。

テキストやメタデータの移行はできても、アイキャッチ画像はかなりの確率でエラーが生じます。

その度に、エラーを修正して、画像を再アップロードしていては、時間がいくらあっても足りません

そういうケースは、ちと高くついても、有料プラグインを使った方が賢明だと思います。(テストサイトの作成にも便利)

有名どころ
(これもサーバー仕様によって、バックアップファイルをインポートできないことがあるので、必ず試用のこと)

All-in-One WP Migration

初心者が迷うのは、「添付ファイルをダウンロードしてインポートする」というオプションだと思います。

ネットで公開されている情報では、「チェックを外す」が推奨されていますが、初回のインポートは『添付ファイルをダウンロードしてインポートする』にチェックを入れます

インポートを実行すると、お使いの環境によっては、ずらずらとエラーメッセージが出ると思います。

WordPress インポート

WordPress インポート

ここで焦って、ブラウザのタブを綴じたり、リロードしたり、他の項目をクリックしては絶対にダメ

エラーメッセージが出ても、5分ほど待って下さい。

「完了しました」というメッセージが出なくても、添付ファイルのインポートは水面下で成功していることがあります。

心配な場合は、別のタブかウィンドウで「メディア」を開いてみて下さい。

順調にインポートが進行していれば、ずらずらとサムネイルが表示されます。

WordPress インポート

サムネイルのトップに、XMLファイルが表示されています。

これが画像ファイルを引っ張ってきます。

WordPress インポート

ファイル数にもよりますが、最低でも10分ぐらい、手を加えずに待ちましょう。

途中でインポートに失敗する原因は、「エラーメッセージ」に驚いて、タブを閉じたり、画面をリロードすることです

いったん、サムネイルのアイコンが豆腐化すると、簡単には戻せません。

メディアファイルだけインポートしようと試みても確実に失敗します。

メディア系のプラグインを使っても失敗することがあります。

添付ファイルのインポートに躓いたら、いったん、データテーブルを空にして、「WordPressインストール直後」の状態に戻します。

データテーブルは削除ではなく、『』にすること。

テーブルを削除すると、WordPressが正常に機能しなくなります。

WordPress インポート データベース

また、旧サーバーから画像ファイルを引っ張ってくる際、新サーバーのFTPに表示されるまで、若干時間がかかります(リアルタイムではない)。

管理画面の「メディア」ではちゃんとサムネイルが作成され、インポートされている様子なのに、FTPでは何の反応もなし。

WordPress インポート

数分後に現れる ↓

WordPress インポート

FTP上にファイルがリアルタイムに現れないからといって、インポートに失敗したと早合点しないように。

それでもデータのインポートに失敗する

それでもインポートに失敗する場合は、データベースのインポートに切り替えます。(WordPressのXMLファイルは使わない)

基本のデータ(記事、カテゴリー、タグ、添付ファイル、カスタムフィールドなどのメタデータ)の移行に必要なファイルは次の通りです。

移行作業を確実にするには、面倒でも、個別にエクスポートしましょう。(万一エラーが生じた時、原因を追及しやすい)

wp_posts (記事の本体)
wp_term (カテゴリーとタグのスラッグ、説明、ID)
wp_term_relationships(記事IDとカテゴリ&タグの関連づけ)
wp_term_meta(カテゴリーの並び順)
wp_term_taxonomy(カテゴリーとタグの説明文、ID)

コメントやリンクデータがある方は、wp_comments や wp_links など関連するデータも同じ手順でインポートします。

WordPressの基本設定やプラグインの設定を保存する wp_options に関しては、そのまま引き継ぎたい(ゴミごと)場合はインポートすればいいし、引越を機会にゴミデータとはおさらばしたい場合は、一から手動で設定し直します。

エクスポートしたSQLファイルをテキストエディタで開きます。

まず、データの最初に記述されたデータベース名を、新しいデータベース名に編集します。

WordPress インポート データベース

テーブルの接頭辞を変更する場合、新しいテーブル名に修正します。

WordPress インポート データベース

phpMyAdminにアクセスして、インポートしたいテーブルを削除します。

空ではなく削除です。既存のテーブルに、新しいテーブルを上書きすることはできません。

WordPress インポート データベース

メニューの『インポート』から「ファイルを選択」でファイルを指定。

WordPress インポート データベース

テーブル・データのインポートに成功したら、その他のSQLファイルについても、同じ作業を繰り返します。

インポート作業が終了したら、WordPressの管理画面に戻って、正常に動作するか確認します。

前サイトとまったく同じ内容が復元されていたら成功です。

SQLは正確なのに管理画面がおかしい

データのインポートに成功しているにもかかわらず、管理画面がフリーズして、表示がおかしくなる場合は、一度、カテゴリーやタグを作成してみて下さい。

「保存」と同時に、管理画面のフリーズが解除されて、きちんと表示されることがあります。

焦ってWordPressをリセットする前に、試してみて下さい。

投稿データのインポートが完了したら、画像ファイルの移行をFTPで確認

投稿のテキスト、カテゴリー、タグ、カスタムフィールドなどのメタデータ、アイキャッチ画像の移行が正常に完了したら、FTPを使って、wp-contents/uploads/ にアクセスし、その他の画像ファイルも全てインポートされているか確認します。

WordPress インポート 画像ファイル

WordPress インポート 画像ファイル

もし、いくつかの画像ファイル(もしくはフォルダ)が欠落している場合、手動でアップロードしてOKです。

繰り返しになりますが、画像ファイルの手動アップロードは、投稿データが完全にインポート→復元したのを確認してから行います。

万一、アイキャッチ画像などが欠落している場合、もしくは、ステルスで画像データの移行が進行している場合、手動で画像ファイルをサーバーに置くと、WordPressのインポート機能が勘違いして、 image-1.jpg image-2.jpg のように、画像をどんどん複製し、サーバー容量が膨れ上がることがあります。

画像の手動アップロードは、必ず投稿データの移行が完了してから!

テーマテンプレートやプラグインのインストールは一番最後に

投稿データ、画像、ともに揃ったら、一番最後にテーマテンプレートやプラグインのインストールを行います。

データのインポートが完了するまでは、あれこれインストールしたり、WordPressの設定をいじらないようにしましょう。

XMLファイルのアップロードでエラーが生じる場合

エクスポートしたXMLファイルを新しいWordPressにインポートする場合、データ容量が大きいと、アップロードでエラーが生じることがあります。

レンタルサーバーの管理パネルから php.ini を編集できる場合は、下記の数値を変更しましょう。

memory_limit > post_max_size > upload_max_filesize

> は、より数値を大きく、という意味です。

WordPress インポート データベース

カスタム投稿を含むインポート

複数のカスタム投稿タイプを有する場合、インポート前にカスタム投稿の基本設定を行い、次いで、カスタム投稿のデータをインポートする方法と、先にカスタム投稿データのインポートを行い、後からカスタム投稿の基本設定をする方法と二種類ありますが、先にカスタム投稿の設定をする方が分かりやすいです。

ただ、あまりに投稿数が多いと、カスタム投稿のインポートで躓くケースもありますので(タクソノミーの表示がおかしくなる等)、一度、テストサイトで具合をみて、それから本番を実行した方がいいです。

旧ドメインから新ドメインへ一括変更・データベースのSearch & Replace

WordPressのインポート機能(XMLファイル)を使って新規ドメインにデータを移した場合、投稿内のアドレスが旧ドメインのままになっていると思います。

データベースの「検索&置換」で、旧ドメインから新ドメインに一括変更します。

こういうの↓
WordPress インポート 画像ファイル

データベースの「検索&置換(Search & Replace)」の方法は三種類あります。

1. サーバーに Search & Replaceツールをアップロードして、ツール内で行う。
2. WordPressのプラグインを使う。
3. phpMyadminのSQLで検索置換を実行する。

1. サーバーに Search & Replaceツールをアップロードして、ツール内で行う。

下記リンクよりファイルをダウンロードして、サーバー上の任意のフォルダにアップロードします。

※ 現在は、自己申告制になっており、技術を理解できる人だけ、ダウンロード可能です。

interconnect/it
Database Search and Replace Script in PHP | interconnect/it
Database Search and Replace Script in PHP | interconnect/itSearch Replace DB is a powerful tool for developers, allowing them to run a search replace against their database where CLI tools or WP plugins can’t work.

serach-replace

配布元では、「使用後の削除」を強くおすすめしていますが、利用の度に、アップロード&削除が面倒な人は、レンタルサーバーのBasic認証機能を使って、フォルダをパスワード制にしておくといいですよ。

あと、robots.txtで、設置したディレクトリにbotが巡回しないよう、Disallowの記述をお忘れなく。

User-Agent:*
Disallow: /example/

2. WordPressのプラグインを使う

WordPressの公式サイトからは二種類の検索&置換ツールがリリースされています。

どちらも似たような仕様で、ワンランク上の機能が欲しければ有料版となります。

私の見た限り、有料版=上記のツールと同等です。
上記の方が無料で使えて、視覚性にも優れるので、内容が理解できる方は上記ツールの方がいいですよ。

WordPress.org
Search & Replace
Search & ReplaceSearch & Replace data in your database with WordPress admin, replace domains/URLs of your WordPress installation.
WordPress.org
Better Search Replace
Better Search ReplaceA simple plugin to update URLs or other text in a database.

実動はこんな感じ。

どちらも悪くはないですが、管理画面内で確認できる項目が限られているので、慎重に検索&置換したい人は上記ツールの方がいいです。

serach-replace

3. phpMyadminのSQLで検索置換を実行する

phpMyadminのSQLタブをクリックし、SQLを直接実行する方法ですが、これは初心者・中級者にはおすすめしません。

即行でデータベースを書き替えてしまうので、一度実行してしまえば、修正不可能です。(Dry Runは必須)

実行コマンドは下記の通りです。

UPDATE wp_postmeta SET meta_value = replace(meta_value,'oldurl.com','newurl.com');

一応、参考に。

https://www.hostinger.com/tutorials/wordpress/how-to-change-wordpress-urls-in-mysql-database-using-phpmyadmin]

バックアップ・ファイルは圧縮形式で

WEBサイトのエクスポート&インポート前に、データベースとメディアファイルのバックアップは必須ですが、プラグインを使ってバックアップ・ファイルを作成するなら、プラグイン独自のファイルを自動生成するものではなく、サーバー上のファイルをそのまま圧縮するタイプがおすすめです。

なぜなら、プラグイン独自のファイルは、万一、破損した場合、もしくはプラグインが正常に動作しない場合、個々のファイルを取り出せなくなるからです。
(取り出すツールも提供されていますが、有償だったりします)

↓ プラグインの独自ファイル。どこに、どんなファイルが格納されているのか分からないし、通常の方法で解凍できない。
WordPress バックアップ

その点、UpdraftPlus WordPress Backup Pluginは、サーバー上のファイルをそのまま圧縮してくれるので、非常に分かりやすいです。

Google Driveに限り、無料でオンラインストレージを利用することもできます。

WordPress バックアップ

あわせて読みたい
WordPressのファイルをそのまま保存する『UpdraftPlus WordPress Backup Plugin』
WordPressのファイルをそのまま保存する『UpdraftPlus WordPress Backup Plugin』データベースのSQLファイルをはじめ、サーバー上のファイルを丸ごと圧縮して保存してくれるので、万一、プラグインが動作しなくても、サーバー上から圧縮フォルダという形で持ち出すことができます。

ちなみに、UpdraftPlusには、有償版のサイト移行アドインがあります。

大事なサイトで、エクスポート&インポートに手間取るようなら、素直に有償版を使った方が利口ですよ。

あわせて読みたい
Migrator - UpdraftPlusMove or clone your WordPress website with UpdraftPlus Migrator. With 12 months of support included; migrating your WordPress website has never been easier.

私も最終的に使いましたけど、ホントに簡単です。

移行機能のアドオン

目次
閉じる