WordPress Performance
Timothy Wood @codearachnid
www.ImagineSimplicity.com || www.codearachnid.com
How do you percieve performance?
Change behavior to influence perception

Percieved Performance:   Actual Performance:
Responsive               ● Optimize
● Feedback               ● Cache
● Progressive            ● Minimize
● Escape or Distract     ● Workflow
● Describe
Low hanging fruit for WordPress:
● Frontend
   ○ Minimize
   ○ Sprites
● Caching
  ○ Asset delivery
  ○ Chunking
● Application
  ○ Theme
  ○ Plugins
● Server Setups
   ○ OS choice & tweaking
Battle of the brawn



●   Process based       ●   Event based
●   Req increase RAM    ●   RAM use is stable
●   Gobs of features    ●   Speed > features
●   More use cases      ●   no .htaccess
Like Apache, Nginx has all the features you
would expect from a leading Web server. It is
stable, secure and very easy to configure.
Real world comparisons:


                                        9794 req/5 min
                                        32 req/second
                                        Only site on fresh VPS install,
                                        with minimal graphics, scripts,
                                        css.




                                        17479 req/5 min
                                        60 req/second
                                        One of several sites on VPS,
                                        photographer portofolio, heavy
Stress tests by http://loadimpact.com   graphics, minimal scripts & css.
Real world comparisions (cont.):
But wait... There's more!
  - WP Plugin: nginx Compatibility

  - Pretty URLS:

     /etc/nginx/sites-available/nginx.conf

     if (!-e $request_filename) {
          rewrite ^ /index.php last;
     }




                                             Performance
Tips for optimizing application layer
Theme:                   Plugins:
● Simplify & Reduce      ● Delete Unused
                         ● Combine Functionality
● Keep Code Updated
                         ● Avoid Bad Plugins
● Repair MySQL DB
● Log Slow Queries
● Move CSS to top &
  Javascript to bottom
Caching with static content + CDN
Plugins:              Benefit:
● W3TC                ● At least 10x
                        improvement in site
● WP Super Cache
                        performance
● Hyper Cache         ● “Instant” second page
● DB Cache Reloaded     views
                      ● Reduced page load time
                      ● Improved web server
CDN:                    performance
● Amazon S3 &         ● Up to 80% Bandwidth
                        savings
  Cloudfront
W3 Total Cache (setup walkthrough)
1. Sign-up for Amazon S3 & Cloudfront
2. Install W3 Total Cache Plugin within
   WordPress
3. Follow W3 Total Cache Instructions within
   WordPress admin panel
4. Log in to Cloudfront control panel and create
   a Distribution for your newly created bucked
CDN explained & expounded
A content delivery network or content
distribution network (CDN) is a system of
computers containing copies of data placed at
various nodes of a network.
* The optimal number is somewhere between 1 and 5 hosts (1 main host plus 4
hosts on which to parallelize cacheable resources). As a rule of thumb, you
shouldn't use more than 1 host for fewer than 6 resources; fewer than 2
resources on a single host is especially wasteful. It should never be necessary
to use more than 5 hosts (not counting hosts serving resources over which you
have no control, such as ads). (source: Google Page Speed)
Interface polish & performance
●   Yslow, Page Speed, Speed Tracer
●   Minify and combine all CSS and JavaScript
●   gZip, image sprites, smush.it
●   Cleanup your markup
●   Improve wait messaging
What did we learn?
●   Build on a good foundation
●   Pull the weeds of unnecessary code
●   Optimize browser rendering
●   Minimize request overhead
●   Minimize round-trip times
●   Minimize payload size
●   Optimize caching
●   Change perception
Find me online:

@CODEARACHNID

WordCamp RVA

  • 1.
    WordPress Performance Timothy Wood@codearachnid www.ImagineSimplicity.com || www.codearachnid.com
  • 2.
    How do youpercieve performance?
  • 3.
    Change behavior toinfluence perception Percieved Performance: Actual Performance: Responsive ● Optimize ● Feedback ● Cache ● Progressive ● Minimize ● Escape or Distract ● Workflow ● Describe
  • 4.
    Low hanging fruitfor WordPress: ● Frontend ○ Minimize ○ Sprites ● Caching ○ Asset delivery ○ Chunking ● Application ○ Theme ○ Plugins ● Server Setups ○ OS choice & tweaking
  • 5.
    Battle of thebrawn ● Process based ● Event based ● Req increase RAM ● RAM use is stable ● Gobs of features ● Speed > features ● More use cases ● no .htaccess Like Apache, Nginx has all the features you would expect from a leading Web server. It is stable, secure and very easy to configure.
  • 6.
    Real world comparisons: 9794 req/5 min 32 req/second Only site on fresh VPS install, with minimal graphics, scripts, css. 17479 req/5 min 60 req/second One of several sites on VPS, photographer portofolio, heavy Stress tests by http://loadimpact.com graphics, minimal scripts & css.
  • 7.
  • 8.
    But wait... There'smore! - WP Plugin: nginx Compatibility - Pretty URLS: /etc/nginx/sites-available/nginx.conf if (!-e $request_filename) { rewrite ^ /index.php last; } Performance
  • 9.
    Tips for optimizingapplication layer Theme: Plugins: ● Simplify & Reduce ● Delete Unused ● Combine Functionality ● Keep Code Updated ● Avoid Bad Plugins ● Repair MySQL DB ● Log Slow Queries ● Move CSS to top & Javascript to bottom
  • 10.
    Caching with staticcontent + CDN Plugins: Benefit: ● W3TC ● At least 10x improvement in site ● WP Super Cache performance ● Hyper Cache ● “Instant” second page ● DB Cache Reloaded views ● Reduced page load time ● Improved web server CDN: performance ● Amazon S3 & ● Up to 80% Bandwidth savings Cloudfront
  • 11.
    W3 Total Cache(setup walkthrough) 1. Sign-up for Amazon S3 & Cloudfront 2. Install W3 Total Cache Plugin within WordPress 3. Follow W3 Total Cache Instructions within WordPress admin panel 4. Log in to Cloudfront control panel and create a Distribution for your newly created bucked
  • 12.
    CDN explained &expounded A content delivery network or content distribution network (CDN) is a system of computers containing copies of data placed at various nodes of a network. * The optimal number is somewhere between 1 and 5 hosts (1 main host plus 4 hosts on which to parallelize cacheable resources). As a rule of thumb, you shouldn't use more than 1 host for fewer than 6 resources; fewer than 2 resources on a single host is especially wasteful. It should never be necessary to use more than 5 hosts (not counting hosts serving resources over which you have no control, such as ads). (source: Google Page Speed)
  • 13.
    Interface polish &performance ● Yslow, Page Speed, Speed Tracer ● Minify and combine all CSS and JavaScript ● gZip, image sprites, smush.it ● Cleanup your markup ● Improve wait messaging
  • 14.
    What did welearn? ● Build on a good foundation ● Pull the weeds of unnecessary code ● Optimize browser rendering ● Minimize request overhead ● Minimize round-trip times ● Minimize payload size ● Optimize caching ● Change perception
  • 15.