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.
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
Cloudfront savings
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