Top Banner
May 13, 2015 Maximizing Site Speed with Mercy Corps #mercyspeed 1
44
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Maximizing site speed with mercy corps

May 13, 2015

Maximizing Site Speed with Mercy Corps#mercyspeed

1

Page 2: Maximizing site speed with mercy corps

Nice to Meet You!

Nice to meet you!

John BrandenburgDeveloper, Forum One

@johnbburg

Drew BettsUX Designer, Mercy Corps

2

Page 3: Maximizing site speed with mercy corps

3

Page 4: Maximizing site speed with mercy corps

Representative Clients 4

Page 5: Maximizing site speed with mercy corps

5

Page 6: Maximizing site speed with mercy corps

Partnership with Forum OneOur support services are designed to drive consistent long-term progress toward your organizational goals.

● Dedicated team of developers, themers, quality assurance testers, and project managers are available to help support your web presence.

● Bi-annual strategic planning workshops to discuss current business imperatives and audience needs that inform and drive future work.

● Quarterly retainer support for sprint-based development and as-needed ticket-based support.

● Fully managed hosting services with 24/7 on-call site support, 365 days a year.

6

Page 7: Maximizing site speed with mercy corps

Who is Mercy Corps?

7

Page 8: Maximizing site speed with mercy corps

Responding to Emergencies

8

Page 9: Maximizing site speed with mercy corps

Building Back Better

9

Page 10: Maximizing site speed with mercy corps

Why is Site Speed Important?10

Page 11: Maximizing site speed with mercy corps

Introduction to speed

11

Page 12: Maximizing site speed with mercy corps

Mobile was worse

12

Page 13: Maximizing site speed with mercy corps

Conversion rateFor every one second of improvement in load time, they experienced up to a 2% increase in conversions

For every 100 milliseconds of improvement, incremental revenues grew by up to 1%

Source: Walmart

13

Page 14: Maximizing site speed with mercy corps

Other negative effects● Negatively impacts SEO● Lowers perceived credibility and quality● Frustrates users● Increases bailout rate

14

Page 15: Maximizing site speed with mercy corps

Evaluating Performance & Engagement

15

Page 16: Maximizing site speed with mercy corps

What is Site Speed?

Evaluating Performance and Engagement

How fast a page loads (load time)How fast a page appears to load (start render)

● Page load● Time to first byte● Start render

16

Page 17: Maximizing site speed with mercy corps

It’s actually a pretty complex subject

Evaluating Performance and Engagement

● DNS Address Lookup● Establishing a Connection● CMS response time● Executing Javascript● Image optimization● Server environment● Downloading assets● Caching

17

Page 18: Maximizing site speed with mercy corps

Tools: What you need

Evaluating Performance and Engagement

● Analyze your page structure/behavior.● How optimized are your assets.● Load testing.

18

Page 19: Maximizing site speed with mercy corps

What we used

Evaluating Performance and Engagement

● WebPageTest.org● Google PageSpeed Insights● Apache Benchmark● New Relic● Google Analytics

Future consideration: JMeter

19

Page 20: Maximizing site speed with mercy corps

Script is available on GitHub

Evaluating Performance and Engagement

https://github.com/johnbburg/performance-testing

Content engagement script herehttp://cutroni.com/blog/2014/02/12/advanced-content-tracking-with-universal-analytics/

20

Page 21: Maximizing site speed with mercy corps

Process

21

Page 22: Maximizing site speed with mercy corps

Process

Process

1. Choose metrics and tests2. Decide on changes and prioritize3. Establish baseline 4. Develop and apply changes5. Measure6. Repeat

22

Page 23: Maximizing site speed with mercy corps

Metrics and tests

Process

1. Page load speed2. Conversion rate3. Engagement rate4. Response time (Apache)

23

Load

Begin

25%

50%

75%

100%

Page 24: Maximizing site speed with mercy corps

What to Improve?

24

Page 25: Maximizing site speed with mercy corps

Before we begin, here are some easy wins

Maximizing Performance

Page Cache for Anonymous Users

CSS/JS Aggregation and Page compression

See my blog post on forumone.com

25

Page 26: Maximizing site speed with mercy corps

Improvements for Mercy Corps

What to Improve?

1. Enable Views Caching2. Get Page Cache to be consistent3. Implement Memcache as the back-end

cache

26

Page 27: Maximizing site speed with mercy corps

First Measure: Views Caching

Maximizing Performance 27

Page 28: Maximizing site speed with mercy corps

10 Users 50 Users

Views Cache Disabled Vs. Enabled: Homepage

28

Page 29: Maximizing site speed with mercy corps

Page cache debugging

Maximizing Performance

Cached pages were served in an erratic way.

Use of the $_SESSION variable.

Expiration changed from 5 minutes to 1 hour.

29

Page 30: Maximizing site speed with mercy corps
Page 31: Maximizing site speed with mercy corps

Maximizing Performance

Second Measure: Memcache

31

Page 32: Maximizing site speed with mercy corps

Bonus: Entity Cache

Maximizing Performance 32

Page 33: Maximizing site speed with mercy corps

Impact

Maximizing Performance

Simulated load tests show Time to first byte went from 4.5 s to 1.5 s on the Donation page.

33

Page 34: Maximizing site speed with mercy corps

Responding in Nepal

Maximizing Performance

On April 26th, 2015, a 7.8 magnitude earthquake struck Nepal.

Another 7.3 earthquake struck Tuesday morning.

34

Page 35: Maximizing site speed with mercy corps

Responding in Nepal

Maximizing Performance

Traffic spiked over the weekend to 30-40x normal levels.

35

116,0004,000

Page 36: Maximizing site speed with mercy corps

Responding in Nepal

Maximizing Performance 36

Page 37: Maximizing site speed with mercy corps

Responding in Nepal

Maximizing Performance 37

Page 38: Maximizing site speed with mercy corps

DesktopResults

Before:

Load time

-1.344s

After:

First Byte

- 0.648sStart render

-0.744sVisually complete

-6.4sImpact:

38

Page 39: Maximizing site speed with mercy corps

MobileResults

Before:

Load time

-2.879s

After:

Start render

-2.516sImpact: Visually complete

0s

39

Page 40: Maximizing site speed with mercy corps

Content engagement - Haiyan & Nepal

40

-10.3%

-5.21%

-8.91%

+.08%

-8.85%

Page 41: Maximizing site speed with mercy corps

Content engagementBaseline vs. all changes

41

After changes41% of people reached 100%

Baseline46% of people reached 100%

Page 42: Maximizing site speed with mercy corps

Conversion rate Nepal earthquake

4/22/15 - 5/6/15Typhoon Haiyan

11/8/13 - 11/22/13

42

Baseline

5.57%2.83%3.11%

3.05%1.09%2.66%

Page 43: Maximizing site speed with mercy corps

For the future

Maximizing Performance

● Deferred Javascript● Varnish● Image compression● Spriting

43

Page 44: Maximizing site speed with mercy corps

Thank you!Q&A

44