AMP: Does it Really Make Your Site Faster?
Nigel Heron + Nic Jansma
@querymetrics @nicj
Nigel Heron
@querymetrics
Nic Jansma
@nicj
https://slideshare.net/nicjansma/amp-does-it-really-make-your-site-faster
https://github.com/querymetrics/amp-analytics-demo
@querymetrics @nicj
Agenda
@querymetrics @nicj
What is AMP?
Accelerated Mobile Pages (AMP):
Components:
@querymetrics @nicj
What is AMP?
What you can include:
@querymetrics @nicj
What is AMP?
What you can’t include:
@querymetrics @nicj
Why AMP: Performance
What does performance mean for mobile devices?
@querymetrics @nicj
Why AMP: Performance
AMP enforces a lot of best practices:
@querymetrics @nicj
Why AMP: Performance
Built-in performance:
@querymetrics @nicj
Why AMP: Business
AMP is smart for businesses:
@querymetrics @nicj
Why AMP: Developers
AMP pages are easy to develop:
@querymetrics @nicj
Why AMP: CDN
Free CDN:
@querymetrics @nicj
Why AMP: CDN
Free CDN:
@querymetrics @nicj
Measuring AMP Performance
How we measure traditional websites doesn’t work for AMP:
@querymetrics @nicj
Measuring AMP Performance
How we measure traditional websites doesn’t work for AMP:
@querymetrics @nicj
Synthetic Monitoring
Great for A/B comparing AMP vs. non-AMP
Non-AMP
AMP
@querymetrics @nicj
Synthetic Monitoring
Non-AMP
AMP
@querymetrics @nicj
Synthetic Monitoring
Non-AMP
AMP
29.5s
5.9mb
3.3s
0.8mb
AMP
@querymetrics @nicj
Synthetic Monitoring
Non-AMP
AMP
@querymetrics @nicj
Synthetic Monitoring
Non-AMP
AMP
11.8s
0.4mb
70.7s
5.9mb
@querymetrics @nicj
Synthetic Monitoring
AMP is not a guarantee of performance.
Test Test Test!
@querymetrics @nicj
Synthetic Monitoring
Downsides:
@querymetrics @nicj
Measuring AMP Performance
Q: How do we collect RUM data without custom JavaScript?
A: We don’t, it’s built in!
@querymetrics @nicj
<amp-pixel>: Overview
<amp-pixel src="https://[your-url]">
@querymetrics @nicj
<amp-pixel>: Example
<amp-pixel� src="https://my-server.com/beacon?� url=${canonicalUrl}&title=${title}">
@querymetrics @nicj
<amp-pixel>: Variable Substitution
Many variable available:
https://github.com/ampproject/amphtml/blob/master/spec/amp-var-substitutions.md
@querymetrics @nicj
<amp-pixel>: User identification
AMP has a Client ID:
@querymetrics @nicj
<amp-analytics>: Vendor
If you don't want to roll-your-own, there's <amp-analytics>:
@querymetrics @nicj
<amp-analytics>: DIY
<amp-analytics>� <script type="application/json"> [config] </script>
</amp-analytics>
@querymetrics @nicj
<amp-analytics>: Triggers
When will a beacon be sent?
@querymetrics @nicj
Measuring AMP Performance
navTiming(navigationStart)�navTiming(responseStart, responseEnd)
@querymetrics @nicj
<amp-analytics>: DIY
<amp-analytics>�<script type="application/json">
{
"requests": {
"onvisible":"//my-server.com/beacon?u=${sourceUrl}
&load=${navTiming(navigationStart,loadEventStart)}"
},
"triggers": {
"onvisible": {
"on": "visible",
"request": "onvisible"
}
}
}
</script></amp-analytics>
@querymetrics @nicj
AMP: Live Demo
DIY RUM dashboard
https://amp.querymetrics.com/
@querymetrics @nicj
AMP: DIY RUM Dashboard
@querymetrics @nicj
AMP Real-World Data
How are AMP pages performing in the real world?
@querymetrics @nicj
Real-world RUM data
Non-AMP
AMP
@querymetrics @nicj
Real-World Data
RUM analysis of AMP-enabled websites
@querymetrics @nicj
Sample Regular vs. AMP Page
Regular Site
350 Requests
3.2 MB data
1,258ms First Byte
34.9s Page Load
6701 Speed Index
AMP
19 Requests
250 KB data
598ms First Byte
3.6s Page Load
1790 Speed Index
@querymetrics @nicj
Sample Regular vs. AMP Page
Regular Site
Interactive Nav
High Res Images
Other Content Links
Third Party Content
AMP
Simple Nav
Article Text
Hero Image(s)
No Third Parties
@querymetrics @nicj
Sample Page Content
@querymetrics @nicj
RUM Data
@querymetrics @nicj
Real-World Data: Browsers
@querymetrics @nicj
Real-World Data: OS
@querymetrics @nicj
Real-World Data: Page Load Times
80%
faster
@querymetrics @nicj
Real-World Data: Mobile Load Times
85%
faster
@querymetrics @nicj
Real-World Data: Timings
@querymetrics @nicj
Real-World Data: AMP CDN Usage
@querymetrics @nicj
Real-World Data: CDN Load Times
13%
faster
@querymetrics @nicj
Performance data tells one story.
What about user engagement?
@querymetrics @nicj
Real-World Data: Session Length
52%
fewer
pages
@querymetrics @nicj
Real-World Data: Bounce Rate
Regular
AMP
58%
82%
@querymetrics @nicj
Real-World Data: Transitioning
Only 3-10% of AMP visitors transitioned to non-AMP URL
* Based on data from 3 sites
@querymetrics @nicj
Real-World Data: Referrers
@querymetrics @nicj
Real-World Data: Apps
Google Play Newsstand
Bing Search (Android)
@querymetrics @nicj
Conclusions
@querymetrics @nicj
Do we need AMP?
Downsides:
Hand-Tuning
CPP: https://timkadlec.com/2016/02/a-standardized-alternative-to-amp/
Facebook Instant Articles (analytics sandboxed)
@querymetrics @nicj
Future
Features we’d like to implement
@querymetrics @nicj
Thank You
https://slideshare.net/nicjansma/amp-does-it-really-make-your-site-faster
https://github.com/querymetrics/amp-analytics-demo
@querymetrics @nicj