WordPress
Optimization



  WordPress Optmization
          Ben Metcalfe | Co-founder, WP Engine
            @dotBen | ben@wpengine.com



     San Francisco WordPress Meetup – April 23rd 2012
WordPress
Optimization
WordPress
Optimization
WordPress
Optimization


      Before we begin…
WordPress
Optimization


                   Why?
 •   Um, why not?
 •   Keep readers/customers happy!
 •   Stay up under heavy load
 •   Save $$$
WordPress
Optimization


                 Level 1
       Let‟s get the basics out the way :)
WordPress
Optimization


     Keep WP up to date
               Why wouldn‟t you?
WordPress
Optimization


   Caching plugins FTW!!
               W3-Total-Cache

        also: WPSuperCache, BatCache
WordPress
Optimization
      Deactivate unused
           plugins
      + delete plugins you don‟t use at all
WordPress
Optimization


       Avoid bad plugins
     Include (but not limited to)
     • backupwordpress
     • backwpup
     • broken-link-checker
     • dynamic-related-posts
     • file-commander
     • google-sitemap-generator
     • LinkMan (MyReviewPlugin Link Man)
     • MyRP (MyReviewPlugin)
     • wp-symposium-alerts
WordPress
Optimization


       Review your theme
 HTML
 • does it validate?
 • CSS at the top, JS at the bottom (not inline)

 PHP
 • Any weird code (if it looks bad, it probably is)
 • file_get_contents() / fgets()
WordPress
Optimization


       Is your host slow?
WordPress
Optimization


               Level 2
WordPress
Optimization


  Offloading (poor-mans CDN)
         Serve images via Flickr/etc
WordPress
Optimization
 Feedburn your RSS feed

   How many requests to your blog are /feed?
WordPress
Optimization


  Repair your MySQL DB
    Sometimes you need to tidy your room :)

     PHPMyAdmin, OptimizeDB, manually
WordPress
Optimization
      Load from multiple sub-
             domains
                    good:
  foo1.yourdomain.com, foo2.yourdomain.com

                    better:
  foo1.otherdomain.com, foo2.otheromain2.com
WordPress
Optimization


       Browser Caching
            HTTP Cache-Control
              Expires headers
                Entity Tags

      (W3-Total-Cache, WPSuperCache)
WordPress
Optimization


               Level 3
        Mostly assumes SSH access
WordPress
Optimization
       Log slow MySQL
           queries
  Good HOWTO: http://hackmysql.com/nontech
WordPress
Optimization


 Check site with Profile Tools
                  WP-Tuner
                WPDB Profiling
         http://speed.wpengine.com
                    YSlow
WordPress
Optimization


                      CDN
        MaxCDN (we use parent company @ WP Engine)
           Amazon CloudFront
              CloudFlare

     Use all the time or just „emergencies‟
WordPress
Optimization


    „Smush‟ your images
               WPSmush.it plugin
WordPress
Optimization


  Opcode cache, eg APC
         php-apc + W3-Total-Cache
WordPress
Optimization


    Apache optimizations
       Disable .htaccess, use httpd.conf
WordPress
Optimization
    Dedicated MySQLDB
            Box
WordPress
Optimization


                 Level 4
               Hitting the big time
WordPress
Optimization
     Reverse-proxy with
           nginx
           Run Apache on port 8080
                Cache statics
    (good HOWTO on wp-performance.com)
WordPress
Optimization


          Varnish cache
     Save/server static pages to/from disk
      Ideally don‟t run Varnish on port 80,
               Avoid cookie issues
WordPress
Optimization


            Memcache
       Cache WordPress Object Cache
    Memcached plugin + PECL memcache
                  extension
    Ideally run Memcache on separate box

    wp-memcached-manager – admin plugin
WordPress
Optimization


               HyperDB
            Replaces wpdb class
          Multiple database servers
     Replication + failover for redundancy
             Partitioning for scale
WordPress
Optimization


           Boss Level
WordPress
Optimization
   Static site on Amazon
              S3
           “Movable Type” Model
             100% Static site
WordPress
Optimization


               #Fails
WordPress
Optimization


    DON‟T edit core files!
 No matter what “performance” benefit you think
                  it will make!
WordPress
Optimization


         Amazon EC2
           … isn‟t a silver bullet
WordPress
Optimization
          Thank you!

          ben@wpengine.com
          http://wpengine.com
WordPress
Optimization
                  Q&A



           or email: ben@wpengine.com

Optimizing WordPress - WordPress SF Meetup April 2012