PR

【完全記録】PageSpeed Insightsでモバイル90点超え!スターサーバー×Cocoon高速化の全手順

PageSpeed Insightsで高得点を出したブログ高速化のイメージ画像 働き方とIT活用
高速化の成功を示すPageSpeed Insightsと笑顔の筆者

Webサイトを運営していると、PageSpeed Insightsのスコアが気になるもの。

私のブログ「効率家ラボ」でも、特にモバイルスコアが70点台で伸び悩んでいました。

本記事では、スターサーバーを使い、WordPressテーマCocoon×プラグイン最小構成でスコア改善を実施した全プロセスを公開します。失敗も含めたリアルな改善記録として、これから最適化したい方の参考になれば幸いです。

1. 改善前のスコアと課題

最初のモバイルスコアは「76点」。

以下のような課題がありました:

  • JavaScriptの実行時間が長い
  • ブロック型のjQuery読み込み
  • アイキャッチ画像が大きすぎる
  • 未使用のJS/CSSの読み込みが多数
  • reCAPTCHAが全ページで読み込まれていた

2. 採用した改善策【有効だったもの】

✅ functions.phpで画像サイズ&fetchpriorityの最適化

// アイキャッチ画像のpreload&fetchpriority
function preload_featured_image() {
if ((is_single() || is_page()) && has_post_thumbnail()) {
$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_url($image_id, 'full');
echo '' . "\n";
}
}
add_action('wp_head', 'preload_featured_image');

// imgタグにwidth/height属性を自動追加
function add_image_size_attributes($content) {
$content = preg_replace_callback(
'/]+>/i',
function($matches) {
$img = $matches[0];
if (strpos($img, 'width=') === false || strpos($img, 'height=') === false) {
if (preg_match('/src="([^"]+)"/', $img, $srcMatch)) {
$image_url = $srcMatch[1];
$path = str_replace(site_url('/'), ABSPATH, $image_url);
if (file_exists($path)) {
$size = getimagesize($path);
if ($size) {
$img = str_replace('<img', '<img width="' . $size[0] . '" height="' . $size[1] . '"', $img);
}
}
}
}
return $img;
},
$content
);
return $content;
}
add_filter('the_content', 'add_image_size_attributes');

効果: 画像周りの読み込み最適化により、FCP(First Contentful Paint)とLCPが改善。

✅ Contactページ以外のreCAPTCHAの読み込み停止

function dequeue_recaptcha_js() {
if (!is_page('contact')) {
wp_dequeue_script('google-recaptcha');
}
}
add_action('wp_print_scripts', 'dequeue_recaptcha_js', 100);

効果: 不要なreCAPTCHAの読み込みを削減。

✅ Flying Scriptsで特定JSのみ遅延読み込み

指定スクリプト:

  • gtag
  • adsbygoogle
  • recaptcha

効果: トータルブロックタイム(TBT)の大幅改善。

3. 試したが効果がなかった/問題が出た対策

試したこと結果
Async JavaScriptプラグインの導入FCPは改善したが、TBTが悪化。OFFに戻した
Brotli圧縮の有効化(スターサーバー)効果なし
jQueryのdefer化(functions.php)表示崩れが発生
preload対象を全ページに拡張エラー発生。TOP/投稿/固定ページに戻した
wp is not definedエラーの調査JSの読み込み順による。除外設定で回避

4. 削除・無効化した不要プラグイン

  • Advanced Google reCAPTCHA(Contact Form 7で代替)
  • HTTP2 Push Content(エラーが出たため無効化)

5. 残したプラグイン一覧

プラグイン名理由
Contact Form 7問い合わせ用
Flying ScriptsJS遅延読み込み
Autopost for XSNS自動投稿用(必要)
Redirectionリダイレクト管理
WebSubフィード配信用(Cocoon連携)

6. 最終スコア(改善後)

項目スコア
モバイル93〜96点
デスクトップ100点

サーバー: スターサーバー(Brotli非対応)
テーマ: Cocoon(高速化オプションは全てON)

まとめ

今回の改善で学んだのは、プラグインに頼らず「functions.phpの適切な記述」だけでも十分にスコアは改善できるということです。

また、遅延対象のスクリプト選定や、画像のサイズ指定など、「ちょっとした工夫」がPageSpeedに大きく影響します。

コメント

タイトルとURLをコピーしました