speeding up your wordpress site - wordcamp hamilton 2015
TRANSCRIPT
![Page 1: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/1.jpg)
Speed up your WordPress siteAlan Lok - WirelessLinx Inc.
![Page 2: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/2.jpg)
Motivations
User experience1
Search engine optimization2
Your wallet
Less on-call issues!
1: http://www.webperformancetoday.com/2012/02/28/4-awesome-slides-showing-how-page-speed-correlates-to-business-metrics-at-walmart-com/ 2: http://googlewebmastercentral.blogspot.ca/2010/04/using-site-speed-in-web-search-ranking.html
![Page 3: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/3.jpg)
What is a LAMP stack
Database PHP Engine
Your app
Operating System
Web Server
Performance gains can be found in each layer
Reverse Proxy
Cache
![Page 4: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/4.jpg)
Internal Tune-upsDigging into your WordPress site to make it better
![Page 5: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/5.jpg)
The simple stuff
Update your plugins
Remove unused themes and plugins
404 errors
![Page 6: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/6.jpg)
WordPress plugins to speed things up
W3 Total Cache
Super Cache
Zen Cache
![Page 7: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/7.jpg)
Different caches in WordPress coreObject Cache
wp_cache_get/wp_cache_set/wp_cache_delete
Backing onto a object cache library (memcached, Redis, APCu…)
Transcient Data
set_transient/get_transient/delete_transient
Saving data into database that is available to all instances
Both stores have a concept of timeout and developer-managed hit/miss management
![Page 8: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/8.jpg)
Object Cache - Efficiency vs Coherency
Efficiency:
reduce number of calls to your cache (or do a multi-get/set)
avoid remote cache if possible
Coherency
clustered cache allows for easier cache invalidation
Understand how cache works - cache makes debugging harder
![Page 9: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/9.jpg)
Reduce and increase reuseLower number of HTTP requests
Combine CSS/JS files or inline them
Data URI
CSS sprites
Lower size of response
HTML/JS/CSS minification
Image optimization (eg. ImageOptim)
Reuse JS and CSS file for whole site where possible
Personalization with AJAX
![Page 10: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/10.jpg)
Profile your applicationAnalyze your application with a PHP profiler such as BlackFire or xdebug/cachegrind
Look for high number of apply_filters, mysql calls, and wp_cache_get
![Page 11: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/11.jpg)
Profile your DOMMake your page render faster too
![Page 12: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/12.jpg)
Database
Check your slow query log
Modify my.cnf to add general-log and start seeing all database queries per page
Reduce plugins or modify code if possible to reduce queries
Try to “explain” your query
![Page 13: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/13.jpg)
PSA: Signs of hacking
Check integrity of site and your VPS with tools such as wp-cli, or findbot.pl
Profiler showing high number of file operations
Seeing pharma or other links injected in header/footer
![Page 14: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/14.jpg)
Operational ImprovementsImprovements you can make outside WordPress
![Page 15: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/15.jpg)
Make it faster by paying more money!There is no such thing as “unlimited” hosting or space
Ensure you are paying for the level of performance you expect given the traffic estimates
Diminishing returns on performance when buying more resources
![Page 16: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/16.jpg)
DatabaseMySQL versions and variations (MariaDB, Percona, Community)
DB Engine: Convert tables from MyISAM to InnoDB
Some* my.cnf tuning
InnoDB buffer size, Query Caching
HyperDB for database splitting*
Some performance references: http://www.liquidweb.com/kb/mysql-5-1-vs-5-5-vs-5-6-performance-comparison/ https://www.percona.com/blog/2011/10/10/mysql-versions-shootout/ http://vbtechsupport.com/657/
![Page 17: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/17.jpg)
Web Server TechnologyWeb server technologies:
nginx vs Apache
PHP process management in Apache
php-fpm vs mod_php
prefork, vs worker/event
mod_pagespeed, php-opcache
When does it matter?More food for thought: http://blog.bitnami.com/2014/06/performance-enhacements-for-apache-and.html https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations
Credit: Digital Ocean
![Page 18: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/18.jpg)
HTTP changes
Content compression
Expiry headers for content type
Cache directive
![Page 19: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/19.jpg)
Content DeliveryReducing number of access to your web server will reduce your costs (bandwidth and CPU needs)
Consider using public CDN for shared JS/CSS
Pay for a cheap CDN and use a plugin to rewrite your assets to the CDN
![Page 20: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/20.jpg)
Web Application Protection*
SaaS: Sucuri / CloudFlare
Plugins: WordFence / Better WP Security
Spam Protection: Akismet
PHP: suhosin
Server: mod_security
*not an exhaustive list or endorsement
![Page 21: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/21.jpg)
Push vs Pull CDN
Push CDN
Pull CDN
CDN Data Store CDN Cache
Your Webserver (origin)
cache misscontent push
![Page 22: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/22.jpg)
Monitor your site
Application Performance Monitor (eg. New Relic)
Server Monitoring (eg. LongView, CloudWatch)
Last mile / Page Health (eg. Kingdom)
![Page 23: Speeding up your WordPress site - WordCamp Hamilton 2015](https://reader033.vdocuments.net/reader033/viewer/2022052602/55c2b1b6bb61eb5a5f8b45a2/html5/thumbnails/23.jpg)
Site AuditsLet’s look at a few sites together