Upload
alan-lok
View
537
Download
0
Embed Size (px)
Citation preview
Speed up your WordPress siteAlan Lok WirelessLinx Inc.
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
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
Internal Tune-upsDigging into your WordPress site to make it better
The simple stuff
Update your plugins
Remove unused themes and plugins
404 errors
WordPress plugins to speed things up
W3 Total Cache
Super Cache
Zen Cache
Redu
ceIm
ages
, JS
, CSS
Reuse
Code
(CSS, JS,
HTML, PHP)
RefactorHTTP Response Content Body
Profile your applicationAnalyze your application with a PHP profiler such as BlackFire.io or xdebug/cachegrind
Look for high number of apply_filters, mysql calls, and wp_cache_get
Profile your DOMMake your page render faster too
Database
Check your slow query log
Debug: log your database queries
Try to “explain” your query
Trim un-needed data (comments, deleted posts, etc…)
Have you been hacked?
Hacked instances are typically slower because of additional JS/PHP payload
Check your installation / hosting environment
Some command line tools: wp-cli, findbot.pl
Online tools: https://sitecheck.sucuri.net/ and Google Webmaster Tools
Operational ImprovementsImprovements you can make outside WordPress
You get what you pay forThere 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
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/
Web Server TechnologyWeb server technologies:
nginx vs Apache
PHP process management in Apache
php-fpm vs mod_php vs hhvm
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 http://hhvm.com/blog/9293/lockdown-results-and-hhvm-performance
Credit: Digital Ocean
HTTP changes
Content compression
Expiry headers for content type
Cache directive
References:https://tools.ietf.org/html/rfc7234 http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=en
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
Web Application Protection*SaaS: Sucuri / CloudFlare / Incapsula / Akamai
Plugins: WordFence / Better WP Security
Spam Protection: Akismet
PHP: suhosin
Server: mod_security
*not an exhaustive list or endorsement
Monitor your siteApplication Performance Monitor (eg. New Relic, AppDynamics)
Server Monitoring (eg. LongView, CloudWatch, DataDog)
Last mile / Page Health (eg. Pingdom, New Relic Synthetics, Gomez)
Thanks!Twitter: @alan_lok Web: http://wlx.ca
Slideshare: www.slideshare.net/alanlok1