2026年6月27日

2026年6月27日

WordPressで「Destination folder already exists」エラーが出たときの原因と修正手順

プラグインやテーマをZIPでインストールしたときに「Destination folder already exists.」と表示されるのは、インストール先(wp-content/plugins/ や wp-content/themes/)に同じ名前のフォルダーがすでにあるためです。多くは、以前のインストールや更新が途中で止まって残ったフォルダーか、すでに入っているプラグインを再度アップロードしたケースです。この記事では、エラーの表示から対象のフォルダーを特定する方法と、可能性の高い原因から順に確認方法と直し方を説明します。

作業ではサーバー上のファイルを扱います。始める前にサイトのバックアップ(ファイルとデータベース)を取り、可能であればステージング環境で同じ状態を再現してから本番で作業してください。

エラーの表示から対象のフォルダーを特定する

エラーは次のように、問題のフォルダーのパスと一緒に表示されます。日本語の管理画面では「インストール先のフォルダーが既に存在しています。」のような訳で表示されます(訳語はバージョンにより異なります)。

Destination folder already exists. /home/example/public_html/wp-content/plugins/contact-form-x/

末尾のフォルダー名(この例では contact-form-x)が、ZIPファイルの中の最上位フォルダーの名前です。WordPress はZIPを展開したときのフォルダー名をそのままインストール先の名前に使うので、同じ名前のフォルダーがあるとインストールを中止します。既存のファイルを勝手に上書きしないための安全装置なので、エラー自体はサイトを壊すものではありません。

次に、そのフォルダーを WordPress が「インストール済みのプラグイン」として認識しているかを確認します。管理画面の「プラグイン」一覧に該当のプラグインがあるか、WP-CLI が使えるなら次のコマンドで確かめます。

wp plugin list --fields=name,status,version

一覧に出てくるなら原因1、出てこないなら原因2以降を疑います。テーマの場合は「外観」→「テーマ」、または wp theme list で同じように確認します。

原因1:同じプラグインがすでにインストールされている

もっとも多いのは、入っているプラグインを新しいバージョンにしようとして、ZIPをもう一度アップロードしたケースです。

WordPress 5.5 以降では、インストール済みのプラグインやテーマと同じフォルダー名のZIPをアップロードすると、エラーで止まる代わりに、現在のバージョンとアップロードしたバージョンを比べる画面が表示され、置き換えを選べるようになっています。ボタンの表記は「現在のものをアップロードしたもので置き換える」のようになっています(バージョンにより異なります)。この画面が出たら、バージョンを見比べたうえで置き換えを選びます。

それでもエラーで止まる場合や、そもそも比較画面が出ない場合は、次のどれかで更新します。

  • WordPress.org で配布されているプラグインなら、「プラグイン」一覧や「ダッシュボード」→「更新」から通常の更新を行う
  • WP-CLI でZIPから上書きインストールする
wp plugin install ./contact-form-x.zip --force

--force は既存のファイルを上書きする指定です。プラグインのファイルを直接編集していた場合、その変更は消えます。設定値の多くはデータベースに保存されているため、上書きインストールで消えることは通常ありませんが、念のためバックアップを取ってから実行してください。

原因2:以前のインストールや更新の残りがある

一覧に出てこないのにフォルダーがある場合は、インストールや更新が途中で止まった残りである可能性が高いです。アップロード中の通信切断、PHPの実行時間切れ、ディスク容量の不足などで処理が中断すると、中身が欠けたフォルダーが残ります。メインファイルが欠けているとプラグインとして認識されないため、一覧には表示されません。

確認方法FTP/SFTP、レンタルサーバーのファイルマネージャー、またはSSHで、エラーに表示されたパスを開きます。

ls -la /home/example/public_html/wp-content/plugins/contact-form-x/

フォルダーが空、ファイルが極端に少ない、メインのPHPファイルが無い、といった状態なら、途中で止まった残りと判断できます。

直し方いきなり削除せず、まずフォルダー名を変えて退避します。

mv wp-content/plugins/contact-form-x wp-content/plugins/contact-form-x-old

この状態でもう一度ZIPをインストールし、プラグインを有効化して動作を確かめます。問題が無ければ、退避した contact-form-x-old を削除します。名前を変えておけば、もし必要なファイルが残っていた場合でも元に戻せます。

なお、管理画面の「削除」ボタンでプラグインを削除すると、プラグインによっては設定やデータを消すアンインストール処理が実行されます。FTPなどでフォルダーを消したり名前を変えたりした場合、この処理は実行されないので、データベースの設定は残ります。

原因3:権限や所有者の問題で古いフォルダーを消せなかった

以前に管理画面からプラグインを削除したのにフォルダーが残っている場合は、ファイルの権限や所有者の設定によって、WordPress(Webサーバーの実行ユーザー)がファイルを削除できなかった可能性があります。FTPでアップロードしたファイルの所有者がFTPのユーザーになっていて、Webサーバーのユーザーからは消せない、という組み合わせがよくあります。

確認方法ls -la で所有者とパーミッションを見ます。ほかのプラグインのフォルダーと所有者が違う、ファイルに書き込み権限が無い、といった違いがあれば、それが原因です。

直し方所有者やパーミッションをほかのプラグインと同じにそろえてから、原因2の手順でフォルダーを退避して再インストールします。レンタルサーバーではSSHで所有者を変えられないことが多いため、その場合はFTPでフォルダーを削除するか、サーバー会社のファイルマネージャーを使います。一般的な目安はディレクトリ 755、ファイル 644 ですが、適切な値はサーバーの構成によって異なります。権限を 777 にして解決するのは、ほかの利用者や攻撃者に書き込みを許すことになるので避けてください。

更新のたびにFTPの接続情報を求められる環境では、この所有者の不一致が起きていることが多く、同じエラーが再発しやすくなります。根本的にはサーバー側でファイルの所有者をWebサーバーの実行ユーザーにそろえる設定が必要です。

原因4:別のプラグインとフォルダー名が重なっている

まったく別のプラグインが、同じフォルダー名を使っていることもあります。よくあるのは次のような場面です。

  • GitHub からダウンロードしたZIPを使ったところ、フォルダー名が「リポジトリ名-main」などになり、名前を直して入れ直したら既存のものと重なった
  • 有料版と無料版で同じフォルダー名を使うプラグインを、両方入れようとした
  • 社内で改造したプラグインを、元のプラグインと同じフォルダー名のまま配布した

この場合、片方を上書きすると別のプラグインに中身が入れ替わります。インストールしようとしているZIPを展開してメインファイルの冒頭の Plugin Name: を確認し、既存のフォルダー内のものと比べてください。別物であれば、どちらを残すかを決め、不要なほうを無効化してから退避します。改造版を配布する場合は、フォルダー名を変えるのが安全です。

原因5:一時フォルダーやメンテナンス状態が残っている

更新処理では、ZIPは一度 wp-content/upgrade/ に展開されてから移動されます。また WordPress 6.3 以降では、更新に失敗したときに元に戻すためのバックアップが wp-content/upgrade-temp-backup/ に一時的に作られます。処理が途中で止まると、これらのフォルダーに中身が残ることがあります。

このエラーの直接の原因になることは多くありませんが、再インストールでも別のエラーが続く場合は中身を確認します。更新やインストールが実行中でないことを確かめてから、wp-content/upgrade/ の中にある古いフォルダーを退避または削除します。upgrade-temp-backup は、更新に失敗して元に戻したい場合の手がかりになることもあるので、中身を確認してから扱いを決めてください。

更新の途中で止まった場合、サイトのルートに .maintenance というファイルが残り、「メンテナンスのため一時的に利用できません」のような表示が続くことがあります。このファイルを削除するとサイトは通常の表示に戻ります。

テーマで同じエラーが出た場合

テーマでも考え方は同じで、インストール先が wp-content/themes/ に変わるだけです。注意したいのは、親テーマを直接編集していた場合、上書きするとその変更が消えることです。カスタマイズは子テーマに分けておくと、親テーマの上書きや更新を安心して行えます。テーマの上書きインストールも、WP-CLI なら wp theme install ./theme.zip --force で行えます。

再発を防ぐために

  • ZIPから入れ直すより、通常の更新機能を使います。WordPress.org 以外から配布されるプラグインでも、配布元が更新の仕組みを用意していることがあります。
  • 大きなZIPのアップロードで止まる場合は、PHPのアップロード上限や実行時間の設定を確認するか、SFTPでフォルダーを置いてから有効化する方法に切り替えます。
  • ファイルの所有者とパーミッションを一定に保ち、FTPとWordPressで所有者が混在しないようにします。
  • 更新前にバックアップを取る習慣をつけておけば、途中で止まったときもすぐに元の状態に戻せます。

上記の確認方法や管理画面の表記は、WordPress のバージョンやサーバー会社の管理ツールによって細部が異なることがあります(2026年10月現在)。

まとめ

  • エラーに表示されたパスの末尾が、重なっているフォルダー名です。まずプラグイン一覧に出てくるかで原因を分けます。
  • 一覧にあるなら同じプラグインの再アップロードです。WordPress 5.5 以降の置き換え画面、通常の更新、または wp plugin install --force で更新します。
  • 一覧に無いなら途中で止まった残りの可能性が高いです。フォルダー名を変えて退避し、再インストールして動作を確かめてから古いフォルダーを削除します。
  • 古いフォルダーが消せないのは権限や所有者の問題であることが多く、777 にせず所有者をそろえて解決します。
  • 別のプラグインとフォルダー名が重なっている場合は、上書きせずにどちらを残すかを決めます。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲