Lighthouseでウェブサイトを解析にかけるとパフォーマンススコアが算出されるが、同じ環境で計測するたびにスコアが上下することがあるのに気がつく人は多いと思う。
これはなんでかと言うと、Lighthouseのパフォーマンススコアは、FCPやSI、LCPなどのWeb Vitalsの指標を元に計算される。これらの値はネットワークの速度によって変わるので、Lighthouseのスコアは計測環境の影響を強く受ける。例えばサーバからネットワーク的に遠いところから計測したり、スループットの良くない環境から計測するとこれらの指標は低くなる。同じ環境だとしても計測するごとにネットワークの状態は微妙に変わるし、ネットワークが混雑するかどうかも時間帯によって変わるので、Lighthouseのスコアが計測するごとに上下することがある。
さらにある環境でLighthouseのスコアを測ってもそのスコアはその環境におけるスコアを測ったものであって、他の環境におけるスコアを保証したりはしないし、ウェブサイトのパフォーマンスの絶対的な指標にはなるわけではない。Lighthouseは計測時にその計測環境の影響を抑えるためにネットワーク速度のシミュレーションを行うが、計測環境の差異を無くしてくれるわけではない。ある程度安定した指標を取りたい場合にはPageSpeed InsightsやWebPageTestのような計測用の一貫した環境からLighthouseスコアやパフォーマンスを計測してくれるサービスを使ったほうが良いだろう。
また、ウェブサイトの 実際の ウェブパフォーマンスを知りたい場合には、Lighthouseをつかって計測するのではなく、ユーザーが実際にそのウェブサイトにアクセスした際のパフォーマンスを計測する リアルユーザーモニタリング(RUM) を採用するべきである。リアルユーザーモニタリングを行うサービスはいくつかあるので、そこから適切なものを検討して導入するとよい。
- SpeedCurve
- Calibre
- New Relic - New Relic BrowserでRUMを利用できる
- Sentry - 最近Web Vitalsも測れるようになった
Lighthouseはウェブパフォーマンスについて有益なアドバイスをしてくれるが、スコアに関してはその性質を理解することが重要である。