Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Core Web Vitalsについて
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ユウト
July 01, 2023
Programming
0
140
Core Web Vitalsについて
ユウト
July 01, 2023
Tweet
Share
More Decks by ユウト
See All by ユウト
Rust製JavaScript EngineのTypeScriptサポート
yossydev
1
350
Rust製JavaScriptエンジンのTypedArray built-inメ ソッドの最適化
yossydev
0
140
Introduction to React Compiler
yossydev
0
140
Fast JSX: Don't clone props object #28768
yossydev
1
640
React の色々な スタイリング方法
yossydev
0
63
Other Decks in Programming
See All in Programming
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
350
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
並行開発のためのコードレビュー
miyukiw
0
250
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
組織で育むオブザーバビリティ
ryota_hnk
0
180
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
980
SourceGeneratorのススメ
htkym
0
200
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
100
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
190
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
How GitHub (no longer) Works
holman
316
140k
A Soul's Torment
seathinner
5
2.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Side Projects
sachag
455
43k
Embracing the Ebb and Flow
colly
88
5k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Into the Great Unknown - MozCon
thekraken
40
2.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
Transcript
Core Web Vitalsについて Yuto Yoshino
Warming up
None
第1問: Core Web Vitalsとはなんのことか 1. ウェブページのパフォーマンスを測定するための指標 2. ウェブページのセキュリティを評価するための指標 3. ウェブページのデザインとユーザーエクスペリエンスを評価す
るための指標 4. ウェブページのコンテンツの品質を評価するための指標
第1問: Core Web Vitalsとはなんのことか 1. ウェブページのパフォーマンスを測定するための指標 2. ウェブページのセキュリティを評価するための指標 3. ウェブページのデザインとユーザーエクスペリエンスを評価す
るための指標 4. ウェブページのコンテンツの品質を評価するための指標
第2問: Core Web Vitalsの内容として、正しいものを選びなさい 1. Largest Contentful Paint (LCP) 2.
First Input Delay (FID) 3. Cumulative Layout Shift (CLS)
第2問: Core Web Vitalsの内容として、正しいものを選びなさい 1. Largest Contentful Paint (LCP) 2.
First Input Delay (FID) 3. Cumulative Layout Shift (CLS)
「学びになった!」ってちょっとでもなれば嬉しいです!
Yuto Yoshino Web Developer CyberAgent 24卒 Webパフォーマンス / DX 好きなこと:
football / k-pop @code-yy @codeyy_dev
Core Web Vitals: ウェブパフォーマンスの指標 2024年3月 変更予定
Core Web Vitals改善すると • SEOの向上 ◦ GoogleがUXを大事にしている • 遅いページなんて見たくない! ◦
なるべく早くページが見たい ◦ クリックしたらなるべく早く動いて欲し い! ◦ クリックしようとしていきなりずれたら困 る!
Core Web Vitals改善例 • CLS改善をした結果事業成果がグンと上がった話 • ユーザー体験を向上!Yahoo!ニュースにおけるCore Web Vitals対応事例
LCP / CLS / FID / INP
「画面上で最も大きいコンテンツ要素が 表示されるまでの時間」 考慮される要素 • <img> 要素 • <svg> 要素内の <image>
要素 • <video> 要素 (ポスター画像が使用されます ) • url() 関数を介して読み込まれた背景画像が含まれて いる要素 • テキストノードやその他のインラインレベルのテキスト 要素の子要素を含む ブロックレベル要素 Largest Contentful Paint (LCP)とは
None
None
LCPの理想値 ページ訪問の少なくとも75%で2.5秒以下 GOOD: 0 ~ 2.5 sec NEEDS IMPROVEMENT: 2.5
sec ~ 4.0 sec POOR: 4.0 sec ~
🙆 Viewport内でユーザーに対して 表示されるサイズ 要素がビューポートからはみ出している 要素の一部が切り取られている 画面に表示されないoverflowが発生する
LCPのサイズはどうやって決まるのか
• ウェブサーバーを最適化する • 画像やJavaScriptの圧縮 • 遅延読み込み(Lazy Loading)して、 不要なJavaScriptの読み込みを遅らせる • ブラウザのキャッシュを使用する
…etc LCPを改善する
「ユーザーがページを閲覧している最中に 意図しないコンテンツの移動や シフトが発生する度合い」 Cumulative Layout Shift (CLS)とは
None
None
CLSの理想値 モバイルとデスクトップに分けた上で、 総ページロード数の75%のスコアを0.1以下 GOOD: 0 ~ 0.1 sec NEEDS IMPROVEMENT:
0.1 sec ~ 0.25 sec POOR: 0.25 sec ~
🙆 既存の要素がその開始位置を変更する 新しい要素をDOMに追加 既存の要素のサイズを変更 → 他の要素の開始位置を変えなければ CLSとしてカ ウントされない!
CLSの測定について
CLS低下の原因 • サイズ指定のない画像 • サイズ指定のない 広告 / 埋め込み要素 / iframe
• 動的に挿入されたコンテンツ CLSを最適化する
CLSを最適化する CLS低下の原因 • サイズ指定のない画像 • サイズ指定のない 広告 / 埋め込み要素 /
iframe • 動的に挿入されたコンテンツ 画像のデフォルトのアスペクト比を画像の width と height 属性に基づいて設定する
First Input Delay (FID)とは 「ユーザーがページ上で最初のインタラクショ ンを行った後、実際にブラウザがそのインタラ クションに反応するまでの時間」
None
FIDの理想値 GOOD: 0 ~ 0.1 sec NEEDS IMPROVEMENT: 0.1 sec
~ 0.25 sec POOR: 0.25 sec ~
First Input Delay (FID)を最適化する - 長く時間がかかっているタスクを分割 する - 操作に対する準備状況にページを最 適化する
- Web Worker を使用する - JavaScript の実行にかかる時間を 短縮する
https://web.dev/i18n/ja/optimize-fid/ #%E9%87%8D%E3%81%84-javascript -%E3%81%AE%E5%AE%9F%E8%A1%8 C
「ユーザーがページを訪問する間に発生する 全てのクリック、タップ、キーボード操作の待ち 時間を観察することで、ユーザーのインタラク ションに対するページの総合的な応答性を評 価」 FIDだとアプリケーション全体のインタラクティブ性を計測 できないので,INP が導入されることになりました Interaction to
Next Paint (INP)
None
INPの理想値 参考: https://web.dev/i18n/ja/lcp/ GOOD: 0 ~0.2 sec NEEDS IMPROVEMENT: 0.2
sec ~0.5 sec POOR: 0.5 sec ~
FIDとINPの違いについて FID 測定範囲: 最初のインタラクションのみ 測定される時間: 入力遅延時間 INP 測定範囲: ページの読み込みを開始し てからユーザーがページを離れるまで
の全範囲のインタラクション 測定される時間: 入力遅延時間+処理 時間+表示遅延時間
https://web.dev/inp/#what-is-inp
None
• Largest Contentful Paint (LCP) • Cumulative Layout Shift (CLS)
• First Input Delay (FID) • Interaction to Next Paint (INP) まとめ
これを機にWebパフォーマンスについて 勉強してくださる方がいらっしゃれば嬉しいです!! 一緒に頑張りましょう!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
None