SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

162
@jonoalderson Turbo-charging your WordPress website Turbo-charging your WordPress* website

Transcript of SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

Page 1: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Turbo-charging your WordPress*

website

Page 2: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

I’m going to make you care about technical SEO.

Page 3: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Jono AldersonHead of Insight @ Linkdex

@jonoalderson

Technical SEO + analytics geekCloset web developer & Wordpress fanatic

Page 4: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

So, like any good SEO, I needed a

website.

Page 5: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

September 19th is Talk Like A Pirate Day

Page 6: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Today is International Plush Animal Lovers Day

Page 7: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Tomorrow is Cat Day and Internet Day

Page 8: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

...and the whole of October is Pizza Month

Page 9: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

!

Page 10: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 11: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

# links builtzero

Page 12: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

# bloggers emailedzero

Page 13: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Proactive outreach donezero

Page 14: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Comment spam, guest posting, content spunzero

Page 15: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Infographicszero

Page 16: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Average words per page< 50*

Page 17: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Budgetzero*

Page 18: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Wanna see?

Page 19: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 20: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 21: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

www.daysoftheyear.com

Page 22: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

When we started talking about content

marketing, we stopped talking about technical

optimisation.“on page” is not the same as

“technical”

Page 23: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Why should we care?

Page 24: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 25: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 26: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 27: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 28: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 29: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 30: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 31: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

We’ve all seen the impact of technical

bugs/faults/etc.

Broken pages, missing redirects, indexation faults, etc...

Page 32: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 33: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising PerformanceSeeing is believing

Page 34: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 35: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Ditch the crappy metaphor!

Yes, it works as a loose analogy, but it gives people permission to think about it in an

abstract sense.

Page 36: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising PerformanceSpeed● Google PageSpeed Insights, ySlow● Google Analytics● Pingdom, WebPageTest*

Page 37: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

developers.google.com/speed/pagespeed/insights/

Page 38: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

webpagetest.org

Page 39: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

There is no ‘site speed’ number which Google uses.

An aside… Developers HATE

this.

Page 40: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising PerformanceUser 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

Page 41: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising PerformanceTechnical optimisation & security● Bandwidth/overhead optimisation

● Adoption of technologies (open graph, responsive images, caching, etc)

● Minimising risks of hacking, DDOS

Page 42: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

But wait, this really isn’t SEO…?

Page 43: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

So, let’s go.

Page 44: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

bit.ly/searchlove-wordpressBut first...

Page 45: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 46: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack

Page 47: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack1. Hosting Type

Page 48: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack2. Server Spec & Config

Page 49: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack3. Theme / CMS

Page 50: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack4. Domain(s)

Page 51: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack5. Media / Assets

Page 52: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack6. HTML & DOM parsing (and CSS + JS)

Page 53: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Visualising the stack7. Re-flow / re-paint, FPS

Page 54: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 55: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

So let’s start with something easy.

My ‘must have’ WordPress plugins

Page 56: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Don’t go anywhere without installing:W3 Total Cache*

RedirectionBWP Sitemaps

Broken Link CheckeriThemes Security*

Akismet*Query Monitor

Page 57: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

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 EditorCustom Post Type Permalinks

Page 58: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Third Party ServicesCloudflare (or MaxCDN)

NewRelicAn SSL certificate (ssl2buy.com)

...some kind of backup processes......and some proper hosting...

Page 59: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

What, no Yoast SEO?

Page 60: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Stand up, Jim.Jim Seward, @iamoldskool

Page 61: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

“My wordpress seo tends to be limited to ‘install the yoast plugin’ and do the usual site stuff...”Jim Seward, @iamoldskool

Page 62: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Is this really an issue?

What are the experts doing?

Page 63: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 64: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 65: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 66: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

If everybody’s only running at 80%...

...Want the rest?

Page 67: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Here’s the stuff nobody talks about.

Page 68: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 69: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Buy yourself some hosting.

You can only learn this stuff by doing

Page 70: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Dedicated/tailored WordPress Hosting?

Page 71: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

DIY HOSTINGShared, Dedicated, or VPS*(vs Clusters & hardcore setups, AWS elastic cloud computing)

Page 72: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 73: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 74: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 75: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

cPanel

Page 76: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Behind the curtain…

Page 77: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 78: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 79: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 80: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 81: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

http://codex.wordpress.org/

Page 82: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

wp-config.phpSecurity settings

Auto update settingsLimit revision & trash storage

Cookie stuffSet memory allowance

Force SSLSet language

http://codex.wordpress.org/Editing_wp-config.php

Page 83: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert tip... Reference the

Template HierarchyURL -> <- Page

Page 84: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...You can use pre_get_posts to intercept and

change how requests are processed

Page 85: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

URL Structures (Permalinks)

Default/?p=%post-id%

http://www.example.com/?p=123

Page 86: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

URL Structures (Permalinks)

‘Pretty’ /%category%/%postname%/

http://www.example.com/cat/page/

Page 87: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

URL Structures (Permalinks)

‘Flat’/%post-id%-%postname%/

http://www.example.com/123-page/

Page 88: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Custom 503, maintenance & DB error pages

Page 89: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Custom Error Files

<?php// Set headers before outputting the page HTML header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 3600'); // 1 hour = 3600 seconds?>

<html>...

wp-content/maintenance.phpwp-content/db-error.php

Page 90: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Other WP Crap…

Page 91: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Clean up WP and plugin overheads

// Clean up wp_head()function cleanhead() {

remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link');remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'feed_links_extra', 3 );remove_action('wp_head', 'feed_links', 2 ); remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );remove_action('wp_head', 'rel_canonical');remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0 );}add_action('init', 'cleanhead');

Page 92: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Clean up WP and plugin overheads

// Ged rid of superfluous CSSfunction deregister_styles() { if (!is_admin()) {

wp_deregister_style('avatars');wp_deregister_style('imgareaselect')wp_deregister_style('avatar-manager.css');wp_deregister_style('yarppRelatedCss');

} }add_action( 'wp_print_styles', 'deregister_styles');

Page 93: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Kill unnecessary templates

// Kill misc pagesadd_action('template_redirect', 'jono_nerf_pages');function jono_nerf_pages() { global $wp_query, $post; if (is_day() || is_month() || is_year()) { header("HTTP/1.0 404 Not Found"); $wp_query->set_404(); } if (is_attachment()) { header("HTTP/1.1 301 Moved Permanently"); header("Location: ".get_permalink($post->post_parent)); exit; } if (is_feed()) { header("HTTP/1.0 404 Not Found"); $wp_query->set_404(); wp_query->is_feed = false; } if ((is_archive()) && (!have_posts())) { header("HTTP/1.0 404 Not Found"); $wp_query->set_404(); }}

Page 94: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 95: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Your Theme Performance

PHP & databaseTheme files and functions

Plugins & widgets

Page 96: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

W3 Total Cache!

Page 97: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

I’m not going to tell you how to configure

this.Your site is unique.

Page 98: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Here’s a good place to start

Page 99: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 100: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 101: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 102: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 103: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 104: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 105: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...You can move redirects from out of WordPress

and into .htaccess from within the plugin admin

Page 106: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

apple-touch-icon.png (and variants)favicon.ico (and variants)

browserconfig.xmlInvalid or un-used feedsinvalid page/date ranges

broken internal links (and missing http links)alternate sitemap and meta data urls

pages & images with weird, breaking parameterssecurity probes

legacy urls

Some things to watch out for...

Page 107: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 108: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 109: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 110: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 111: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

The physical location of your server & media

matters.

Use a CDN

Page 112: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 113: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 114: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 115: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

MAGIC.

Page 116: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 117: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Subdomains Rock.Serialisation of requests (and other cool stuff)

Page 118: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 119: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

*No need to create/configure subdomains in cPanel/WHM!

Page 120: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Cloudflare + Subdomains + W3 Total Cache = MAGIC

Configure in W3TC as a “Generic Mirror”

Page 121: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 122: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Redirect requests which resolve to your CDN subdomains (or other

hostnames)// Redirect requests from non-primary domainsfunction 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');

Page 123: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Use established CDNs to server common/large resources (like

jQuery)// Use Google CDN for jQueryfunction 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');

Page 124: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 125: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 126: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

(Or W3 Total Cache)

Page 127: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Before…

After…

Page 128: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 129: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

HTTPS / SSLChange 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

Page 130: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

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

Page 131: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

HTTPS / SSLForce SSL in wp-config.php (esp. if using Cloudflare)

// Force SSLdefine('FORCE_SSL_ADMIN', true);if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on';

Page 132: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

HTTPS / SSLForce SSL in .htaccess

http://www.webhostinghub.com/help/learn/website/ssl/force-website-to-use-ssl

Page 133: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 134: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Media OptimisationPay attention to every detail.Kraken, but get it right first.

Photoshop isn’t good enough; use dedicated kit

Page 135: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

File size is (sometimes) less important than

#requests

Page 136: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

CSS SpritesAre super-awesome, and avoid extra

requests

Page 137: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...You can base64 encode images in your

CSS

Page 138: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Change default media links

// Change image default linkfunction 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);

Page 139: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Lowercase filenames

// Lowercase filenamesadd_filter('sanitize_file_name', 'mfl_make_filename_lowercase', 10);function mfl_make_filename_lowercase($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); return strtolower($name) . $ext;}

Page 140: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Responsive Images (without the overhead…)

<picture><!--[if IE 9]><video style="display: none;"><![endif]--><source srcset="small-image.jpg" media="(max-width: 480px)"><source srcset="medium-image.jpg" media="(max-width: 720px)"><source srcset="large-image.jpg" media="(max-width: 1024px)"><source srcset="xlarge-image.jpg" media="(max-width: 1280px)"><!--[if IE 9]></video><![endif]--><img srcset="xlarge-image.jpg" alt="" /></picture>

Page 141: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Responsive Images (without the overhead…)

// Thumbnail sizesadd_image_size( 'cols-1-small', 480, 314, array( 'left', 'top' ) );add_image_size( 'cols-1-med', 720, 470, array( 'left', 'top' ) );add_image_size( 'cols-1-large', 1024, 669, array( 'left', 'top' ) );add_image_size( 'cols-1-xlarge', 1024, 669, array( 'left', 'top' ) );

add_image_size( 'cols-2-small', 240, 157, array( 'left', 'top' ) );add_image_size( 'cols-2-med', 360, 236, array( 'left', 'top' ) );add_image_size( 'cols-2-large', 512, 335, array( 'left', 'top' ) );add_image_size( 'cols-2-xlarge', 512, 335, array( 'left', 'top' ) );

Page 142: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 143: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

webpagetest.org

Page 144: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 145: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert tip... NewRelic

Page 146: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert tip... NewRelic

Page 147: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert tip... NewRelic

Page 148: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 149: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Expert Tip...Check your error_log file

Page 150: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 151: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 152: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 153: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 154: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Page 155: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Stuff I haven’t talked about...Parent/child theme relationships

PHP(!)Transient caching

Device-type optimisationAwkward SSL stuff (chain certificates)

CSS/JS optimisationWP 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.

Page 156: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Stop mitigating against technical

impact......Start capitalising on technical

opportunity.

Page 157: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Learn (some of) this stuff!

And not just because you want to be “full stack”.

Page 158: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

And if you’re not at least thinking about this stuff…?

Maybe all you’re doing is “marketing”.

Page 159: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Google cares about this stuff...

Because users do. Even if they don’t know they do.

Page 160: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Aim for 100%(but get there one step at a time)

Page 161: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

WIN

Page 162: SearchLove London | 'Jono Alderson', Turbocharging your Wordpress Website'

@jonoaldersonTurbo-charging your WordPress website

Jono AldersonHead of Insight @ Linkdex

@jonoalderson

(and also www.daysoftheyear.com)