2026年5月20日
2026年5月20日
WordPressの不要プラグインを特定・削除する方法
はじめに
WordPressにプラグインが増えすぎると、ページ速度の低下・セキュリティリスク・競合の原因になります。定期的に不要プラグインを棚卸しして、必要最小限の構成に保つことが重要です。
症状・原因
- プラグインが多すぎてサイトが重くなっている
- 使っていないプラグインが無効化されたまま残っている
- どのプラグインがパフォーマンスに影響しているか分からない
- プラグインの整理・削除を安全に行いたい
解決手順
ステップ1:現在のプラグイン一覧を確認する
# 全プラグイン一覧(状態付き)
wp plugin list --format=table
# 有効なプラグインのみ
wp plugin list --status=active --format=table
# 無効なプラグインのみ(削除候補)
wp plugin list --status=inactive --format=table
# 更新が必要なプラグイン
wp plugin list --update=available --format=table
ステップ2:不要プラグインの判断基準
削除を検討すべきプラグイン:
→ 6ヶ月以上更新されていない(wp plugin list で確認)
→ 無効化されたまま1ヶ月以上放置
→ 現在のWordPressバージョンと互換性テスト未実施
→ 機能が別のプラグインと重複している
→ 開発サイト用にインストールしたまま残っている
機能の重複例:
→ SEO: Yoast + RankMath → どちらか1つに絞る
→ キャッシュ: WP Rocket + W3TC → どちらか1つ
→ フォーム: CF7 + WPForms → どちらか1つ
→ セキュリティ: WordFence + iThemes → どちらか1つ
ステップ3:プラグインのパフォーマンス影響を測定する
# Query Monitor でページ読み込み時間を比較
# プラグインを1つ無効化して表示速度の変化を確認
# プラグインのリクエスト数をcurlで確認
curl -o /dev/null -s -w "%{time_total}\n" https://example.com/
# 各プラグインが追加するCSSファイルを確認
wp eval "global \$wp_styles; print_r(array_keys(\$wp_styles->registered));"
# 各プラグインが追加するJSファイルを確認
wp eval "global \$wp_scripts; print_r(array_keys(\$wp_scripts->registered));"
ステップ4:安全に無効化・削除する
# プラグインを無効化(データは残る)
wp plugin deactivate contact-form-7
# 無効化してから削除
wp plugin deactivate hello --uninstall
# 複数プラグインを一括削除
wp plugin delete hello akismet
# 全無効プラグインを削除(注意: 元に戻せない)
wp plugin list --status=inactive --field=name | \
xargs wp plugin delete
削除前の確認事項:
□ データベースにプラグイン専用テーブルがないか確認
wp db query "SHOW TABLES LIKE 'wp_%'"
□ wp_options にプラグインの設定が残らないか確認
wp option list --search="plugin_name_*" --format=table
□ アップロードファイルに依存するデータがないか確認
ステップ5:削除後のクリーンアップ
# オプションテーブルの孤立データを削除
wp option list --autoload=yes --format=table | head -50
# 使われなくなったトランジェントを削除
wp transient delete --all
# データベースの最適化
wp db optimize
# パーマリンクを再保存(プラグイン削除後は必須)
wp rewrite flush
ステップ6:プラグイン管理のベストプラクティス
// functions.php — 特定のユーザーロールのみプラグイン管理を許可
add_filter('user_has_cap', function(array $caps, array $cap, array $args): array {
if (in_array('activate_plugins', $cap, true)) {
// 管理者のみプラグイン操作を許可(マルチサイト対応)
if (!current_user_can('manage_network')) {
$caps['activate_plugins'] = false;
}
}
return $caps;
}, 10, 3);
注意事項
- プラグインを削除すると設定データが失われる場合があります。事前にバックアップを取ってください
- eコマースプラグイン(WooCommerce等)は関連プラグインと依存関係があります。削除順序に注意してください
- ステージング環境でテストしてから本番環境で実施してください
まとめ
wp plugin list --status=inactive で未使用プラグインを洗い出し、6ヶ月以上更新のないもの・機能が重複するものを優先的に削除します。削除後は wp transient delete --all と wp rewrite flush で後処理を忘れずに行ってください。