本ページには広告が含まれています。

swiper-style-cssを非同期ロード【改善メモ】

【改善メモ】CSSを非同期ロードさせる

Google Search Console の「ウェブに関する主な指標」(モバイル)でCLS に関する問題: 0.1 超 「改善が必要」という状況が突然が発生しました。11/13から現在も継続しています。

スポンサーリンク

グループの CLS 改善が反映されない

「画像要素で width と height が明示的に指定されていない」と指摘されている一部のリンク画像についてはすべて対処して改善したのですが Search Console にはいまだに反映されません。

いつもながら、サーチコンソールのデータのはかなり遅れて反映されるので気にしないようにしているのですが「0.15 改善が必要」の表示は一向に変化なしです。

レンダリングを妨げるリソースの除外

PageSpeed Insights と DevTools で検証しましたが、気になったのが FCP LCP で「レンダリングを妨げるリソースの除外」に swiper-bundle.min.css が出現していることでした。上に書いた症状と同じ時期に出現していることから、これが影響しているのではないかと疑った次第です。

「ページの First Paint をリソースがブロックしています。重要な JavaScript や CSS はインラインで配信し、それ以外の JavaScript やスタイルはすべて遅らせることをご検討ください。」

「重要なアセットをインラインで読み込むまたは重要度が低いリソースの読み込みを遅らせるために役立つ、さまざまな WordPress プラグインがあります。ただし、これらのプラグインの最適化処理によって、テーマやプラグインの機能が阻害されることがあります。その場合は、コードを変更する必要があります。」

子テーマの functin.php に次のコードを入れて swiper-bundle.min.css だけ非同期で読み込むようにしてみました。

//対象のCSSを非同期で読み込む場合に利用
function load_css_async_top($html, $handle, $href, $media) {
  if(is_single()) {
    //HTML改行前後の空白文字を削除 swiper-bundle.min.css
    $default_html = trim($html);
    //対象のHTMLだけ変更する
    switch ($handle) {
    case 'swiper-style':
	$html = <<<EOT
	<link rel="preload" id="{$handle}-css" href="$href" as="style">
	<link rel="stylesheet" id="{$handle}-css" href="$href" media="print" onload="this.media='all'">\n
	EOT;
        break;
    default:
        break;
    }
  }
  return $html;
}
add_filter( 'style_loader_tag', 'load_css_async_top', 10, 4 );

動作確認した結果、HTMLで次のように読み込まれるようになりました。

<link rel="preload" id="swiper-style-css" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css?ver=6.1.1" as="style">
<link rel="stylesheet" id="swiper-style-css" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css?ver=6.1.1" media="print" onload="this.media='all'">

PageSpeed Insights では「レンダリングを妨げるリソースの除外」は出なくなりました。

自サイトに出現した問題の改善メモ

2020年4月にブログサイトを立ち上げてから、今までに数々の問題が発生し、その都度場当たり的に対策を講じてきました。

今思えば、いつどのような対応を行ったか全然記録に残してこなかったのが悔やまれてなりません。

そこで今回から、対策を行った内容は必ずメモとして残しておくようにしようと思います。

あくまでも、メモですから自分用ですが、もしかしたら参考になる方がいるかもしれないのでブログに公開するようにします。

サイトの環境情報

ConoHa Wing で無料提供されている WEXALⓇ Page Speed Technology 設定中

WordPressバージョン:6.1.1
PHPバージョン:8.0.25
サーバーソフト:Apache
テーマ名:Cocoon
バージョン:2.5.4.2
子テーマ名:Cocoon Child
バージョン:1.1.3
ブラウザキャッシュ有効化:1
HTML縮小化:0
CSS縮小化:0
JavaScript縮小化:0
Lazy Load:0

利用中のプラグイン:
BackWPup 4.0.0
ConoHa WING コントロールパネルプラグイン 1.1
Contact Form 7 5.7.1
Edit Author Slug 1.8.4
Flying Scripts 1.2.3
Google XML Sitemaps 4.1.7
Invisible reCaptcha 1.2.3
SiteGuard WP Plugin 1.7.3
WebSub (FKA. PubSubHubbub) 3.1.2
WP Multibyte Patch 2.9
Yoast Duplicate Post 4.5

メモのおわりに

以上、「swiper-style-cssを非同期ロード」対応した記録でした。
CSS を非同期ロードする場合には今後も使えるものです。CSS の handle はHTMLソースを見ればすぐにわかりますね。

くるみこ
くるみこ

サーチコンソールの CLS が 0.15 から一向に数字が動かない!
つぎはどうしたらいいんだろう?

★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★

スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

この記事で使用したサンプルの登録はありません。
過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください