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 Scripts | JS遅延読み込み |
Autopost for X | SNS自動投稿用(必要) |
Redirection | リダイレクト管理 |
WebSub | フィード配信用(Cocoon連携) |
6. 最終スコア(改善後)
項目 | スコア |
---|---|
モバイル | 93〜96点 |
デスクトップ | 100点 |
サーバー: スターサーバー(Brotli非対応)
テーマ: Cocoon(高速化オプションは全てON)
まとめ
今回の改善で学んだのは、プラグインに頼らず「functions.phpの適切な記述」だけでも十分にスコアは改善できるということです。
また、遅延対象のスクリプト選定や、画像のサイズ指定など、「ちょっとした工夫」がPageSpeedに大きく影響します。
コメント