SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

The Evolution of Hadoop at Stripe
The Evolution of Hadoop at StripeThe Evolution of Hadoop at Stripe
The Evolution of Hadoop at Stripe
Colin Marc
 

Tendances (20)

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

Similaire à Optimising the RSPB website (2011)

How_To_Soup_Up_Your_Farm
How_To_Soup_Up_Your_FarmHow_To_Soup_Up_Your_Farm
How_To_Soup_Up_Your_Farm
Nigel Price
 
Website Performance
Website PerformanceWebsite Performance
Website Performance
Hugo Fonseca
 

Similaire à Optimising the RSPB website (2011) (20)

10 things you can do to speed up your web app today stir trek edition
10 things you can do to speed up your web app today   stir trek edition10 things you can do to speed up your web app today   stir trek edition
10 things you can do to speed up your web app today stir trek edition
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!
 
How_To_Soup_Up_Your_Farm
How_To_Soup_Up_Your_FarmHow_To_Soup_Up_Your_Farm
How_To_Soup_Up_Your_Farm
 
SharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceSharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 Performance
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceSharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 Performance
 
10 Things You Can Do to Speed Up Your Web App Today
10 Things You Can Do to Speed Up Your Web App Today10 Things You Can Do to Speed Up Your Web App Today
10 Things You Can Do to Speed Up Your Web App Today
 
Page Performance
Page PerformancePage Performance
Page Performance
 
Web Performance Optimization (WPO)
Web Performance Optimization (WPO)Web Performance Optimization (WPO)
Web Performance Optimization (WPO)
 
Website Performance
Website PerformanceWebsite Performance
Website Performance
 
Optimize for speed by Martyn Birch
Optimize for speed by Martyn BirchOptimize for speed by Martyn Birch
Optimize for speed by Martyn Birch
 
SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)
 
Why your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itWhy your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix it
 
Why your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itWhy your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix it
 
Mage uk-2013-1345-chris-wells-131030120920-phpapp01
Mage uk-2013-1345-chris-wells-131030120920-phpapp01Mage uk-2013-1345-chris-wells-131030120920-phpapp01
Mage uk-2013-1345-chris-wells-131030120920-phpapp01
 
The Importance of Site Performance and Simple Steps to Achieve It
The Importance of Site Performance and Simple Steps to Achieve ItThe Importance of Site Performance and Simple Steps to Achieve It
The Importance of Site Performance and Simple Steps to Achieve It
 
How and Why ($) to improve web performance.pdf
How and Why ($) to improve web performance.pdfHow and Why ($) to improve web performance.pdf
How and Why ($) to improve web performance.pdf
 
Lessons Learned from Using Next.js in Production
Lessons Learned from Using Next.js in ProductionLessons Learned from Using Next.js in Production
Lessons Learned from Using Next.js in Production
 
Web Components at Scale, HTML5DevConf 2014-10-21
Web Components at Scale, HTML5DevConf 2014-10-21Web Components at Scale, HTML5DevConf 2014-10-21
Web Components at Scale, HTML5DevConf 2014-10-21
 
How do you speed up your (Wordpress) website?
How do you speed up your (Wordpress) website?How do you speed up your (Wordpress) website?
How do you speed up your (Wordpress) website?
 

Dernier

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

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