Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

8,306 views

Published on

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

Published in: Marketing
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/36cXjBY ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ http://bit.ly/36cXjBY ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

  1. 1. Turbo-charging your WordPress* website Turbo-charging your WordPress website @jonoalderson
  2. 2. I’m going to make you care about technical SEO. Turbo-charging your WordPress website @jonoalderson
  3. 3. Jono Alderson Head of Insight @ Linkdex @jonoalderson Technical SEO + analytics geek Closet web developer & Wordpress fanatic Turbo-charging your WordPress website @jonoalderson
  4. 4. So, like any good SEO, I needed a website. Turbo-charging your WordPress website @jonoalderson
  5. 5. September 19th is Talk Like A Pirate Day Turbo-charging your WordPress website @jonoalderson
  6. 6. Today is International Plush Animal Lovers Day Turbo-charging your WordPress website @jonoalderson
  7. 7. Tomorrow is Cat Day and Internet Day Turbo-charging your WordPress website @jonoalderson
  8. 8. ...and the whole of October is Pizza Month Turbo-charging your WordPress website @jonoalderson
  9. 9. ! Turbo-charging your WordPress website @jonoalderson
  10. 10. Turbo-charging your WordPress website @jonoalderson
  11. 11. # links built zero Turbo-charging your WordPress website @jonoalderson
  12. 12. # bloggers emailed zero Turbo-charging your WordPress website @jonoalderson
  13. 13. Proactive outreach done zero Turbo-charging your WordPress website @jonoalderson
  14. 14. Comment spam, guest posting, content spun zero Turbo-charging your WordPress website @jonoalderson
  15. 15. Infographics zero Turbo-charging your WordPress website @jonoalderson
  16. 16. Average words per page < 50* Turbo-charging your WordPress website @jonoalderson
  17. 17. Budget zero* Turbo-charging your WordPress website @jonoalderson
  18. 18. Wanna see? Turbo-charging your WordPress website @jonoalderson
  19. 19. Turbo-charging your WordPress website @jonoalderson
  20. 20. Turbo-charging your WordPress website @jonoalderson
  21. 21. www.daysoftheyear.com Turbo-charging your WordPress website @jonoalderson
  22. 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. 23. Why should we care? Turbo-charging your WordPress website @jonoalderson
  24. 24. Turbo-charging your WordPress website @jonoalderson
  25. 25. Turbo-charging your WordPress website @jonoalderson
  26. 26. Turbo-charging your WordPress website @jonoalderson
  27. 27. Turbo-charging your WordPress website @jonoalderson
  28. 28. Turbo-charging your WordPress website @jonoalderson
  29. 29. Turbo-charging your WordPress website @jonoalderson
  30. 30. Turbo-charging your WordPress website @jonoalderson
  31. 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
  32. 32. Turbo-charging your WordPress website @jonoalderson
  33. 33. Visualising Performance Seeing is believing Turbo-charging your WordPress website @jonoalderson
  34. 34. Turbo-charging your WordPress website @jonoalderson
  35. 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. 36. Visualising Performance Speed ● Google PageSpeed Insights, ySlow ● Google Analytics ● Pingdom, WebPageTest* Turbo-charging your WordPress website @jonoalderson
  37. 37. developers.google.com/speed/pagespeed/insights/ Turbo-charging your WordPress website @jonoalderson
  38. 38. webpagetest.org Turbo-charging your WordPress website @jonoalderson
  39. 39. An aside… Developers HATE this. There is no ‘site speed’ number which Google uses. Turbo-charging your WordPress website @jonoalderson
  40. 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
  41. 41. Visualising Performance Technical optimisation & security ● Bandwidth/overhead optimisation ● Adoption of technologies (open graph, responsive images, caching, etc) ● Minimising risks of hacking, DDOS Turbo-charging your WordPress website @jonoalderson
  42. 42. But wait, this really isn’t SEO…? Turbo-charging your WordPress website @jonoalderson
  43. 43. So, let’s go. Turbo-charging your WordPress website @jonoalderson
  44. 44. But first... bit.ly/searchlove-wordpress Turbo-charging your WordPress website @jonoalderson
  45. 45. Turbo-charging your WordPress website @jonoalderson
  46. 46. Visualising the stack Turbo-charging your WordPress website @jonoalderson
  47. 47. Visualising the stack 1. Hosting Type Turbo-charging your WordPress website @jonoalderson
  48. 48. Visualising the stack 2. Server Spec & Config Turbo-charging your WordPress website @jonoalderson
  49. 49. Visualising the stack 3. Theme / CMS Turbo-charging your WordPress website @jonoalderson
  50. 50. Visualising the stack 4. Domain(s) Turbo-charging your WordPress website @jonoalderson
  51. 51. Visualising the stack 5. Media / Assets Turbo-charging your WordPress website @jonoalderson
  52. 52. Visualising the stack 6. HTML & DOM parsing (and CSS + JS) Turbo-charging your WordPress website @jonoalderson
  53. 53. Visualising the stack 7. Re-flow / re-paint, FPS Turbo-charging your WordPress website @jonoalderson
  54. 54. Turbo-charging your WordPress website @jonoalderson
  55. 55. So let’s start with something easy. My ‘must have’ WordPress plugins Turbo-charging your WordPress website @jonoalderson
  56. 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. 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. 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. 59. What, no Yoast SEO? Turbo-charging your WordPress website @jonoalderson
  60. 60. Stand up, Jim. Jim Seward, @iamoldskool Turbo-charging your WordPress website @jonoalderson
  61. 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. 62. Is this really an issue? What are the experts doing? Turbo-charging your WordPress website @jonoalderson
  63. 63. Turbo-charging your WordPress website @jonoalderson
  64. 64. Turbo-charging your WordPress website @jonoalderson
  65. 65. Turbo-charging your WordPress website @jonoalderson
  66. 66. If everybody’s only running at 80%... ...Want the rest? Turbo-charging your WordPress website @jonoalderson
  67. 67. Here’s the stuff nobody talks about. Turbo-charging your WordPress website @jonoalderson
  68. 68. Turbo-charging your WordPress website @jonoalderson
  69. 69. Buy yourself some hosting. You can only learn this stuff by doing Turbo-charging your WordPress website @jonoalderson
  70. 70. Dedicated/tailored WordPress Hosting? Turbo-charging your WordPress website @jonoalderson
  71. 71. DIY HOSTING Shared, Dedicated, or VPS *(vs Clusters & hardcore setups, AWS elastic cloud computing) Turbo-charging your WordPress website @jonoalderson
  72. 72. Turbo-charging your WordPress website @jonoalderson
  73. 73. Turbo-charging your WordPress website @jonoalderson
  74. 74. Turbo-charging your WordPress website @jonoalderson
  75. 75. cPanel Turbo-charging your WordPress website @jonoalderson
  76. 76. Behind the curtain… Turbo-charging your WordPress website @jonoalderson
  77. 77. Turbo-charging your WordPress website @jonoalderson
  78. 78. Turbo-charging your WordPress website @jonoalderson
  79. 79. Turbo-charging your WordPress website @jonoalderson
  80. 80. Turbo-charging your WordPress website @jonoalderson
  81. 81. http://codex.wordpress.org/ Turbo-charging your WordPress website @jonoalderson
  82. 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. 83. Expert tip... Reference the URL -> <- Page Template Hierarchy Turbo-charging your WordPress website @jonoalderson
  84. 84. Expert Tip... You can use pre_get_posts to intercept and change how requests are processed Turbo-charging your WordPress website @jonoalderson
  85. 85. URL Structures (Permalinks) Default /?p=%post-id% http://www.example.com/?p=123 Turbo-charging your WordPress website @jonoalderson
  86. 86. URL Structures (Permalinks) ‘Pretty’ /%category%/%postname%/ http://www.example.com/cat/page/ Turbo-charging your WordPress website @jonoalderson
  87. 87. URL Structures (Permalinks) ‘Flat’ /%post-id%-%postname%/ http://www.example.com/123-page/ Turbo-charging your WordPress website @jonoalderson
  88. 88. Custom 503, maintenance & DB error pages Turbo-charging your WordPress website @jonoalderson
  89. 89. Custom Error Files wp-content/maintenance.php wp-content/db-error.php <?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> ... Turbo-charging your WordPress website @jonoalderson
  90. 90. Other WP Crap… Turbo-charging your WordPress website @jonoalderson
  91. 91. 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'); Turbo-charging your WordPress website @jonoalderson
  92. 92. Expert Tip... Clean up WP and plugin overheads // Ged rid of superfluous CSS function 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'); Turbo-charging your WordPress website @jonoalderson
  93. 93. Expert Tip... Kill unnecessary templates // Kill misc pages add_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(); } } Turbo-charging your WordPress website @jonoalderson
  94. 94. Turbo-charging your WordPress website @jonoalderson
  95. 95. Your Theme Performance PHP & database Theme files and functions Plugins & widgets Turbo-charging your WordPress website @jonoalderson
  96. 96. W3 Total Cache! Turbo-charging your WordPress website @jonoalderson
  97. 97. I’m not going to tell you how to configure this. Your site is unique. Turbo-charging your WordPress website @jonoalderson
  98. 98. Here’s a good place to start Turbo-charging your WordPress website @jonoalderson
  99. 99. Turbo-charging your WordPress website @jonoalderson
  100. 100. Turbo-charging your WordPress website @jonoalderson
  101. 101. Turbo-charging your WordPress website @jonoalderson
  102. 102. Turbo-charging your WordPress website @jonoalderson
  103. 103. Turbo-charging your WordPress website @jonoalderson
  104. 104. Turbo-charging your WordPress website @jonoalderson
  105. 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. 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
  107. 107. Turbo-charging your WordPress website @jonoalderson
  108. 108. Turbo-charging your WordPress website @jonoalderson
  109. 109. Turbo-charging your WordPress website @jonoalderson
  110. 110. Turbo-charging your WordPress website @jonoalderson
  111. 111. The physical location of your server & media matters. Use a CDN Turbo-charging your WordPress website @jonoalderson
  112. 112. Turbo-charging your WordPress website @jonoalderson
  113. 113. Turbo-charging your WordPress website @jonoalderson
  114. 114. Turbo-charging your WordPress website @jonoalderson
  115. 115. MAGIC. Turbo-charging your WordPress website @jonoalderson
  116. 116. Turbo-charging your WordPress website @jonoalderson
  117. 117. Subdomains Rock. Serialisation of requests (and other cool stuff) Turbo-charging your WordPress website @jonoalderson
  118. 118. Turbo-charging your WordPress website @jonoalderson
  119. 119. *No need to create/configure subdomains in cPanel/WHM! Turbo-charging your WordPress website @jonoalderson
  120. 120. Configure in W3TC as a “Generic Mirror” Cloudflare + Subdomains + W3 Total Cache = MAGIC Turbo-charging your WordPress website @jonoalderson
  121. 121. Turbo-charging your WordPress website @jonoalderson
  122. 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. 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
  124. 124. Turbo-charging your WordPress website @jonoalderson
  125. 125. Turbo-charging your WordPress website @jonoalderson
  126. 126. (Or W3 Total Cache) Turbo-charging your WordPress website @jonoalderson
  127. 127. Before… After… Turbo-charging your WordPress website @jonoalderson
  128. 128. Turbo-charging your WordPress website @jonoalderson
  129. 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. 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. 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. 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
  133. 133. Turbo-charging your WordPress website @jonoalderson
  134. 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. 135. File size is (sometimes) less important than #requests Turbo-charging your WordPress website @jonoalderson
  136. 136. CSS Sprites Are super-awesome, and avoid extra requests Turbo-charging your WordPress website @jonoalderson
  137. 137. Expert Tip... You can base64 encode images in your CSS Turbo-charging your WordPress website @jonoalderson
  138. 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
  139. 139. Expert Tip... Lowercase filenames // Lowercase filenames add_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; } Turbo-charging your WordPress website @jonoalderson
  140. 140. 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> Turbo-charging your WordPress website @jonoalderson
  141. 141. Expert Tip... Responsive Images (without the overhead…) // Thumbnail sizes add_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' ) ); Turbo-charging your WordPress website @jonoalderson
  142. 142. Turbo-charging your WordPress website @jonoalderson
  143. 143. webpagetest.org Turbo-charging your WordPress website @jonoalderson
  144. 144. Turbo-charging your WordPress website @jonoalderson
  145. 145. Expert tip... NewRelic Turbo-charging your WordPress website @jonoalderson
  146. 146. Expert tip... NewRelic Turbo-charging your WordPress website @jonoalderson
  147. 147. Expert tip... NewRelic Turbo-charging your WordPress website @jonoalderson
  148. 148. Turbo-charging your WordPress website @jonoalderson
  149. 149. Expert Tip... Check your error_log file Turbo-charging your WordPress website @jonoalderson
  150. 150. Turbo-charging your WordPress website @jonoalderson
  151. 151. Turbo-charging your WordPress website @jonoalderson
  152. 152. Turbo-charging your WordPress website @jonoalderson
  153. 153. Turbo-charging your WordPress website @jonoalderson
  154. 154. Turbo-charging your WordPress website @jonoalderson
  155. 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. 156. Stop mitigating against technical impact... ...Start capitalising on technical opportunity. Turbo-charging your WordPress website @jonoalderson
  157. 157. Learn (some of) this stuff! And not just because you want to be “full stack”. Turbo-charging your WordPress website @jonoalderson
  158. 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. 159. Google cares about this stuff... Because users do. Even if they don’t know they do. Turbo-charging your WordPress website @jonoalderson
  160. 160. Aim for 100% (but get there one step at a time) Turbo-charging your WordPress website @jonoalderson
  161. 161. WIN Turbo-charging your WordPress website @jonoalderson
  162. 162. Jono Alderson Head of Insight @ Linkdex @jonoalderson (and also www.daysoftheyear.com) Turbo-charging your WordPress website @jonoalderson

×