みなさん、Core Web Vitalsは、ご存知でしょうか?
Core Web Vitalsとは、2021年5月からGoogle検索のランキング要因に組み込まれる指標になります。
さらに、Google は、これを利用してページ エクスペリエンスの基準をすべて満たすページを識別できるようにする取り組みを行っています。(こちらも、2021年5月から導入予定)
Google 検索セントラル ブログにおいて、正式に組み込まれると発表されています。
日常的に、Google Search Consoleを利用している方は、以下の項目が追加になっていることに気づいているかもしれません。
- ウェブに関する主な指標 (モバイル/PC)
上記のレポートで、LCPの問題: 4秒超やCLSに関する問題: 0.25超等のエラーレポートが表示されているかと思います。
アクセス数が少ないサイトだと、以下のように表示されません。
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_445,c_scale/f_auto,q_auto/v1613083546/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_130,c_scale/f_auto,q_auto/v1613083546/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_333,c_scale/f_auto,q_auto/v1613083546/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083546/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b/3e00b80d7f378c25a9d58fae1a74f120_858b4d5b.jpg?_i=AA 1200w)
上記表示された場合は、PageSpeed Insightsを試してみると確認できます。
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613079511/010365ae5ec8cde36582fa7046523606/010365ae5ec8cde36582fa7046523606.jpg?_i=AA 1000w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_81,c_scale/f_auto,q_auto/v1613079511/010365ae5ec8cde36582fa7046523606/010365ae5ec8cde36582fa7046523606.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_208,c_scale/f_auto,q_auto/v1613079511/010365ae5ec8cde36582fa7046523606/010365ae5ec8cde36582fa7046523606.jpg?_i=AA 768w)
具体的には、以下の3つの指標になります。
- LCP(Largest Contentful Paint) 読み込み時間
- FID(First Input Delay) インタラクティブ性
- CLS(Cumulative Layout Shift) ページ・コンテンツの視覚的安定性
ユーザエクスペリエンスの向上の為の指標になります。
要は、Webサイトは、読み込み時間がより早く、ユーザのアクション(クリックやタップ)に即座に反応し、ページ表示時にデザインが崩れたりしないほうが使い勝手がよい = 検索結果の上位に来ますということになります。
ユーザエクスペリエンスの指標には、元々上記以外に以下がありました。
- モバイルフレンドリー
- セーフブラウジング
- HTTPS
- コンテンツのアクセスを邪魔する広告
今回追加される3つの指標のうち、LCPについてさらに詳しくみて行きたいと思います。
LCP(Lagest Contentful Paint)
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_300,c_scale/f_auto,q_auto/v1613083540/51bbfff0558029909534e07b440890b7/51bbfff0558029909534e07b440890b7.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_88,c_scale/f_auto,q_auto/v1613083540/51bbfff0558029909534e07b440890b7/51bbfff0558029909534e07b440890b7.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_225,c_scale/f_auto,q_auto/v1613083540/51bbfff0558029909534e07b440890b7/51bbfff0558029909534e07b440890b7.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083540/51bbfff0558029909534e07b440890b7/51bbfff0558029909534e07b440890b7.jpg?_i=AA 1200w)
読み込み性能を測定します。良いユーザー体験を提供するためには、ページが最初にロードを開始してから2.5秒以内にLCP(最大のコンテンツ要素がレンダリングされる)が発生する必要があります。
対策
考えられる対策を列挙します。ものによっては、コストがかかるものがあるので手軽なものから始めましょう。
- Webサーバを再起動する
- php-fpmを再起動する
- サーバを増強する
- PHPのバージョンアップ
- Webサーバのgzip圧縮配信対応をする
- Webサーバのバージョンアップ・HTTP/2を使用できるようにする
- AMP化する
- WordPressのバージョンアップ(WordPressの場合)
- 余計なプラグインの読み込みをしなようにする(WordPressの場合)
- Shifter等を使って静的なHTMLとして提供する
- 画像サイズの見直しを行う(https://squoosh.app/index.html)
- 画像をWebPに対応する
- 画像はLazyLoadさせるようにする
- content-visibilityプロパティを利用する
- 静的なファイルをCDN等から配信するようにする
- CSSの最適化を行う
- JavaScriptの最適化を行う
当サイト、この記事を書いている時、以下の数値でした。
相当遅いですね。
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_559,c_scale/f_auto,q_auto/v1613083539/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_164,c_scale/f_auto,q_auto/v1613083539/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_419,c_scale/f_auto,q_auto/v1613083539/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083539/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd/1a266c89d2b0b7ab8ee6756473d30443_8660cdbd.jpg?_i=AA 1200w)
ここで上記にあげた対応を少し行ってみたいと思います。
nginxとphp-fpmを再起動します。毎晩、nginxについては再起動をかけるようにしていたのですが
php-fpmはそのままだったため、プロセスが溜まっていました。毎晩の再起動に、php-fpmも追加しました。
そして、てっとり早いのは、画像圧縮です。本サイトだと、1画像だけ100kbを超えるものがあるので
Googleの画像圧縮ツールで圧縮します。
これで、再度計測してみます。これだけでだいぶ改善されました。6.2秒 => 4.5秒
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_596,c_scale/f_auto,q_auto/v1613083534/f8051c26809bc11366240cad16d94a59_8683e086/f8051c26809bc11366240cad16d94a59_8683e086.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_175,c_scale/f_auto,q_auto/v1613083534/f8051c26809bc11366240cad16d94a59_8683e086/f8051c26809bc11366240cad16d94a59_8683e086.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_447,c_scale/f_auto,q_auto/v1613083534/f8051c26809bc11366240cad16d94a59_8683e086/f8051c26809bc11366240cad16d94a59_8683e086.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083534/f8051c26809bc11366240cad16d94a59_8683e086/f8051c26809bc11366240cad16d94a59_8683e086.jpg?_i=AA 1200w)
ちょっとハードル高いですが、nginxのバージョンもあげてみます。
個人サイトだと気軽に上げれますが、商用サイトの場合は、注意してあげてください。
当サイトは、centOS7なので以下の通り実施。
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
# yum -y --enablerepo=nginx install nginx
現状、nginx/1.12.2。更新後、nginx/1.18.0。
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_596,c_scale/f_auto,q_auto/v1613083528/f8051c26809bc11366240cad16d94a59-1/f8051c26809bc11366240cad16d94a59-1.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_175,c_scale/f_auto,q_auto/v1613083528/f8051c26809bc11366240cad16d94a59-1/f8051c26809bc11366240cad16d94a59-1.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_447,c_scale/f_auto,q_auto/v1613083528/f8051c26809bc11366240cad16d94a59-1/f8051c26809bc11366240cad16d94a59-1.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083528/f8051c26809bc11366240cad16d94a59-1/f8051c26809bc11366240cad16d94a59-1.jpg?_i=AA 1200w)
変化なし。
レンダリングを妨げるリソースの除外が一番上に来ているのでこちらの対応をします。
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_375,c_scale/f_auto,q_auto/v1613083527/610270cdcc3590a9ac5e4408a9f53aab_874a1e37/610270cdcc3590a9ac5e4408a9f53aab_874a1e37.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_110,c_scale/f_auto,q_auto/v1613083527/610270cdcc3590a9ac5e4408a9f53aab_874a1e37/610270cdcc3590a9ac5e4408a9f53aab_874a1e37.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_281,c_scale/f_auto,q_auto/v1613083527/610270cdcc3590a9ac5e4408a9f53aab_874a1e37/610270cdcc3590a9ac5e4408a9f53aab_874a1e37.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083527/610270cdcc3590a9ac5e4408a9f53aab_874a1e37/610270cdcc3590a9ac5e4408a9f53aab_874a1e37.jpg?_i=AA 1200w)
WordPressの以下のプラグインを入れてみます。
- Autoptimize
- Async JavaScript
設定 => Async JavaScriptで、チェックを入れ、Apply Asyncを押下する。
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_532,c_scale/f_auto,q_auto/v1613083520/812e494564daef50b1fb811de09a5eec/812e494564daef50b1fb811de09a5eec.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_156,c_scale/f_auto,q_auto/v1613083520/812e494564daef50b1fb811de09a5eec/812e494564daef50b1fb811de09a5eec.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_399,c_scale/f_auto,q_auto/v1613083520/812e494564daef50b1fb811de09a5eec/812e494564daef50b1fb811de09a5eec.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083520/812e494564daef50b1fb811de09a5eec/812e494564daef50b1fb811de09a5eec.jpg?_i=AA 1200w)
設定 => Autoptimizeで、JSとCSSの最適化にチェックをつけて保存する。
再度、計測。
![Core Web Vitals(コアウェブバイタル)とは?2021年5月〜導入](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_377,c_scale/f_auto,q_auto/v1613083506/57fdd9429810513d5e67ddd21b44cd8e/57fdd9429810513d5e67ddd21b44cd8e.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_111,c_scale/f_auto,q_auto/v1613083506/57fdd9429810513d5e67ddd21b44cd8e/57fdd9429810513d5e67ddd21b44cd8e.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_283,c_scale/f_auto,q_auto/v1613083506/57fdd9429810513d5e67ddd21b44cd8e/57fdd9429810513d5e67ddd21b44cd8e.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613083506/57fdd9429810513d5e67ddd21b44cd8e/57fdd9429810513d5e67ddd21b44cd8e.jpg?_i=AA 1200w)
6.2秒が、3.4秒になりました。これ以上は、サーバをアップするかぐらいしかできなさそうが気がします。
2021年5月から導入されますが、早めに対応しておかないと急にオーガニックの流入がなくなってしまうなど
あるので、早め早めの対応が必要かと思います。