DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3...

59
1 1 DRUPAL PERFORMANCE A Surgical Approach

Transcript of DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3...

Page 1: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�11�1

DRUPAL PERFORMANCE A Surgical Approach

Page 2: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�2

MARTIN@mandclu

ANDERSON-CLUTZ

Page 3: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�3

PERFORMANCE

Page 4: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

- Amazon - every 100ms of latency cost 1% in sales

- Shopzilla – speeding up their site by 5 seconds:

- conversion rate: +7-12%

- sessions from SEM: +100%

- required servers: -50%

- COOK - reducing page load time by 0.85 seconds increased conversions by 7%

SHOULD YOU CARE?

�4

Page 5: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

- Speed is a ranking factor

- Mobile since 9 Jul 2018

- Desktop since 2010

- Speed is a crawling factor

- Crawl budget

- Crawl rate

SPEED FOR SEO

�5

Page 6: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

SPEED VS RETENTION

�6

Boun

ce R

ate

(%)

0.0

15.0

30.0

45.0

60.0

Load Time (seconds)0 2.5 5 7.5 10

12.8%

20%

58%

Source: Akamai

Page 7: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

POTENTIAL FACTORS

�7

- Server - Code

- Number of modules

- Complexity of modules

- Custom code

- Configuration - Caching

- Assets

- Third-party assets and services

Page 8: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

A SURGICAL APPROACH

�8

Test

Diagnose

Operate

Monitor

Page 9: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�9

TEST

Page 10: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

DEFINE THE PROBLEM

�10

IDENTIFY Which pages

need attention?

ISOLATE Where in the

page(s) does it occur?

DELINEATE What can/can’t be changed in

the site?

Page 11: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

DELINEATE

�11

- “Nice to haves” vs. true requirements

- Remarketing pixels

- Social widgets

- Carousels

Page 12: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�12

http://shouldiuseacarousel.com/

Page 13: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�13

“Simplicity is the ultimate sophistication.”

Page 14: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

IDENTIFY - GOOGLE ANALYTICS

�14

Page 15: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

IDENTIFY - SCREAMING FROG

�15

Page 16: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

ISOLATE

�16

- Run detailed tests to determine where in each page the slowdown(s) occur:

- Page Load

- On-Site Assets

- 3rd Parties

Page 17: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�17

Page 18: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�18

Page 19: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�19

Page 20: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�20

DIAGNOSE

Page 21: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

PAGE LOAD

�21

Page 22: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

GO DEEP

�22

- Site Audit (contrib module/drush command)

- New Relic (commercial / free on Pantheon)

- Blackfire (commercial)

Page 23: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�23

Page 24: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�24

Page 25: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�25

Page 26: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�26

Page 27: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�27

Page 28: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�28

Page 29: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�29

Page 30: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�30

Page 31: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�31

Page 32: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

IMPROVING PAGE LOAD

�32

- Data - Remove external loads

- Views show SQL query, EXPLAIN

- Page Content - Break into more pages

- Keep markup clean

- Load hidden content via A JAX instead

Page 33: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

IMPROVING FIRST BYTE

�33

- Server - CPU, RAM

- PHP 7.1+

- Varnish

- Data Cache (APCu, etc.)

- Cache - Page caching

- Views output cache

- Views data cache

Page 34: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

MODULES!

�34

- Consider adding: - BigPipe

- Fast 404

- Syslog

- Purge

- Uninstall: - AS MANY AS POSSIBLE!

- Devel

- UI Modules

- Statistics

- Search?

- Database log(in favour of syslog)

- PHP Filter

Page 35: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

ON-SITE ASSETS

�35

Page 36: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

ON-SITE ASSETS

�36

- Images! - Keep small

- Responsive images esp. for banners

- Optimize

- Compress aggressively

- Lazy load

- CSS and JS - Use only what’s necessary

- Aggregate

- Compress and minify

- Render-blocking elements at end of page

- Content Delivery Network (CDN)

Page 37: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

GO DEEP

�37

- Lighthouse audit (Chrome)

- Page Speed Insights (Google)

Page 38: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�38

Page 39: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�39

Page 40: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�40

Page 41: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

MODULES!

�41

- Advanced Aggregation

- Responsive Image

- Image Optimize/Kraken

- Image Lazyloader

- CDN

Page 42: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

3RD PARTIES

�42

Page 43: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

3RD PARTIES

�43

- Use as few as possible

- or load on user interaction

- Cache and serve with local assets(ideally via CDN)

- Consider aggregator services, especially for social

- sharethis, addtoany, etc.

Page 44: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

MODULES

�44

- AddToAny

- Relocator (part of AdvAgg)

Page 45: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�45

OPERATE

Page 46: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

MAKE IT SO

�46

- Don’t do everything at once - Make changes in small increments

- Test and measure before and after deploying

- Iterate quickly

- Start with quick wins

Page 47: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

EFFORT VS IMPACT

�47ImpactLow High

Effort

Low

High

Page 48: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�48

MONITOR

Page 49: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

MONITOR

�49

- Performance metrics as part of site health

- CI integration

- New Relic

- Blackfire

- Sitespeed.io

- Modules:

- Monitoring

- Performance monitor

Page 50: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�50

Page 51: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�51

Page 52: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�52

Page 53: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

#DRUPALCONTRIBUTIONS

�53

Join us for contribution opportunities

Friday, April 12, 2019

Mentored Contributions

9:00-18:00 Room: 602

First Time Contributor Workshop

General Contributions

9:00-12:00 Room: 606

9:00-18:00 Room: 6A

Page 54: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

WHAT DID YOU THINK?

�54

Locate this session at the DrupalCon Seattle website: http://seattle2019.drupal.org/schedule

Take the Survey! https://www.surveymonkey.com/r/DrupalConSeattle

Page 55: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

<SHAMELESS PLUG>

�55

Page 56: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�56

COMMENTSQQUESTIONS

Page 57: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�57

THANKS!

Page 58: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�58

Page 59: DRUPAL PERFORMANCE · DRUPAL PERFORMANCE A Surgical Approach. 2 MARTIN @mandclu ANDERSON-CLUTZ. 3 PERFORMANCE-Amazon - every 100ms of latency cost 1% in sales -Shopzilla – speeding

�59