$30 off During Our Annual Pro Sale. View Details »

Ben May: Working with massive WordPress sites, clients and enterprise

Ben May: Working with massive WordPress sites, clients and enterprise

Slow websites are bad and as websites grow in traffic, slow websites get slower. It’s often a wise move to invest a small amount of time in the early stages of a site’s life to think about performance and scaling. How you can work with larger sites when it comes to caching, file management (version control), SQL performance and front-end optimisation.

WP Australia

April 27, 2013

More Decks by WP Australia

Other Decks in Technology


  1. Working with massive WordPress sites, clients and enterprise Ben May

    benmay.org @benjmay
  2. Who am I & What do I do

  3. I am not an expert (ProTip: don’t listen to what

    I say)
  4. What am I good at?

  5. 1% 5% 10% 10% 30% 45% Backend Dev Sysadmin Design

    (Critic) Frontend Dev Project Manager Designer (Pixel Pusher) If I was a pie chart
  6. None
  7. What is “enterprise” (to me)?

  8. 2 types of enterprise 1. Corporate enterprise 2. Enterprise performance

  9. The road to happiness 1. Servers and networks 2. Server

    side & code caching 3. Plugins or DIY? 4. Themes 5. ? 6. Profit
  10. Firstly, how I do it 1. Batcache (advanced-cache.php) 2. APC

    or Memcached (object-cache.php) 3. Git on Beanstalk w/ auto deployments 4. Mark Jaquith’s skeleton 5. Basecamp (todo manager) 6. EdgeCast CDN (Origin Pull)
  11. None
  12. Servers and networks

  13. Understand how a server works

  14. You don’t need to be an expert at everything

  15. ProTip: Get NewRelic

  16. When things go well

  17. When things don’t go well

  18. When things go slow

  19. ProTip: Use CDNs Origin Pull FTW.

  20. None
  21. “Managed WordPress Hosting”

  22. None
  23. Server-side & code caching

  24. WP-Cron sucks

  25. NewRelic background tasks - use ‘em

  26. None
  27. Default transient usage sucks <?php // Get any existing copy

    of our transient data if ( false === ( $blah = get_transient( 'blah' ) ) ) { // It wasn't there, so regenerate the data and // save the transient $blah = new WP_Query( 'cat=5' ); set_transient( 'blah', $blah ); } // Use $blah like you would have normally... codex.wordpress.org/Function_Reference/get_transient
  28. None
  29. Plugins or DIY?

  30. Simple, single use plugins

  31. Dependancies SUCK

  32. None
  33. Themes

  34. None
  35. None
  36. Caching problems

  37. Melbourne Cup 2012

  38. By 9am - 40,000 page impressions Peaked at 20,000 requests

    per second 1m+ page views for the day 250,000+ uniques for the day Twice the amount of traffic than Fox Sports* * According to the measurement company Effective Measure
  39. As a media publisher, you live for the moment when

    you get MASSIVE traffic like this...... You love this moment, but also in the back of your mind is the fear your site will not be able to handle the demand. “ ~ Zac Zavos The Roar conversant-media.com
  40. Thank you benmay.org @benjmay