タシロのカイワレサイトのCore Web Vitalsを改善してみた

:::note warn
<b>注意</b>
タシロはそこまで「Core Web Vitals」に詳しいわけではないです。（片足ちょっと突っ込んだ程度…）
最近ちょっとやって見る機会があったので、そこでやったことを無理のない範囲でタシロがタシロのサイトに施してみるだけの話。
:::

<p>以前、「Core Web Vitalsなにそれおいしいの？」状態の時にタシロが趣味で作った「<a href="http://gundji.html.xdomain.jp/kaiware.html" target="_blank">カイワレのサイト</a>」のCore Web Vitalsを今回は改善して行こう！という感じにやって行こうかなと思います(笑)</p>

![FireShot Capture 397 - タシログンヂ - TASHIRO GUNDJI WEB × KAIWARE - gundji.html.xdomain.jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/86c95563-7740-11fd-b27c-96392266dcbc.png)

<h1>まずそもそも、Core Web Vitalsってなんぞや？</h1>
<p>とってもざっくり言うと、みんな多分大好きかもしれない(笑)Googleの検索順位の指標となるものです。<br>これにより、検索順位が上がったり、下がったり、したりしなかったりします！<br>詳しく知りたい人は「Core Web Vitals」でググろう！</p>

<table>
<tr>
<th>メリット</th>
<th>デメリット</th>
</tr>
<tr>
<td>ちょっとでも検索順位上げたい人にはメリットがあるかも</td>
<td>めんどい、何していいかわからん、<br>ほんとに検索順位上がんの？←成果が出るまでに時間がかかる</td>
</tr>
</table>
そこまで大きく変わったりはしない…

ただ全く同じサイト・似たようなサイトがあった場合は「Core Web Vitals」を意識して作ったサイトの方が、順位は1つでも上がるのではないかなと思います。

まあ、ページの遅さ改善などを行うので、タシロ的には無駄ではないかなと思います！
普通に考えて、遅いページよりも早いページの方がアクセスしやすいですし、ユーザーのストレス軽減にはつながるかも？！

<h1>で、本題「なにすりゃいいの？」</h1>
<p>サイトの読込速度を上げるために、HTML・CSS・JS・画像もろもろをとりあえず軽くしよう！<br><b>「いらないものは断捨離！」</b></p>

<h2>何から手を付けたらいいかわからない人</h2>
<a href="https://developers.google.com/speed/pagespeed/insights" target="_blank">PageSpeed Insights</a>をやって見よう！
こんな感じで色々教えてくれる！

![FireShot Capture 771 - PageSpeed Insights - developers.google.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/5b98e509-78a2-1397-d897-3365bcfaa11d.jpeg)

![FireShot Capture 772 - PageSpeed Insights - developers.google.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/4e5abe21-2859-81d7-8006-5ae1eca7443e.jpeg)

↑そこまで、点数は悪くなかった(笑)
まあ、せっかくだし、100点目指してみよう！

<h2>どうやら「First Contentful Paint」と「Speed Index」がダメらしい</h2>
まあ、ざっくり言うと

<table>
<tr>
<th>First Contentful Paint</th>
<th>Speed Index</th>
</tr>
<tr>
<td>JSよくない！</td>
<td>画像が重い！サイトが遅ぇ！</td>
</tr>
</table>
と言われてるっぽいですね(笑)

<h2>じゃあ、サイト改善やってみよう！</h2>
<h3>①とりあえず、画像サイズで怒られてるっぽいので、画像を手っ取り早く軽くしていこう！</h3>
<blockquote>適切なサイズの画像　53.1 s<br>適切なサイズの画像を配信して、モバイルデータ量を節約し読み込み時間を短縮してください。<br>
WebP や AVIF などの画像形式は、一般的に PNG や JPEG より圧縮率が高く、ダウンロード時間やデータ消費量が抑えられます。<br>
<br>
過大なネットワーク ペイロードの回避 合計サイズは 11,147 KiB でした<br>ネットワーク ペイロードのサイズが大きいと、ユーザーの金銭的負担が大きくなり、多くの場合、読み込み時間が長くなります。<br>
<br>
静的なアセットと効率的なキャッシュ ポリシーの配信 17 件のリソースが見つかりました<br>キャッシュの有効期間を長くすると、再訪問したユーザーへのページの読み込み速度を向上できます。
</blockquote>

:::note warn
ちなみに、WebPはブラウザによって表示されないなどのデメリットがあります！
参考サイト：<a href="https://digitalidentity.co.jp/blog/creative/webp.html" target="_blank">WebP(ウェッピー)とは？フォーマットの違いや作成方法をご紹介!</a>
:::

なので、タシロはあまり好きじゃないから今回はやらない…

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/5870aadc-6c36-a75c-2ef4-a10b5f41137b.png)

<table>
<tr>
<th colspan="2">現状</th>
</tr>
<tr>
<td>4032 × 3024px というとんでもねぇ画像サイズに<br>735KB というとんでもねぇ画像の重さ…<br>自分で作っといてなんだけど、ないわ…</td>
<td><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/c7d180ab-6c8c-bab3-00a4-c3d139fb6c1b.png"> </td>
</tr>
</table>
というわけで、
<a href="https://www.iloveimg.com/ja/compress-image/compress-jpg" target="_blank">こういうサイト</a>で画像のサイズを変更したり、軽量化したりする！
他にも、svgだったり、pngをだったりする場合は、jpgやWebPとかの画像形式に変更するとよいです！

<table>
<tr>
<th colspan="2">結果</th>
</tr>
<tr>
<td>画像サイズ：4032 × 3024px → 1512 × 1134px<br>画像の重さ：735KB → 170KB</td>
<td><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/039f3a62-8d87-3ab0-251f-181a0c94b22b.png"> </td>
</tr>
</table>
<p>今回は、1512 × 1134pxで170KBなので、PC版を切り捨ててもっと画像を小さくすれば、軽くなってサイトがもっと早くなると思います！<br>（タシロはPC版切り捨てたくないので、やりませんけど笑）</p>

<h3>②HTMLを改善しよう</h3>
<blockquote>画像要素で width と height が明示的に指定されていない</blockquote>
<table>
<tr>
<th>URL</th>
<th>問題のある要素</th>
</tr>
<tr>
<td>/img/logo.png(gundji.html.xdomain.jp)</td>
<td>div.cell > h2 > a > img<br>
&lt;img src="img/logo.png"></td>
</tr>
</table>
<code>&lt;img src="img/logo.png"></code>
↓これをこうすればOK！
<code>&lt;img src="img/logo.png" <b>width="280" height="45"</b>></code>

![無題6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/c11d197f-cd28-7c1e-befc-e3268c0466b8.png)



<h3>③JSなんとかしよう</h3>
<blockquote>使用していない JavaScript の削減　0.15 s<br>使用していない JavaScript を減らして、必要になるまでスクリプトの読み込みを遅らせると、ネットワークの通信量を減らすことができます。<br>
<br>
第三者コードの影響を抑えてください 第三者コードによってメインスレッドが 450 ミリ秒間ブロックされました<br>第三者コードによって、読み込み速度が著しく低下する可能性があります。重複する第三者プロバイダの数を制限したうえで、ページのメインの部分を読み込み終えた後に第三者コードを読み込んでみてください。<br>
<br>
スクロール パフォーマンスを高める受動的なリスナーが使用されていません<br>
ページのスクロール パフォーマンスを高めるには、touch および wheel イベント リスナーを `passive` として指定することをご検討ください。</blockquote>

なんかここら辺は私が入れたJSで怒られてるっぽいですね(笑)

まあ、基本的にjQuery等のJSのDOM操作?は行わないほうがいいらしいです！
でも、今回このサイトはこの一つ一つ紙芝居形式に移動させるJSをメインに使ってます。
なので、このJSなくなるとちょっと困る…今回はJSなんとかはしないです(笑)

タイトル：JSなんとかしよう（なんとかするとは言ってない…）

<b>もしやるなら、できる限りCSSで動きの方は何とかしたりで、JSなくすのが一番手っ取り早いです！（今回は無理 笑）</b>

Core Web Vitals的にはJSをなくしても、レイアウトが崩れないサイトが望ましいらしい

まあ、こんな感じにうまいこといるものは残す、いらないものは捨てるみたいな感じでタシロは無理なくやって行こうかと思います(笑)

<h3>④色々軽量化しよう</h3>
<blockquote>テキスト圧縮の有効化　0.15 s<br>テキストベースのリソースは圧縮（gzip、deflate、または brotli）して配信し、ネットワークの全体的な通信量を最小限に抑えてください。</blockquote>
<table>
<tr>
<th>URL</th>
<th>転送サイズ</th>
<th>減らせるデータ量</th>
</tr>
<tr>
<td>/fullpage.extensions.min.js(gundji.html.xdomain.jp)</td>
<td>43.4 KiB</td>
<td>28.0 KiB</td>
</tr>
<tr>
<td>/style.css(gundji.html.xdomain.jp)</td>
<td>12.7 KiB</td>
<td>10.0 KiB</td>
</tr>
<tr>
<td>/kaiware.html(gundji.html.xdomain.jp)</td>
<td>13.5 KiB</td>
<td>9.9 KiB</td>
</tr>
</table>

基本的にHTML・CSS・JS・画像は軽けりゃ軽いほどいいらしいです。

なので、HTMLとかCSSとかJSとかで、コード書く時に見やすいよう改行したりとか、スペース空けたりとかすると思うんですけど、それ全部なくそうという感じです。

<b>「でも、それってメンテする時とか作業しづらくね？」</b>

ええ、そうですね。
なので、最低限読みにくくならない範囲でスペース少なくしたり、改行少なくしたり、無駄なタグとかクラスとかなくしたりとかぐらいしかやりようがない…。

「もう、二度とこのサイト触らない！」「メンテなんてしない！」とかならありかもですけど、あまり現実的ではないですね(笑)

<h1>で、色々やってきて、PageSpeed Insightsの最終結果がこちら</h1>

:::note warn
<b>注意</b>
割とやる人の端末のスペックなどで変動するっぽいです。（私がやっと時はこうなった）
:::

![FireShot Capture 801 - PageSpeed Insights - developers.google.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/ccce3625-491f-c4e4-e5ad-2608118414bd.jpeg)


<h1>まあ、色々踏まえて結論</h1>
Webサイトとしての意味とかは一旦置いといて、

Core Web Vitalsの点数上げる的な意味合いでは
<h3>真っ白な何も表示されないサイトが最強(笑)</h3>
<br>
<a href="http://gundji.html.xdomain.jp/kaiware_0.html" target="_blank">タシログンヂのなにもないカイワレサイト</a>

|![FireShot Capture 775 - タシログンヂ - TASHIRO GUNDJI WEB × KAIWARE - gundji.html.xdomain.jp.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/56a9eb4d-a568-fdf6-4cf8-47404e5b6519.jpeg)|
|:-:|


![FireShot Capture 776 - PageSpeed Insights - developers.google.com.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1984246/460ff343-d19d-8450-d8c4-9d4081b47234.jpeg)