Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Site-Speed That Sticks
Search
Harry Roberts
November 14, 2024
Technology
1.6k
13
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Site-Speed That Sticks
Harry Roberts
November 14, 2024
More Decks by Harry Roberts
See All by Harry Roberts
Build for the Web, Build on the Web, Build With the Web
csswizardry
0
630
How to Think Like a Performance Engineer
csswizardry
28
2.9k
cache rules everything
csswizardry
5
3.9k
My Website Is Slow! Where Do I Start?
csswizardry
5
620
Optimising Largest Contentful Paint
csswizardry
37
4k
Get Your Head Straight
csswizardry
15
22k
From Milliseconds to Millions: A Look at the Numbers Powering Web Performance
csswizardry
1
2.8k
More Than You Ever Wanted to Know About Resource Hints
csswizardry
6
11k
It’s My (Third) Party, and I’ll Cry if I Want To
csswizardry
13
5.9k
Other Decks in Technology
See All in Technology
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
1
240
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
400
QAエンジニアがSoutherを使ってみたの〜10分でわかるSouther〜
mhlyc
0
110
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
5
1.5k
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
120
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
210
ガチで放置できるClaude Code実行環境の作り方.pdf
lamaglama39
5
9.3k
【データ横丁主催】AI エージェント時代のTranslytical Data Platform
shisyu_gaku
0
280
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
280
BacklogのRAG 今ならこう作る - S3 Vectorsと自前パイプラインの勘所
revsystem
0
120
背中から、背中へ ー 社外コミュニティで学んだ「雑に背中を押す」という恩送り ー / easygoing encouragement and pay forward to community
naitosatoshi
0
130
AI時代、つくる力を自分たちの手に。 ──電通×KAG、アジャイルとAI駆動開発で挑む開発の変革
yuukiyo
2
320
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.3k
So, you think you're a good person
axbom
PRO
2
2.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
330
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
440
Thoughts on Productivity
jonyablonski
76
5.4k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Code Review Best Practice
trishagee
74
20k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
640
Transcript
site-speed that sticks
None
hi, i’m harry
None
five key topics
1. metrics 2. localhost 3. backstops 4. monitoring 5. playbook
1. metrics 2. localhost 3. backstops 4. monitoring 5. playbook
1. metrics 2. localhost 3. backstops 4. monitoring 5. playbook
1. metrics 2. localhost 3. backstops 4. monitoring 5. playbook
1. metrics 2. localhost 3. backstops 4. monitoring 5. playbook
1. metrics 2. localhost 3. backstops 4. monitoring 5. playbook
metrics
not all metrics are born equal
different metrics for different people on different occasions with different
levels of disclosure
kpis, enablers, predictors
kpis
definition + target
what are we working toward?
of interest to the business
core web vitals
‘which number on which dashboard of which service?’
“We want a one-second improvement in Largest Contentful Paint.” —
My Client
None
None
None
enablers
metrics that directly influence kpis
of interest to engineering teams
ttfb, input delay
predictors
signals of good/bad performance
highly quantitative
of interest to engineers
bundle size, long tasks, blocking css
great for root-causing and reverse engineering
localhost
localhost is: seldom live-like, pretty dang fast, un-bundled
know your tools inside out
None
None
csswz.it/perfnow25
one weird trick…
None
// plugins/delay.server.ts export default defineNuxtPlugin(async () => { await new
Promise(resolve => setTimeout(resolve, 900)) })
None
None
<head> <link rel=stylesheet href=https://slowfil.es/file?type=css&delay=800> </head>
core web vitals are too big for localhost
if you’re working locally, measure locally
bare-metal metrics
None
None
1
1 2
1 2 3
1 2 3
None
None
1
1 2
1 2 3
1 2 3
external: 1842ms inlined: 1250ms
None
these are very private metrics
backstops
…and budgets
what is the worst possible performance we will accept?
set it to the worst reading in the last release
cycle
None
this is where synthetic testing comes into it
synthetic testing; real user monitoring
when to fail a release
None
predictors as tripwires
None
budgets versus targets
budgets are backstops; targets are ambitions
target == kpi
None
monitoring
the m in rum stands for monitoring
“Insanity is doing the same thing over and over again
and expecting different results.” — Rita Mae Brown
None
🎉
?
None
None
None
None
it’s the exact same file
None
you’re monitoring variation in tests
None
only alert on your kpis
None
None
0.9952409649
None
None
always follow the numbers
playbook
“Fighting regressions took priority over optimizations […]” — Michelle Vu,
Pinterest
None
it’s all for nothing if you don’t have a plan
response = f(severity, duration)
severity
acceptable: <10%
moderate: 10–25%
severe: 25–50%
critical: >50%
duration
temporary: 24–48hr
sustained: >48hr
long-term: >1 release cycle
unresolved: many release cycles
a kpi regression of over 10% for one week requires
remediation in the next sprint
a kpi regression of over 100% for one hour requires
rollback immediately
a kpi regression of over 25% for one day requires
remediation in the current sprint
an enabler regression of over any% for any time needs
the team’s attention over the next sprint
a predictor regression of over any% for any time needs
my attention over the next sprint
you need a framework to fill in these blanks
early triage
who, what, when, where, and why?
what?
what has regressed?
when?
when did it start? is it still like that?
where?
is it a business-critical part of the site?
who?
who owns the problem?
why?
can you conduct early triage?
None
None
None
None
None
None
key takeaways
increase confidence
use the right tool for the right job
have a plan of attack
agree; commit
thank you
harry.is/for-hire