0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

速度改善_雑多メモ

Last updated at Posted at 2020-02-12

最近、WEBの速度改善することが多いので、
忘備録として。

IntersectionObserver

速度改善の定番の手法として、
「画像の遅延読み込み」がある

いろんな遅延読み込みのライブラリが世の中にはあるが、
IntersectionObserver APIを用いた方法が、Google推奨しているため
なるべくそれを使いたい。

Googleの見解:
https://developers.google.com/search/docs/guides/lazy-loading

html
<img class="lazyload" src="dummy.png" data-src="hoge.png">

上記の書き方で、画面外時にはdummyを表示し、
画面内になったら、hoge.pngをロードし、表示する、ということが可能。

APIを使う側の記述は省略。

iframeの遅延読み込み

上のIntersectionObserverを叩く側をちょっと改良すれば
imgタグだけでなく、iframeタグでも遅延読み込みを利用できる。

PageSpeed Insightsのスコアを見る限り、
画像の3倍くらい効いてくる。

iframeはyoutube埋め込みとかで、
メチャンコ重たくなっているケースが多い。

画像とiframeの遅延読み込みを整備するだけで
スコアがグンとあがることがあるのでオススメ。

TinyPngしてみる

画像がバカでかい時があるので。
半分くらいのサイズになることが多いです。

画像の鮮明さと速度のトレードオフで悩むことはあるけど
あんまり考えないで、ツールに解を出してもらうほうが効率的だと思います。

jQuery

jQuery関連は読込の順番変えると動かなくなったり
そもそも最初に読むライブラリが重かったりで、
速度上、不利。あんまり使わない方がいい、、、

けど、使わざるを得ない状況も多いので。

acync で気持ちマシになるかも

CSS

重要じゃないCSSは遅延させたほうがいいらしい。
Insightでも毎回指摘されるポイント。
けど、CSSはどれも重要、という状況も多く、あんまり解決にならない。

WordPress

遅延読み込み系のプラグインは多数ある。
ありすぎて、どれがイイかわかんなくなる。

JetPackでも遅延読み込み化することができるみたいだけど、
ぼくは a3 Lazy Load を使ってみている。

画像もiframeも遅延読み込みできるし
そこそこスコア改善できたので。

もっといいプラグインがあるかもしれないし、
結局は、WP(とjQuery)が重すぎて
ハイスコアは狙えない、となってしまうことも。

最適解見つけられてないです。

追記:

CSSの遅延読込みを実現する最もシンプルな方法

レンダリングをブロックしてしまう要因として
CSSは結構デカい。
単にこれを導入するだけでモバイルスコアが10くらいあがることも。

印刷用のCSSと指定して、ロードが完了したら、
スクリーンにも適用する、的な処理をonloadで用意している。

html
<link rel="stylesheet" href="/path/to/my.css" media="print" onload="this.media='all'">

※2/27追記
 CSSが先にロードされていること前提で書かれているjsコードがあれば
 CSS遅延させると不具合が発生したりしなかったりする。危険。
 一括でCSSを遅延読み込みさせる場合は十分な動作確認しないと痛い目みます。

jsの遅延読み込みdefer

同じくレンダリングを大きくブロックしてしまう要因としての、js

Javascript、とくにjQuery関連は
ロードの順番が大事なことがあるので
入念な動作検証が必要。

deferとasyncがあるが、実行順番を考慮すると
全部一括でdeferにするのが良いと思われる。

deferもasyncもつけていないと、
結構なレンダリングブロック時間が生じてしまうので、結構重要

そもそも、モバイルスコアは評価が厳しすぎる?

以下のサイトらによると、、、

https://webtan.impress.co.jp/e/2018/12/21/31382
ただし残念ながら現状のPageSpeed Insightsによるモバイルのパフォーマンス測定は、日本のサイトに関しては信頼できる数値になっていない。計測が米国から行われているからだ。

https://boundworks.net/pagespeed-insights/
2018年11月に入ってからスコアの判定方法が変更になり、3G回線時の通信速度をベースとした、より厳格な基準となっています。

これが本当だとすると、
「アメリカから、3G回線」での評価になるので、

これをこのまま「日本国内から国内に4GやWi-Fiでアクセス」する
現代のモバイル事情に当てはめると、
若干厳しすぎるのかもしれません。

少なくとも、一概に「Pagespeed insights スコア90以上を目指せー!」
とは言えないかと思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?