このブログの読み込みスピードの改善

 Googleの提供するPageSpeed Insightsでこのブログのパフォーマンスを診断したら、読み込みが遅い状況が見えた。

 ChatGPTに聞きながらセッテングしたら99に改善した。

【Before】

【After】

ステップ1:原因の洗い出し

まずPageSpeed Insightsの結果を見て気になったのは、次の3点だった。

  • Eliminate render-blocking resources(レンダリングをブロックしているリソース)
    → ajax.googleapis.com/jquery.min.js と cdnjs.cloudflare.com/jquery-migrate.min.js が原因。
  • font-awesome.min.css がブロック扱い。
  • Largest Contentful Paint(LCP) が5秒近く、表示の遅延が目立っていた。

この3つを潰せば、一気にLCPとスコアが改善できそうだとChatGPTが判断。

ステップ2:jQueryとFont Awesomeを完全排除

Cocoonテーマは内部でFont Awesomeを呼び出しているが、このブログではアイコンをほぼ使っていなかった。
また、いくつかのプラグイン(特にGoogle系やSNS連携系)が外部CDN(Content Delivery Network)のjQueryを自動的に読み込んでおり、それがブロック時間を生んでいた。

WordPressの管理画面だけで対処できないので、Code Snippetsプラグインを使って以下の処理を追加した。

  • Font Awesome関連のCSS(font-awesome.min.css / fontawesome.css など)を読み込みキューから除外
  • CDN経由の jQuery / jQuery Migrate を検出して強制的に削除
  • 代わりに WordPress同梱の jQuery(/wp-includes/js/jquery/jquery.min.js) を登録
  • jQuery Migrate は原則無効化(必要ならコメントを外して再有効化できる構造に)

Code Snippetsでは「Only run on site front-end(フロントエンドのみ)」に設定。
一度有効化してから Autoptimize のキャッシュを削除し、再生成した。

この時点で curl コマンドでHTMLを取得しても、
ajax.googleapis.com や cdnjs.cloudflare.com の文字列は一切出なくなった。

ステップ3:AutoptimizeのCSS設定を調整

次はCSS側の最適化。

AutoptimizeはCocoonと相性が良いが、設定次第では逆にスコアが落ちることもある。
今回は試行錯誤の結果、以下の設定に落ち着いた。

設定項目状態
CSS コードを最適化ON
CSS ファイルを連結ON
インラインの CSS も連結OFF
データ生成: 画像を URI 化OFF
レンダリングブロックしている CSS を除去ON
すべての CSS をインライン化OFF
Autoptimize から CSS を除外, admin-bar.min.css, dashicons.min.css, wp-content/cache/, wp-content/uploads/

ポイントは、「インラインCSSの連結」を切ったこと。一時的にONにしたときはスコアが65まで落ちたが、OFFに戻したら一気に改善した。CocoonのようにインラインCSSを多用するテーマでは、連結処理が逆にブロックを生む場合があるようだ。

ステップ4:キャッシュと最終確認

ここまででAutoptimizeのキャッシュを再削除し、
シークレットウィンドウでトップページを再読み込み。
その後、再度PageSpeed Insightsでモバイルを計測。

結果は――スコア99点。

LCPも4.7秒→3.6秒前後に改善。
「Eliminate render-blocking resources」の項目からは
ajax.googleapis.com と cdnjs.cloudflare.com の行が完全に消えた。

まとめ

ここまでやってみてわかったのは、外部CDNとCSSの最適化順序がPageSpeedの最大要因だったということ。
とくにCocoonテーマでは、Autoptimizeの設定バランスがシビアで、
「最適化ONにすれば速くなる」という単純な話ではない。
• jQueryはWordPress同梱を使う(CDNは切る)
• Font Awesomeは不要なら完全停止
• インラインCSSの連結は切る
• レンダリングブロックCSSの除去はON

この4点を満たした瞬間、スコアは劇的に上がった。

Docker上のWordPressでも、適切に最適化すればPageSpeed Insights 99点は普通に狙える。
大掛かりなCDNサービスを使わなくても、Nginx + Autoptimize + ちょっとの調整でここまでいけるのは大きな収穫だった。

次の課題は、wp-block-library のCSSをトップだけ外すことと、
ページキャッシュを導入してTTFBをさらに下げること。
これをやれば、モバイルでも安定して100点が見えてきそうだ。

コメント