SlideShare a Scribd company logo
Optimising
www.rspb.org.uk
Where are we?
• Very nearly came a cropper over BGBW weekend
• Homepage intermittently unavailable
• ASP queue overwhelmed
• Content Broker overstretched
• Community very slow
• Website design has it’s roots in 2002
• Hardware at least 6 years old
How did we get here?
• Traffic increasing year on year
• Resource-hungry functionality more prevalent
• No time set aside for maintenance
• No understanding of real-world performance (until late 2009)
Visits: 2002 to present
300000
600000
900000
1200000
1500000
1800000
2100000
2004
2005
2006
2007
2009
2010
2008
7x
New
servers
January
2004
May
2010
Does it really matter?
• Increased user frustration = brand damage
• Higher exit rates = users dissatisfied
• Fewer page views = ineffective engagement
• Lower conversion rates = wasted ad spend
• No spare capacity = can’t capitalise on unexpected traffic
• Google now including speed in results algorithm (April 2010)
Best practice
• Follow W3C standards
• Use Cascading Style Sheets
• Optimise images
• Make as few requests as possible
• Reduce size of response as much as possible
• Optimise render time
Best practice today
• Zip plain text elements
• Cache binaries
• CSS Sprites
• Optimise server config
• Minify Javascript & CSS
• Compile Javascript
• Rendering more efficient
• Load Javascript last
• Pre-fetch elements
• Reduce cookie size
• Simplify HTML structure
• and plenty more...
Says who?
• Google and Yahoo publish guidelines
• The faster your site, the faster they can index it
• Some rules apply only to high-traffic sites
• Test with Firefox extensions - YSlow and Google Page Speed
YSlow
YSlow
YSlow
Our homepage E
HTTP requests 66
Requests on repeat visits 63
Total size 451Kb
Compression None
Domains 17
Javascript files 11
YSlow comparison
0
25
50
75
100
Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google
87
828080
77
7474
6867
6059
56
Scores collected in April 2010
We’re due a service
What can we improve?
Render
complete
Response time
Connected
to server
First byte
returned
Download
complete
DNS
resolved
SERVER-SIDE CLIENT-SIDE
Reduce number of requests
• Cache as much as possible (= no request at all)
• Combine multiple scripts into one request
• Combine multiple CSS files into one request
• Combine multiple images into one using CSS sprites
• Use CSS3 properties instead of images
Reduce size of response
• Zip plain text elements (shrinks files by 70%)
• Minify CSS
• Compile Javascript with Google Closure
• Reduce size of HTML DOM
• Use shorter IDs and Class names
• Re-use cached Javascript libraries to keep scripts lean (JQuery)
Improve render time
• Put CSS in the <head>
• Use <link> instead of @import
• Put Javascript at bottom (or delay scripts until onload)
• Smaller HTML DOM
• Avoid tables for layout
• Use CSS3 properties instead of images
Server-side changes
• All pages cached for 1 hour by default
• Redirects managed by IIRF instead of Content Broker
• Content Broker Event queries using new trigger table
• Minimise objects initialised
• Turn off ViewState
• Functions compiled into RSPB.Tridion.dll
Where are we now?
• Number of requests per page down 75% on average
(down 95% for repeat visitors)
• Average size of response down 30% (down 98% for repeat visitors)
• Render time as optimised as we can make it
• Response times dramatically improved
• But applications remain untouched
• ...and we still need new hardware
0
10
20
30
40
Bittern page
Loadtimeinseconds
0
12.5
25.0
37.5
50.0
Vacancies page
Loadtimeinseconds
0
15
30
45
60
Events page
Loadtimeinseconds
0
7.5
15.0
22.5
30.0
Homepage
Loadtimeinseconds
Our homepage C
HTTP requests 66 31
Requests on second visit 63 10
Total size 451Kb 196Kb
Compression Partial
Domains 17 11
Javascript files 11 5
YSlow scores
0
25
50
75
100
Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google
87
828080
77
7474
6867
6059
56
YSlow scores
0
25
50
75
100
Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google
87
828080
77
7474
6867
60
79
56
YSlow scores
0
25
50
75
100
Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google
87
828080
77
7474
6867
60
91
56
Vacancies homepage A
HTTP requests 16
Requests on second visit 4
Total size 113Kb (6Kb)
Compression Yes
Domains 2
Javascript files 3
What else can we do?
• Optimise IS-built applications
• Reserve hardware for www.rspb.org.uk only
• Use pre-fetching for predictable journeys
• Create development standards
• Creative Services Web Team and IS Web Developers should work
more closely - not in silos
References
• High Performance Websites
by Steve Souders
• Let’s make the web faster
http://code.google.com/speed
• Exceptional Performance
http://developer.yahoo.com/performance
Any questions?
If you think of anything afterwards:
graham.bird@rspb.org.uk
Extension 3248

More Related Content

PPTX
Top best django hosting providers
PPTX
Best asp.net hosting provider | Top hosting service provider 2019
PDF
Frontend performance on the web | Presentation @ecommercecamp 2019
PDF
Client Side Optimization
PPTX
Monitoring the Enterprise: Examples and Best Practices
PDF
Responsive images
PDF
Tis the Season to Scale
PDF
Browserscope oscon 2011
Top best django hosting providers
Best asp.net hosting provider | Top hosting service provider 2019
Frontend performance on the web | Presentation @ecommercecamp 2019
Client Side Optimization
Monitoring the Enterprise: Examples and Best Practices
Responsive images
Tis the Season to Scale
Browserscope oscon 2011

What's hot (20)

PPTX
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
PPTX
Office 365 + Azure service bus
KEY
Sharding
PPTX
Porting ASP.NET applications to Windows Azure
PDF
Performance Testing w/ WebPage Test Private Instance (DrupalCamp Ohio)
PDF
AEM/CQ Montreal User Group Meeting - March 25, 2015 - Takeaways from Adobe Su...
PPTX
Omeka.net, briefly
PPTX
MongoDB at Flight Centre Ltd
PDF
Azure App Configuration with .NET applications
PDF
Code Generation with giant CRUD
PDF
The Evolution of Hadoop at Stripe
PDF
Easy REST with OpenAPI
PPT
Aiki Framework in 32 Slides
PDF
10 EZ Steps to SOLR Domination - Berlin Buzzwords 2012
PPTX
Random thoughts on sql server performance
PDF
Static is just a cache
PPTX
Altitude SF 2017: Reddit - How we built and scaled r/place
PDF
Next Generation Web Development Techniques with Cloud Foundry
PDF
Ruby on Rails Workshop
PDF
Json usage and performance in sql server 2016
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
Office 365 + Azure service bus
Sharding
Porting ASP.NET applications to Windows Azure
Performance Testing w/ WebPage Test Private Instance (DrupalCamp Ohio)
AEM/CQ Montreal User Group Meeting - March 25, 2015 - Takeaways from Adobe Su...
Omeka.net, briefly
MongoDB at Flight Centre Ltd
Azure App Configuration with .NET applications
Code Generation with giant CRUD
The Evolution of Hadoop at Stripe
Easy REST with OpenAPI
Aiki Framework in 32 Slides
10 EZ Steps to SOLR Domination - Berlin Buzzwords 2012
Random thoughts on sql server performance
Static is just a cache
Altitude SF 2017: Reddit - How we built and scaled r/place
Next Generation Web Development Techniques with Cloud Foundry
Ruby on Rails Workshop
Json usage and performance in sql server 2016
Ad

Similar to Optimising the RSPB website (2011) (20)

KEY
Speed is Essential for a Great Web Experience
PDF
Speed Up Wordpress, Wordpress Horsepower
PDF
A little journey into website optimization
PDF
Joomla Site Optimization
PPTX
Optimizing Your WordPress Site: Why speed matters, and how to get there
PPT
The Need For Speed
PDF
Is your website's speed letting you down?
PPTX
The Need for Speed - SMX Sydney 2013
PDF
SearchLeeds 2019 - Polly Pospelova - How to hack rankings with page speed opt...
PDF
Speed is Essential for a Great Web Experience (Canvas Conf Version)
PDF
High Performance Websites
PDF
Web Performance Optimisation
PPTX
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
KEY
Faster Frontends
PDF
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
PDF
How to hack rankings with page speed optimisation
PDF
Performance automation 101 @LDNWebPerf MickMcGuinness
PPTX
Speed up your site! #wcmtl2015 by Meagan Hanes
PPTX
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
PPT
Performance engineering
Speed is Essential for a Great Web Experience
Speed Up Wordpress, Wordpress Horsepower
A little journey into website optimization
Joomla Site Optimization
Optimizing Your WordPress Site: Why speed matters, and how to get there
The Need For Speed
Is your website's speed letting you down?
The Need for Speed - SMX Sydney 2013
SearchLeeds 2019 - Polly Pospelova - How to hack rankings with page speed opt...
Speed is Essential for a Great Web Experience (Canvas Conf Version)
High Performance Websites
Web Performance Optimisation
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
Faster Frontends
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
How to hack rankings with page speed optimisation
Performance automation 101 @LDNWebPerf MickMcGuinness
Speed up your site! #wcmtl2015 by Meagan Hanes
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
Performance engineering
Ad

Recently uploaded (20)

PPTX
1. Introduction to Computer Programming.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
A Presentation on Touch Screen Technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
TLE Review Electricity (Electricity).pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Getting Started with Data Integration: FME Form 101
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
August Patch Tuesday
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
cloud_computing_Infrastucture_as_cloud_p
1. Introduction to Computer Programming.pptx
A Presentation on Artificial Intelligence
A Presentation on Touch Screen Technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Encapsulation theory and applications.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MIND Revenue Release Quarter 2 2025 Press Release
A novel scalable deep ensemble learning framework for big data classification...
DP Operators-handbook-extract for the Mautical Institute
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
A comparative study of natural language inference in Swahili using monolingua...
TLE Review Electricity (Electricity).pptx
NewMind AI Weekly Chronicles - August'25-Week II
Getting Started with Data Integration: FME Form 101
Zenith AI: Advanced Artificial Intelligence
August Patch Tuesday
Univ-Connecticut-ChatGPT-Presentaion.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
cloud_computing_Infrastucture_as_cloud_p

Optimising the RSPB website (2011)

  • 2. Where are we? • Very nearly came a cropper over BGBW weekend • Homepage intermittently unavailable • ASP queue overwhelmed • Content Broker overstretched • Community very slow • Website design has it’s roots in 2002 • Hardware at least 6 years old
  • 3. How did we get here? • Traffic increasing year on year • Resource-hungry functionality more prevalent • No time set aside for maintenance • No understanding of real-world performance (until late 2009)
  • 4. Visits: 2002 to present 300000 600000 900000 1200000 1500000 1800000 2100000 2004 2005 2006 2007 2009 2010 2008 7x New servers January 2004 May 2010
  • 5. Does it really matter? • Increased user frustration = brand damage • Higher exit rates = users dissatisfied • Fewer page views = ineffective engagement • Lower conversion rates = wasted ad spend • No spare capacity = can’t capitalise on unexpected traffic • Google now including speed in results algorithm (April 2010)
  • 6. Best practice • Follow W3C standards • Use Cascading Style Sheets • Optimise images • Make as few requests as possible • Reduce size of response as much as possible • Optimise render time
  • 7. Best practice today • Zip plain text elements • Cache binaries • CSS Sprites • Optimise server config • Minify Javascript & CSS • Compile Javascript • Rendering more efficient • Load Javascript last • Pre-fetch elements • Reduce cookie size • Simplify HTML structure • and plenty more...
  • 8. Says who? • Google and Yahoo publish guidelines • The faster your site, the faster they can index it • Some rules apply only to high-traffic sites • Test with Firefox extensions - YSlow and Google Page Speed
  • 10. YSlow
  • 11. YSlow
  • 12. Our homepage E HTTP requests 66 Requests on repeat visits 63 Total size 451Kb Compression None Domains 17 Javascript files 11
  • 13. YSlow comparison 0 25 50 75 100 Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google 87 828080 77 7474 6867 6059 56 Scores collected in April 2010
  • 14. We’re due a service
  • 15. What can we improve? Render complete Response time Connected to server First byte returned Download complete DNS resolved SERVER-SIDE CLIENT-SIDE
  • 16. Reduce number of requests • Cache as much as possible (= no request at all) • Combine multiple scripts into one request • Combine multiple CSS files into one request • Combine multiple images into one using CSS sprites • Use CSS3 properties instead of images
  • 17. Reduce size of response • Zip plain text elements (shrinks files by 70%) • Minify CSS • Compile Javascript with Google Closure • Reduce size of HTML DOM • Use shorter IDs and Class names • Re-use cached Javascript libraries to keep scripts lean (JQuery)
  • 18. Improve render time • Put CSS in the <head> • Use <link> instead of @import • Put Javascript at bottom (or delay scripts until onload) • Smaller HTML DOM • Avoid tables for layout • Use CSS3 properties instead of images
  • 19. Server-side changes • All pages cached for 1 hour by default • Redirects managed by IIRF instead of Content Broker • Content Broker Event queries using new trigger table • Minimise objects initialised • Turn off ViewState • Functions compiled into RSPB.Tridion.dll
  • 20. Where are we now? • Number of requests per page down 75% on average (down 95% for repeat visitors) • Average size of response down 30% (down 98% for repeat visitors) • Render time as optimised as we can make it • Response times dramatically improved • But applications remain untouched • ...and we still need new hardware
  • 25. Our homepage C HTTP requests 66 31 Requests on second visit 63 10 Total size 451Kb 196Kb Compression Partial Domains 17 11 Javascript files 11 5
  • 26. YSlow scores 0 25 50 75 100 Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google 87 828080 77 7474 6867 6059 56
  • 27. YSlow scores 0 25 50 75 100 Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google 87 828080 77 7474 6867 60 79 56
  • 28. YSlow scores 0 25 50 75 100 Nat Trust RSPB BT BTO WWF WT BBC YouTube Yahoo Tesco Amazon Google 87 828080 77 7474 6867 60 91 56
  • 29. Vacancies homepage A HTTP requests 16 Requests on second visit 4 Total size 113Kb (6Kb) Compression Yes Domains 2 Javascript files 3
  • 30. What else can we do? • Optimise IS-built applications • Reserve hardware for www.rspb.org.uk only • Use pre-fetching for predictable journeys • Create development standards • Creative Services Web Team and IS Web Developers should work more closely - not in silos
  • 31. References • High Performance Websites by Steve Souders • Let’s make the web faster http://code.google.com/speed • Exceptional Performance http://developer.yahoo.com/performance
  • 32. Any questions? If you think of anything afterwards: graham.bird@rspb.org.uk Extension 3248