A technical tour de force of tips, tricks and practical guides on how to squeeze every possible bit of performance from your WordPress site. Jono will myth-bust performance issues and security worries; demonstrate the ultimate performance combination of hosting configurations, plugin combinations and technical SEO; and give you the tools you need to outperform the competition
2. I’m going to make you
care about technical SEO.
Turbo-charging your WordPress website @jonoalderson
3. Jono Alderson
Head of Insight @ Linkdex
@jonoalderson
Technical SEO + analytics geek
Closet web developer & Wordpress fanatic
Turbo-charging your WordPress website @jonoalderson
4. So, like any good SEO, I
needed a website.
Turbo-charging your WordPress website @jonoalderson
5. September 19th is Talk Like A Pirate Day
Turbo-charging your WordPress website @jonoalderson
6. Today is International Plush Animal Lovers Day
Turbo-charging your WordPress website @jonoalderson
7. Tomorrow is Cat Day and Internet Day
Turbo-charging your WordPress website @jonoalderson
8. ...and the whole of October is Pizza Month
Turbo-charging your WordPress website @jonoalderson
22. When we started talking
about content marketing, we
stopped talking about
technical optimisation.
“on page” is not the same as “technical”
Turbo-charging your WordPress website @jonoalderson
23. Why should we care?
Turbo-charging your WordPress website @jonoalderson
31. We’ve all seen the impact of
technical bugs/faults/etc.
Broken pages, missing redirects,
indexation faults, etc...
Turbo-charging your WordPress website @jonoalderson
35. Ditch the crappy
metaphor!
Yes, it works as a loose analogy, but it gives people
permission to think about it in an abstract sense.
Turbo-charging your WordPress website @jonoalderson
36. Visualising Performance
Speed
● Google PageSpeed Insights, ySlow
● Google Analytics
● Pingdom, WebPageTest*
Turbo-charging your WordPress website @jonoalderson
39. An aside…
Developers HATE this.
There is no ‘site speed’ number which Google uses.
Turbo-charging your WordPress website @jonoalderson
40. Visualising Performance
User Experience
● How’s it “feel”? Consider the psychology of the loading experience
● User experience index, general quality, give-a-damn
● Track it, benchmark it. Surveying and feedback tools
Turbo-charging your WordPress website @jonoalderson
55. So let’s start with
something easy.
My ‘must have’ WordPress plugins
Turbo-charging your WordPress website @jonoalderson
56. Don’t go anywhere without installing:
W3 Total Cache*
Redirection
BWP Sitemaps
Broken Link Checker
iThemes Security*
Akismet*
Query Monitor
Turbo-charging your WordPress website @jonoalderson
57. You may also like...
BWP Minify
Yet Another Related Posts Plugin*
YARPP Experiments
Relevanssi*
WP-PageNavi
Kraken.io*
Google Tag Manager for Wordpress
User Role Editor
Custom Post Type Permalinks
Turbo-charging your WordPress website @jonoalderson
58. Third Party Services
Cloudflare (or MaxCDN)
NewRelic
An SSL certificate (ssl2buy.com)
...some kind of backup processes...
...and some proper hosting...
Turbo-charging your WordPress website @jonoalderson
59. What, no Yoast SEO?
Turbo-charging your WordPress website @jonoalderson
60. Stand up, Jim.
Jim Seward, @iamoldskool
Turbo-charging your WordPress website @jonoalderson
61. “My wordpress
seo tends to be
limited to ‘install
the yoast plugin’
and do the
usual site
stuff...”
Jim Seward, @iamoldskool
Turbo-charging your WordPress website @jonoalderson
62. Is this really an issue?
What are the experts doing?
Turbo-charging your WordPress website @jonoalderson
82. wp-config.php
Security settings
Auto update settings
Limit revision & trash storage
Cookie stuff
Set memory allowance
Force SSL
Set language
http://codex.wordpress.org/Editing_wp-config.php
Turbo-charging your WordPress website @jonoalderson
83. Expert tip...
Reference the
URL -> <- Page
Template Hierarchy
Turbo-charging your WordPress website @jonoalderson
84. Expert Tip...
You can use pre_get_posts to intercept and
change how requests are processed
Turbo-charging your WordPress website @jonoalderson
105. Expert Tip...
You can move redirects from out of WordPress
and into .htaccess from within the plugin admin
Turbo-charging your WordPress website @jonoalderson
106. Some things to watch out for...
apple-touch-icon.png (and variants)
favicon.ico (and variants)
browserconfig.xml
Invalid or un-used feeds
invalid page/date ranges
broken internal links (and missing http links)
alternate sitemap and meta data urls
pages & images with weird, breaking parameters
security probes
legacy urls
Turbo-charging your WordPress website @jonoalderson
122. Expert Tip...
Redirect requests which resolve to your CDN subdomains (or other
hostnames)
// Redirect requests from non-primary domains
function domain_redirect() {
$hostname = $_SERVER['HTTP_HOST'];
$mainDomains = array('www.daysoftheyear.com','app.daysoftheyear.com');
if (!in_array($hostname,$mainDomains)) {
$uri = $_SERVER['REQUEST_URI'];
wp_redirect( 'https://www.daysoftheyear.com'.$uri, 301 ); exit;
}
}
add_action('init', 'domain_redirect');
Turbo-charging your WordPress website @jonoalderson
123. Expert Tip...
Use established CDNs to server common/large resources (like jQuery)
// Use Google CDN for jQuery
function modify_jquery() {
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', false, '1.11.1');
wp_enqueue_script('jquery');
}
}
add_action('init', 'modify_jquery');
Turbo-charging your WordPress website @jonoalderson
129. HTTPS / SSL
Change to protocol-relative URLs (//example.com/file/)
References in CSS/JS & third party stuff
Purchase & install key*
(Cloudflare is MAGIC)
Buy the right type (single, multi, wildcard)
Tweak CDN config
W3 Total Cache config
Turbo-charging your WordPress website @jonoalderson
130. Expert Tip...
Database find & replace
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’,
‘replace found string with this string’);
...or cheat...
“Search and Replace” plugin
Turbo-charging your WordPress website @jonoalderson
131. HTTPS / SSL
Force SSL in wp-config.php (esp. if using Cloudflare)
// Force SSL
define('FORCE_SSL_ADMIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
Turbo-charging your WordPress website @jonoalderson
132. HTTPS / SSL
Force SSL in .htaccess
http://www.webhostinghub.com/help/learn/website/ssl/force-website-to-use-ssl
Turbo-charging your WordPress website @jonoalderson
134. Media Optimisation
Pay attention to every detail.
Kraken, but get it right first.
Photoshop isn’t good enough; use dedicated kit
Turbo-charging your WordPress website @jonoalderson
135. File size is (sometimes) less
important than #requests
Turbo-charging your WordPress website @jonoalderson
136. CSS Sprites
Are super-awesome, and avoid extra
requests
Turbo-charging your WordPress website @jonoalderson
137. Expert Tip...
You can base64 encode images in your CSS
Turbo-charging your WordPress website @jonoalderson
138. Expert Tip...
Change default media links
// Change image default link
function misc_change_image_default_link() {
$image_set = get_option( 'image_default_link_type' );
if ($image_set !== 'none') {
update_option('image_default_link_type', 'none');
}
}
add_action('admin_init', 'misc_change_image_default_link', 10);
Turbo-charging your WordPress website @jonoalderson
155. Stuff I haven’t talked about...
Parent/child theme relationships
PHP(!)
Transient caching
Device-type optimisation
Awkward SSL stuff (chain certificates)
CSS/JS optimisation
WP Cron, Ajax & the Heartbeat API
Browser reflow and repaint
(That may own websites are a bit slow, and far from perfect!)
Take it one step at a time.
Turbo-charging your WordPress website @jonoalderson
156. Stop mitigating against
technical impact...
...Start capitalising on technical opportunity.
Turbo-charging your WordPress website @jonoalderson
157. Learn (some of) this stuff!
And not just because you want to be “full stack”.
Turbo-charging your WordPress website @jonoalderson
158. And if you’re not at least thinking
about this stuff…?
Maybe all you’re doing is “marketing”.
Turbo-charging your WordPress website @jonoalderson
159. Google cares about this stuff...
Because users do. Even if they don’t know they do.
Turbo-charging your WordPress website @jonoalderson
160. Aim for 100%
(but get there one step at a time)
Turbo-charging your WordPress website @jonoalderson
We don’t use cute analogies for things like grammar or imagery. Why for tech? Accept that complicated is OK!
Google is a machine, assessing your website. It looks at URLs and tries to ascribe equity to them based on signals.
Everything you do which makes that harder, wastes their resources, or sends mixed signals should be business critical.
Describe this properly, like grown ups.
*these work in different ways.
Scores based on detecting certain techniques - doesn’t measure actual speed
Sampling based on JS triggers - sensitive to variations and blips, location, browser config, all sorts
Monitoring the load stack - focuses heavily on TTFB, does a poor job of monitoring things like social plugins loading. Location is important.
webpagetest is often ‘best’
Speed is highly relative. Hardware, connectivity, location, bandwidth, weather, time of day, etc.
White screen for 3 seconds then fully load instantly, or progressive loading over 4 seconds? Which is ‘faster’?
Load everything *then* load images, or wait until it’s all done and display at once?
“We’ve made it seem faster to the user”
Obsession with either the front-end or the back-end
Complete denial that performance is relevant, or that you’re qualified to understand/discuss it
ROI estimations
Arbitrary tool/score focus (if X says it’s faster than 5 seconds we’re fine!) - opportunity cost?
How often is an experience genuinely “good”, or even, “not shit”!?
Bounce rates and experiential factors are direct or indirect ranking factors.
Broken links, Unnecessary clicks, Fuzzy images, Unclear errors, Display/CSS bugs
The wrong / a sub-optimal page ranking(!), crappy pages indexed
Adoption of cool stuff (e.g., OG, responsive images, optimised performance overheads)
Risks of hacked sites, performance impact of DDOS attacks, wasted bandwidth/overhead
Influencing the experience a searcher has during the search process is SEO.
All of these drive the experience, and the relative perception of the experience.
This drives feedback, engagement, and repeat business - signals and equity.
This isn’t an abstract concept. If you’re doing SEO for a restaurant and food chain and you’re not critiquing the food, what you’re doing isn’t any different to buying links
Yes, it’s a few steps from links and content. It’s still part of the mix.
Great all-in-one, one-click optimisation
But… lots of overhead. Lots of options. Lots of configuration options.
My site only needs to work in one, optimised way. All that infrastructure is redundant.
… but that’s the case with all sorts of things, and it’s the only viable way to create a great piece of kit. So.
But.. My real gripe is that it stops people thinking.
And that there are issues with it - EN_US OGP
But.. My real gripe is that it stops people thinking.
And that there are issues with it - EN_US OGP
Top 10 London WordPress agencies use it, and all flawed.
Is this a biased sample? No - it’s endemic..
Great if you’re using Genesis or if you want to pay a lot of money for somebody else to worry about it… But often restrictive with what you can use, what’s compatible, etc. Less control[!].
Expensive! Often tailored to hosting multiple small sites.
Hosting is all about servers. Servers are computers. They have hard-drives, RAM, CPUs.
If you’re a “normal” website, VPS is often the best bet. Virtual private sever. A slice of a cluster.
VPS usually has benefits of both with none of the disadvantages - but reliant on the provider knowing their stuff. Good hardware. Honesty. Throughput. Physical security. etc.
Shared is NEVER good. Reliability. Scalability. Security.
Unlimited! Easy! Bonus points! Free templates! BAD.
DOTY got 1m uniques in August, which was ~2m pageviews. I pay ~£30 per month for hosting.*
*some minor add ons (SSL, CloudFlare, Kraken)
Email, FTP, SQL, PHPmyadmin. Start to see behind the curtain.