Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading...

53
Progressive WordPress What does it take to succeed in the web, the WordPress way? Albeo Medina @ialbmedina Thierry Muller @tweetythierry

Transcript of Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading...

Page 1: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Progressive WordPressWhat does it take to succeed in

the web, the WordPress way?

Alberto Medina@ialbmedina

Thierry Muller@tweetythierry

Page 2: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Make the Web the premier platform for

experiencing the world’s information

Page 3: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Content Experience @ Google

Support the long-term success of the open web for content creators,

merchants, and advertisers

Page 4: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

The Conversion funnel

Acquire

Engage

Convert

Retain

The Successful Conversion funnel

● How do users discover you?

● How do users engage? ● What do they feel?

● Do they click on ads?● Do they subscribe?● Do they buy something?

● How many come back?● How often?

Page 5: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Acquire

Engage

Convert

Retain

The ideal funnelYour funnel

Search

Paid

Organic & Marketing

Discovery

Great content

Software Eng best practices

Page 6: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Acquire

Engage

Convert

Retain

The ideal funnelYour funnel

Progressive web dev

Software Eng best practices

Performance, Usability

Great content

Analytics

Search Console

A/B Testing

Page 7: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Acquire

Engage

Convert

Retain

Seamless Conversions

The ideal funnelYour funnel

Progressive web dev

Monetization

Subscriptions

Analytics

A/B Testing

e-commerce

Page 8: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Acquire

Engage

Convert

RetainRe-engage with Users

The ideal funnelYour funnel

A2HS & Push Notifications

Analytics

Great content

A/B Testing

Progressive web dev

Page 9: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Push Notifications

Add to Home Screen

Analytics

Great content

Search Console

Web Payments

Progressive web dev

Subscriptions

A/B Testing

Software Eng best practices

Organic andMarketing

Search

Monetization

Page 10: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Performance

Page 11: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Loading Performance(Start fast, stay fast)

Runtime Performance(no unresponsive pages)

Usability(no content displacement)

What is Performance

Page 12: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Users say speed is the most important element of good UX

The speed it takes to load a page

How easy it is to find what I'm looking for

How well the site fits my screen

How simple the site is to use

How attractive the sites looks

Source: Need for speed research, Google.

75%

66%

61%

58%

24%

Page 13: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

53% of users abandon a site that takes > 3s to load

-12% conversionsevery extra second

4s 5s 6s

Page Load Time (seconds)

3s

And they mean it!

Page 14: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

State of the Ecosystem

Page 15: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Performance in the Field

CrUX

● Real Chrome users

● UX performance

● UX metadata

● ~5M URLs from CrUX

● WPT and Lighthouse lab

● Desktop and mobile

Performance in the Lab

Page 16: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks
Page 17: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

First Contentful Paint

Page 18: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

First Contentful Paint: WordPress [Nov 2017 - May 2019]

Page 19: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Why are there so many slow

sites?

Page 20: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Reason #1: Web development is complex

Lazy loading

Async andDefer Image

optimization

Preloading

PerformanceBudgets

GPU-basedAnimations

CachingPolicies

Code Splitting

Micro Tasks

Web Workers

Input Debouncing

Code minimization

Compression

Code coverage

Minimize requests

Audit assets

Tree Shaking

Modern JS

Responsive Images

Image formats

Resource prioritization

Resource Hints

Preconnect

Prefetch

Web font loading

strategy

Critical path optimization

Inline critical styles

Defer and async

Service Workers

Page 21: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

High Res Image

Reason #2: there are conflicting incentives!

"Let's get all of our best content on the homepage"

"We need to understand our users from all aspects"

"High quality images drive engagement"

Page 22: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

A web components framework to easily create user-first websites

Page 23: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

github.com/ampproject

HTML JS CSS

AMP ⇒ Open Web

Page 24: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

AMP ⇒ No custom or 3P JS*

https://v8.dev/blog/cost-of-javascript-2019

HTML JS CSS

Page 25: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Asynchronous resource loading Static layout system

Inline and size-bound CSS Lazy loading and pre-connect API

Minimal style/layout recalcs GPU-accelerated animations

Resource prioritization Optimized analytics and reporting

Near-instant loading via pre-rendering

AMP ⇒ Software Eng Best Practices

Page 26: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Lazy-load non-critical content

Optimize tracking

Responsive design

Optimized image

AMP ⇒ Prioritize User Experience

Page 27: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Official AMP Plugin for WordPresswordpress.org/plugins/amp

Page 28: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

AMP-first WordPress Websites

Developer intervention

Assisted generation

Today

Manual Automated

Ecosystem Status Quo

Official AMP plugin for WordPress

diminishes as the ecosystem evolves

increases as the ecosystem evolves

Page 29: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Key Features of the AMP Plugin

Automate large parts of the process

Provide developer tools and guidance

Monitor and enforce AMP compatibility

Page 30: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

AMP-compatible Ecosystem

Plugins

Themes

Blocks

amp-wp.org

Page 31: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Engaging Capabilities

Page 32: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Web Web App Progressive Web App

Static content Interactive Features Native-App-like experience

Offline Browsing

Push notification

Prefetch resources

Access from Home Screen

Reliable, Fast, and Engaging

Better UX with Progressive Web Development

Page 33: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Good UX no matter the conditions

You are offline. Downloaded articles are available

vs.

Page 34: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Re-engage Users with Push Notifications

Your order has been delivered!

Web Push

Page 35: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Re-engage Users with Add-to-Home-Screen

Instant access

Lead the users to the content they

care about Order Status

Page 36: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Foundations[Part I ]

Capabilities[Part II ]

PWA in WordPress

Page 37: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

PWA Feature Plugin

HTTPS

Service Worker API

Web App Manifest

Page 38: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

wp.org/plugins/pwa

Part I: PWA Feature Project

Page 39: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Monitoring

Page 40: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Site Kit

The best of Google tools at your fingertips

Page 41: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Google Tools

AdSenseAnalyticsSearch Console

Page Speed Insights

Page 42: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Site Kit

Page 43: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks
Page 44: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

AMP Stories enable publishers to tell beautiful stories with full bleed videos and images

wordpress.org/plugins/amp

Page 45: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks
Page 46: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks
Page 47: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Recap Success entails... Content Strategy

Marketing

SEO

Performance

A/B TestingAnalytics

Monitoring

Monetization

Page 48: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

RevenueUser Engagement

Development & maintenance costs

Impact on Success

Page 49: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

The Road Ahead!

Page 50: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Progressive Themes Progressive Press

Bundles Registries Quality/ Ranking

The Road Ahead

Success Building Blocks

Page 51: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

WordPress.org Engagement

WordPress Core

EventsWordCampsGoogle I/OAMP ConfChrome Dev Summit

Bring Google expertise and make it available

XML SitemapsPWA Feature PluginNative Lazy Loading PluginGutenberg contributions

WordPress Ecosystem

Page 52: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

The Core Team

And...

Page 53: Make the Web - WordCamp Central · 2019. 9. 26. · Async and Defer Image optimization Preloading Performance Budgets GPU-based Animations Caching Policies Code Splitting Micro Tasks

Thank you!

Alberto Medina@ialbmedina

Thierry Muller@tweetythierry