WordPressでjQueryを外したら壊れた原因を解析する

jQueryを外したらサイトが壊れた原因を分析する

WordPressの高速化を調べると、ほぼ必ず次の情報に行き当たります。
「jQueryを削除すると表示が速くなる」

そして実際に削除すると、サイトは壊れます。
メニューが開かない、スライダーが止まる、ボタンが反応しない。
にもかかわらず、エラー画面は出ません。

この現象の結論はシンプルです。
WordPressサイトは、想像以上にjQueryを“直接使っていない形で”依存しています。

つまり、テーマにjQueryコードが無くても、安全とは限りません。

なぜ「使っていないのに壊れる」のか

まず確認すべき点があります。
「jQueryを使っている=テーマのJavaScriptにjQueryが書かれている」ではありません。

WordPressでは次の3つがJavaScriptを持っています。

  • テーマ
  • プラグイン
  • WordPressコア

このどれか1つでもjQueryを使っていれば、削除すると壊れます。

特に多いのはプラグインです。

典型例:問い合わせフォーム

例えば問い合わせフォームプラグイン。
見た目は単なるフォームですが、内部では次を行っています。

  • 入力チェック(バリデーション)
  • 送信ボタンの制御
  • Ajax送信
  • エラーメッセージ表示

これらはほぼjQueryで書かれています。
そのため、フォームは表示されても送信できません。

ユーザーからは「送信しても反応がないサイト」に見えます。

WordPressコアも使っている

さらに重要な点があります。
WordPress本体もjQueryを使用しています。

特に以下の機能です。

  • コメント返信(replyリンク)
  • メディアアップローダ
  • 一部の管理バーUI
  • カスタマイザー

つまりフロント側でも、テーマと無関係に依存が存在します。

実際に起きているエラー

jQueryを削除すると、コンソールには次が出ます。

`Uncaught ReferenceError: jQuery is not defined`

ただし訪問者はコンソールを見ません。
見えるのは「押せないボタン」だけです。

これがjQuery削除が危険な理由です。
壊れても気づくのが遅れます。

よくある削除方法と問題点

多くの解説で紹介されている方法です。

function remove_jquery(){
  wp_deregister_script('jquery');
}
add_action('wp_enqueue_scripts','remove_jquery');

これは確かにjQueryを消します。
しかし同時に、依存関係を壊します。

WordPressのスクリプトは次の構造です。

プラグイン → jQuery → WordPress

jQueryを消すと、プラグインの前提が崩れます。

なぜ高速化記事では推奨されるのか

理由は、静的HTMLサイトでは正しいからです。
単一アプリケーションでは、不要ライブラリ削除は有効です。

しかしWordPressは違います。
複数の開発者が作ったプログラムが同居する環境です。

そのため「使っていないように見える」ことが意味を持ちません。

確認手順(実務)

削除前に必ず確認します。

1. 依存スクリプトを調べる

global $wp_scripts;
print_r($wp_scripts->registered);

ここに `jquery` を依存として持つスクリプトが表示されます。

2. ブラウザ確認

F12 → Network → `jquery` で検索
ヒットしているスクリプトが依存しています。

3. Console確認

jQuery

undefinedなら削除状態です。

「壊れない場合」もある

例外もあります。

  • 完全自作テーマ
  • JavaScript未使用
  • プラグイン最小

この場合、削除しても問題は起きません。
ただし将来プラグインを追加した瞬間に壊れます。

つまり現在の安全は将来の安全ではありません。

よくある誤解

表示が速くなったから成功

一時的には正しいです。
しかし機能が停止している可能性があります。

特にスマホメニューやフォームは気づきにくいです。

CDNに置き換えればOK

WordPressは特定のハンドル名 `jquery` に依存します。
単にCDNを読み込んでも、依存解決が行われません。

安全な対策

削除ではなく、次を行います。

  • 不要プラグイン削除
  • 画像最適化
  • キャッシュ導入

jQuery削除は最終手段です。

まとめ

jQueryを外すと壊れるのは、テーマが古いからではありません。
WordPressが単一のプログラムではないからです。

そして重要なのは、「見えているコード」だけが依存ではない点です。
多くの場合、依存しているのは自分が書いていないコードです。

WordPress高速化で本当に必要なのは、ライブラリ削除ではありません。
まず依存関係を理解することです。

サイトが壊れるかどうかは、jQueryの重さではなく、
そのサイトがどれだけ多くの機能に支えられているかで決まります。