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
ユウト
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
Oxlintはいいぞ
yug1224
5
1.4k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
4k
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
140
並行開発のためのコードレビュー
miyukiw
0
1.2k
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
740
Oxlint JS plugins
kazupon
1
1k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
500
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Exploring anti-patterns in Rails
aemeredith
2
250
My Coaching Mixtape
mlcsv
0
50
Technical Leadership for Architectural Decision Making
baasie
2
250
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Mobile First: as difficult as doing things right
swwweet
225
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
From π to Pie charts
rasagy
0
130
Faster Mobile Websites
deanohume
310
31k
[SF Ruby Conf 2025] Rails X
palkan
1
760
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