2026年5月20日
2026年5月20日
WordPressの不要なプラグインを見つけて安全に削除する方法
使っていないプラグインや、開発が止まったプラグインを入れたままにしておくと、脆弱性が見つかっても修正されない、ほかのプラグインと競合する、管理画面や表示が重くなる、といった原因になります。この記事では、不要なプラグインを見つけ、データを壊さずに外す手順を説明します。
作業の前に、ファイルとデータベースのバックアップを取ってください。可能であれば、本番と同じ構成のステージング環境で試してから本番で行います。WP-CLI のコマンドは、SSH でサーバーに接続し、WordPress をインストールしたディレクトリで実行します。WP-CLI のオプションは、2026年11月時点の developer.wordpress.org のマニュアルで確認したものです。
1. いまのプラグインを一覧にする
管理画面の「プラグイン → インストール済みプラグイン」で、有効・停止中のプラグインを確認できます。WP-CLI を使うと、状態ごとに絞り込めます。
# すべてのプラグイン(状態・更新の有無・自動更新の設定つき)
wp plugin list
# 有効なプラグインだけ
wp plugin list --status=active
# 停止中のプラグインだけ(削除の候補)
wp plugin list --status=inactive
# 更新があるプラグイン
wp plugin list --update=available
WordPress.org で配布されているプラグインは、最終更新日と配布の状態も確認できます。wporg_status が closed のプラグインは、WordPress.org での配布が停止されています。
wp plugin list --fields=name,status,version,wporg_status,wporg_last_updated
この2つの項目は WordPress.org に問い合わせて取得するので、サーバーから外部に接続できる必要があります。WordPress.org 以外で入手したプラグインは空欄になります。
2. 削除の候補を決める
次のどれかに当てはまるプラグインは、削除を検討します。
| 確認すること | 調べ方 |
|---|---|
| 停止したまま使っていない | wp plugin list --status=inactive。管理画面の「ツール → サイトヘルス」でも、停止中のプラグインの削除が推奨として表示される |
| 配布が停止された | wporg_status が closed。WordPress.org のプラグインページには、配布終了の告知が表示される |
| 長く更新されていない | wporg_last_updated の日付。WordPress.org のプラグインページで、最近のメジャーリリースでテストされていないという警告が出ていないか |
| 機能が別のプラグインと重複している | 同じ役割のプラグインが2つ以上ある(下の表) |
| 一時的な作業のために入れた | 移行・検証・開発用のプラグインが残っている |
長く更新されていないことだけで、ただちに危険とは限りません。機能が小さく、変更の必要がないプラグインもあります。ただし、脆弱性が報告されたときに修正が出ない可能性が高いので、代わりの手段があれば移行を検討してください。
同じ役割のプラグインが複数あると、出力の重複や設定の競合が起きます。たとえば次の組み合わせは、どちらか1つに絞ります。
| 役割 | 重複しやすい組み合わせの例 |
|---|---|
| SEO | Yoast SEO と Rank Math、All in One SEO |
| キャッシュ | WP Rocket と W3 Total Cache、WP Super Cache |
| セキュリティ | Wordfence と Solid Security(旧 iThemes Security) |
| フォーム | Contact Form 7 と WPForms(使っているフォームがあるかを先に確認) |
3. 有効なプラグインが使われているかを確かめる
有効なプラグインでも、実際には使われていないことがあります。削除の前に、次の点を確認します。
- ショートコードやブロック: プラグインのショートコードやブロックが投稿に残っていると、削除後にその部分が表示されなくなったり、ショートコードの文字がそのまま表示されたりします。投稿の本文を検索して確認します。
- ウィジェットやテーマとの連携: プラグインが提供するウィジェットや、テーマがプラグインの関数を呼んでいる箇所がないか確認します。
- 依存関係: WordPress 6.5 以降は、プラグインの「Requires Plugins」の指定で依存関係が管理されます。ほかのプラグインに必要とされているプラグインは、依存する側を先に無効化しないと停止できません。
# 例: Contact Form 7 のショートコードを使っている投稿・固定ページを探す
wp post list --post_type=post,page --s='contact-form-7' --fields=ID,post_title,post_type
--s は WordPress の通常の検索と同じで、本文と題名を対象にします。探す文字列は、プラグインのショートコード名やブロック名に置き換えてください。
4. 重さへの影響を確かめる
プラグインが表示を遅くしているかどうかは、無効化の前後で比べます。
- ステージング環境で、トップページなどの表示時間を測る
- 候補のプラグインを1つ無効化する
- 同じページの表示時間を測り直し、差を比べる
# ページの応答時間(秒)を5回測る
for i in 1 2 3 4 5; do curl -o /dev/null -s -w "%{time_total}\n" https://example.com/; done
ページキャッシュが効いていると差が出にくいので、キャッシュを外した状態や、ログインした状態で比べます。プラグインごとの内訳を見るには、Query Monitor プラグインが使えます。データベースのクエリをプラグインやテーマ(コンポーネント)ごとにまとめて表示し、ページで読み込まれている CSS と JavaScript の一覧も確認できます。
5. 無効化・アンインストール・削除の違い
外し方によって、プラグインのデータが残るかどうかが変わります。
| 操作 | 内容 |
|---|---|
| 無効化(停止) | プラグインの読み込みを止める。ファイルと設定データは残るので、有効化すれば元に戻る |
| 管理画面の「削除」 | 停止中のプラグインのファイルを削除する。プラグインがアンインストールの処理(uninstall.php など)を用意していれば、それも実行される |
wp plugin uninstall |
管理画面の「削除」と同じく、アンインストールの処理を実行してからファイルを削除する |
wp plugin delete |
ファイルだけを削除する。アンインストールの処理は実行されない |
アンインストールの処理で何を消すかは、プラグインによって違います。設定やデータベースのテーブルを消すもの、オプションで選べるもの、何も消さないものがあります。プラグインの説明やドキュメントで確認してください。
まずは無効化して、数日から1週間ほど問題がないかを見るのが安全です。
# 無効化(データは残る)
wp plugin deactivate example-plugin
# 問題がなければアンインストール(アンインストール処理を実行してからファイルを削除)
wp plugin uninstall example-plugin
# 無効化とアンインストールを続けて行う
wp plugin deactivate example-plugin --uninstall
停止中のプラグインをまとめて外す場合は、先に一覧を確認してから実行します。
# 対象を確認する
wp plugin list --status=inactive --field=name
# 停止中のプラグインをまとめてアンインストールする
wp plugin uninstall $(wp plugin list --status=inactive --field=name)
削除したプラグインは元に戻せません。また、停止中のプラグインの中に、あとで使う予定のもの(季節のキャンペーン用など)がないかを確認してから実行してください。
6. 削除後に残ったデータを確認する
アンインストールの処理を持たないプラグインは、設定やテーブルをデータベースに残します。残ったデータが動作の妨げになることは少ないですが、自動で読み込まれる設定が大きい場合は、表示を遅くすることがあります。
# データベースのテーブルを一覧にする(プラグイン名の入ったテーブルが残っていないか)
wp db tables --all-tables-with-prefix
# プラグイン名を含む設定(オプション)を探す(例: wpcf7)
wp option list --search="wpcf7*" --fields=option_name,autoload
残っているものを削除する場合は、そのテーブルやオプションがほかのプラグインに使われていないことを確かめ、バックアップを取ってから行います。名前だけで判断せず、プラグインのドキュメントでどのデータを作るかを確認してください。
# 例: 不要と確認できたオプションを削除する
wp option delete example_plugin_settings
# 期限切れのトランジェント(一時データ)を削除する
wp transient delete --expired
プラグインが独自の投稿タイプや URL の書き換えを登録していた場合は、削除後に「設定 → パーマリンク」で何も変えずに「変更を保存」を押すか、wp rewrite flush を実行すると、書き換えのルールが作り直されます。
定期的に見直す
プラグインの見直しは、一度で終わりではありません。半年に1回など時期を決めて、一覧の確認、配布状態と最終更新日の確認、使っていないプラグインのアンインストールを行うと、不要なプラグインがたまりにくくなります。新しいプラグインを入れるときは、目的と担当者を記録しておくと、あとで要否を判断しやすくなります。