ページの表示スピードを速くする方法のシェアです!
表示が遅いページは離脱しちゃいますし、やった方がいいと思います。
before↓
after↓
画像はSPのみの結果ですが、PCも40点台→90点台までアップしました。
僕は以下の3点を実行し速度アップすることができました。
1.画像の遅延読み込み
2.Webフォントをサーバーにアップして利用
(アップする際にはこちらのような記事を参考に、ライセンスを十分に確認してください)
3.WebP対応
順番に解説していきます。
1.画像の遅延読み込み
遅延読み込みとは?→参考サイト
表示領域の画像を先に読み込んで、画像の読み込みを早く済ませよう、みたいな意味で捉えました。以下コードです↓
<!-- ② ↓ classに「lazyload」を追加, widthとheightを指定, srcをdata-srcに変更 -->
<img class="lazyload" style="width: 100%; height: 100%;" data-src="https://like-amber.com/wp-content/uploads/2022/02/john-mcarthur-TWBkfxTQin8-unsplash-1.jpeg" alt="テスト">
<!-- ① ↓bodyタグ直前にscriptタグを配置 ※呼び出しと実行の二つのコードが必要です -->
<script src="https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.min.js"></script>
<script>lazyload();</script>
</body>
・scrpitタグの簡単解説
scriptタグの上の行でlazyloadというJavaScriptライブラリを読み込み、下の行でlazyloadを呼び出しています。
・imgタグの簡単解説
classにlazyloadを追加して横幅と高さを指定しています。
横幅と高さをHTMLで判別できるようにする必要があるため直接記述しています。height: auto; にすると結果表示画面で「明示的に指定してください」と表示されたので、○%とか○pxみたいにしてあげるといいかもしれません。(デザイン上問題なければ)
src → data-srcにしています。lazyloadで読み込む時には必要になる記述です。
2.Webフォントをサーバーにアップして利用
ダウンロードして利用がOKなフォントはサーバーに設置しましょう。
※Adobeフォントの場合は、ライセンス認証してから表示する流れなので(しょうがないのですが)スコアが非常に悪くなりました。涙
例↓
<!-- ①srcでフォントを読み込んで、font-familyで名前を定義する -->
@font-face {
font-family: "font-notosans-jp";
src: url(../font/SawarabiGothic-Regular.ttf);
}
<!-- ②呼び出したい箇所で、①で定義したfont-familyを指定する -->
.font-section {
font-family: "font-notosans-jp", sans-serif;
}
3.WebP対応
imgタグをWebP対応するためのコードです。
<!-- Before -->
<img src="./assets/img/img01.jpg" alt="画像">
<!-- After -->
<picture>
<!-- webP対応ブラウザ用のWebP -->
<source data-srcset="./assets/img/img01.webp" type="image/webp">
<!-- webP非対応ブラウザ用のjpg -->
<img src="./assets/img/img01.jpg" alt="画像">
</picture>
↑のコードをみていただくとわかると思うのですが、jpgとwebpを用意する必要があります(面倒ですね涙)
こちらでWebPに変換できるので用意しましょう。webpに変換すると容量が軽くなります。
↓はWebP対応に加え、遅延読み込みのlazyloadも対応する場合のコードです。
※遅延読み込みによる表示のされ方に問題がなければ、こちらの方が早くなるかなと思います。
<picture>
<!-- WebPは変化なし -->
<source data-srcset="./assets/img/img01.webp" type="image/webp">
<!-- srcをdata-srcにして、classにlazyloadを追加、widthとheightを追加しています -->
<img data-src="./assets/img/img01.jpg" alt="画像" class="lazyload" style="width: 100%; height: 100%;">
</picture>
最後に
一番インパクトが大きかったのは、WebフォントをDLしてサーバーにアップする方法です。
Adobeのライセンス認証をしてから表示させるので、遅くなのだと思います。
早く表示する方法、ご存知の方がいたら教えてください。笑