{"id":40305,"date":"2020-10-22T11:00:57","date_gmt":"2020-10-22T16:00:57","guid":{"rendered":"https:\/\/ahrefs.com\/blog\/?p=40305"},"modified":"2023-10-05T03:11:05","modified_gmt":"2023-10-05T08:11:05","slug":"speed-up-wordpress","status":"publish","type":"post","link":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/","title":{"rendered":"How to Speed Up Your WordPress Website in 20 Minutes"},"content":{"rendered":"<div class=\"intro-txt\">Everyone knows that page speed is important. It\u2019s a confirmed <a href=\"https:\/\/ahrefs.com\/blog\/google-ranking-factors\/\">Google ranking factor<\/a>&nbsp;on desktop&nbsp;and mobile, impacts user experience, and can have a direct effect on your bottom line.<\/div>\n<p>But slow WordPress websites are a common issue.<\/p>\n<p>Here\u2019s the mobile score for a page of mine in <a href=\"https:\/\/ahrefs.com\/blog\/pagespeed-insights\/\">PageSpeed Insights<\/a>.<\/p>\n<div id=\"attachment_40297\" style=\"width: 1610px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-40297\" class=\"size-full wp-image-40297\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-1.png\" alt width=\"1600\" height=\"895\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-1.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-1-680x380.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-1-768x430.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-1-1536x859.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><p id=\"caption-attachment-40297\" class=\"wp-caption-text\">Before optimization.<\/p><\/div>\n<p>If we run the entire website through Ahrefs\u2019 <a href=\"https:\/\/ahrefs.com\/site-audit\">Site Audit<\/a>\u2014which shows page load time for all pages\u2014we see that this isn\u2019t the only slow-loading page either. None of them load massively fast, with an average load time of&nbsp;570ms.<\/p>\n<div id=\"attachment_40298\" style=\"width: 1038px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-40298\" class=\"size-full wp-image-40298\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/2-site-audit-average-load-slow.png\" alt width=\"1028\" height=\"442\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/2-site-audit-average-load-slow.png 1028w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/2-site-audit-average-load-slow-680x292.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/2-site-audit-average-load-slow-768x330.png 768w\" sizes=\"auto, (max-width: 1028px) 100vw, 1028px\"><p id=\"caption-attachment-40298\" class=\"wp-caption-text\">Before optimization.<\/p><\/div>\n<p>Now here\u2019s that same page after around 20 minutes of page speed optimization:<\/p>\n<div id=\"attachment_40299\" style=\"width: 1610px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-40299\" class=\"size-full wp-image-40299\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-1.png\" alt width=\"1600\" height=\"935\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-1.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-1-680x397.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-1-768x449.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-1-1536x898.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><p id=\"caption-attachment-40299\" class=\"wp-caption-text\">After optimization.<\/p><\/div>\n<p>And the rest of the pages in Site&nbsp;Audit:<\/p>\n<div id=\"attachment_40302\" style=\"width: 1042px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-40302\" class=\"size-full wp-image-40302\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast-1.png\" alt width=\"1032\" height=\"444\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast-1.png 1032w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast-1-680x293.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast-1-768x330.png 768w\" sizes=\"auto, (max-width: 1032px) 100vw, 1032px\"><p id=\"caption-attachment-40302\" class=\"wp-caption-text\">After optimization.<\/p><\/div>\n<p>The difference is night and day. The score from PageSpeed Insights is near-perfect, and every page loads pretty fast.<\/p>\n<p>In this guide, I\u2019ll show you exactly how I did this in a few simple and easy&nbsp;steps.<\/p>\n<ol>\n<li><a href=\"#remove-plugins\">Remove unused plugins<\/a><\/li>\n<li><a href=\"#dns-provider\">Switch DNS providers to Cloudflare<\/a><\/li>\n<li><a href=\"#caching\">Install a caching plugin<\/a><\/li>\n<li><a href=\"#minification\">Minify your&nbsp;code<\/a><\/li>\n<li><a href=\"#combine-css-js\">Combine CSS and JavaScript files<\/a><\/li>\n<li><a href=\"#render-blocking-resource\">Eliminate render-blocking resources<\/a><\/li>\n<li><a href=\"#lazy-loading\">Lazy-load images and videos<\/a><\/li>\n<li><a href=\"#google-fonts\">Optimize Google Fonts<\/a><\/li>\n<li><a href=\"#preloading\">Enable preloading<\/a><\/li>\n<li><a href=\"#cdn\">Use a&nbsp;CDN<\/a><\/li>\n<li><a href=\"#optimize-images\">Optimize your images<\/a><\/li>\n<\/ol>\n<div class=\"recommendation\"><div class=\"recommendation-title\">important<\/div><div class=\"recommendation-content\">\n<p>Many of the recommended optimizations below use <a href=\"https:\/\/wp-rocket.me\/\" target=\"_blank\" rel=\"noopener noreferrer\">WPRocket<\/a>, a paid plugin for speeding up your WordPress website. I\u2019ve listed free alternatives where possible, but it\u2019s important to note that plugins can sometimes conflict with each other and cause issues. You should always test how they affect your site in a staging environment before pushing any changes to your live site. Learn how to set up a staging site <a href=\"https:\/\/www.wpbeginner.com\/wp-tutorials\/how-to-create-staging-environment-for-a-wordpress-site\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<\/div><\/div>\n<div data-mode=\"normal\" data-oembed=\"1\" data-provider=\"youtube\" id=\"arve-youtube-bry6a-lslp8\" style=\"max-width:900px;\" class=\"arve\">\n<div class=\"arve-inner\">\n<div style=\"aspect-ratio:500\/281\" class=\"arve-embed arve-embed--has-aspect-ratio\">\n<div class=\"arve-ar\" style=\"padding-top:56.200000%\"><\/div>\n<p>\t\t\t<iframe allow=\"accelerometer 'none';autoplay 'none';bluetooth 'none';browsing-topics 'none';camera 'none';clipboard-read 'none';clipboard-write;display-capture 'none';encrypted-media 'none';gamepad 'none';geolocation 'none';gyroscope 'none';hid 'none';identity-credentials-get 'none';idle-detection 'none';keyboard-map 'none';local-fonts;magnetometer 'none';microphone 'none';midi 'none';otp-credentials 'none';payment 'none';picture-in-picture;publickey-credentials-create 'none';publickey-credentials-get 'none';screen-wake-lock 'none';serial 'none';summarizer 'none';sync-xhr;usb 'none';web-share;window-management 'none';xr-spatial-tracking 'none';\" allowfullscreen class=\"arve-iframe fitvidsignore\" credentialless data-arve=\"arve-youtube-bry6a-lslp8\" data-lenis-prevent data-src-no-ap=\"https:\/\/www.youtube-nocookie.com\/embed\/BrY6a-lsLp8?feature=oembed&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;autohide=1&amp;playsinline=0&amp;autoplay=0\" frameborder=\"0\" height=\"505.8\" loading=\"lazy\" name referrerpolicy=\"strict-origin-when-cross-origin\" sandbox=\"allow-scripts allow-same-origin allow-presentation allow-popups allow-popups-to-escape-sandbox\" scrolling=\"no\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/BrY6a-lsLp8?feature=oembed&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;autohide=1&amp;playsinline=0&amp;autoplay=0\" title width=\"900\"><\/iframe><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"1. Remove unused plugins\" data-section=\"remove-plugins\">\n<h2>Step 1. Remove unused plugins<\/h2>\n<\/div><\/div>\n<p>Unless you have a brand new WordPress website, chances are you\u2019ve installed a bunch of plugins that you don\u2019t use over the years. Some of these can impact page speed, so it\u2019s worth deactivating and uninstalling anything you don\u2019t need as a starting point.<\/p>\n<p>Just be careful when doing this. If you\u2019re not sure whether something is needed, leave it&nbsp;there.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"2. Switch DNS providers\" data-section=\"dns-provider\">\n<h2>Step 2. Switch DNS providers to Cloudflare<\/h2>\n<\/div><\/div>\n<p>Websites are files on hard drives (servers) connected to the internet. And every device connected to the internet has an IP address (e.g., 123.123.12.1).<\/p>\n<p>Because IP addresses are tough to memorize, domain names are mapped to IP addresses using DNS, which stands for Domain Name System. You can think of this as the phonebook of the web. When you type a domain into your browser, a DNS lookup occurs to find the server\u2019s IP address.<\/p>\n<p>But here\u2019s the thing: most people use the free DNS providers from their domain registrar, which is usually slow.<\/p>\n<p>If this is you, switch to a faster DNS provider like <a href=\"https:\/\/www.cloudflare.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cloudflare<\/a>.<\/p>\n<p>To do this, sign up for a free Cloudflare account. Click \u201cAdd a site,\u201d enter your domain name, and click the button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1304\" height=\"678\" class=\"wp-image-40296\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/5-cloudflare-dns.png\" alt=\"5 cloudflare dns\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/5-cloudflare-dns.png 1304w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/5-cloudflare-dns-680x354.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/5-cloudflare-dns-768x399.png 768w\" sizes=\"auto, (max-width: 1304px) 100vw, 1304px\"><\/p>\n<p>Select the free plan, then click \u201cConfirm plan.\u201d<\/p>\n<p>Cloudflare will now give you a chance to review your DNS settings before continuing. If there are no warnings, it\u2019s usually safe to continue.<\/p>\n<p>Now all that\u2019s left to do is to swap your nameservers with your domain registrar. The way you do this varies between registrars, so don\u2019t hesitate to ask their support if you\u2019re unsure how to do&nbsp;it.<\/p>\n<p>Here\u2019s the process if you\u2019re using Google Domains:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"817\" class=\"wp-image-40300\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/6-nameservers.png\" alt=\"6 nameservers\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/6-nameservers.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/6-nameservers-680x347.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/6-nameservers-768x392.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/6-nameservers-1536x784.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"3. Install a caching plugin\" data-section=\"caching\">\n<h2>Step 3. Install a caching plugin<\/h2>\n<\/div><\/div>\n<p>Caching is a process that temporarily stores files so they can be delivered to visitors more efficiently.<\/p>\n<p>There are two main&nbsp;types:<\/p>\n<ul>\n<li><strong>Browser caching:<\/strong>&nbsp;Saves\u2019 common\u2019 files like logos on the users\u2019 hard drive so they don\u2019t have to re-download them on repeat visits.<\/li>\n<li><strong>Server caching:<\/strong>&nbsp;Saves a fully-constructed, \u2018static\u2019 version of a page on the server so it doesn\u2019t have to be rebuilt&nbsp;every time a new visitor requests it.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/wp-rocket.me\/\" target=\"_blank\" rel=\"noopener noreferrer\">WP Rocket<\/a>&nbsp;makes it simple to&nbsp;enable caching. Just buy, install, and activate it. Basic caching (server and browser) is on by default. If your site is responsive, head to the cache settings and check the box to enable caching for mobile devices, too.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1592\" height=\"846\" class=\"wp-image-40290\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/7-wp-rocket-caching.png\" alt=\"7 wp rocket caching\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/7-wp-rocket-caching.png 1592w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/7-wp-rocket-caching-680x361.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/7-wp-rocket-caching-768x408.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/7-wp-rocket-caching-1536x816.png 1536w\" sizes=\"auto, (max-width: 1592px) 100vw, 1592px\"><\/p>\n<p>Looking for a free option? Try <a href=\"https:\/\/wordpress.org\/plugins\/w3-total-cache\/\" target=\"_blank\" rel=\"noopener noreferrer\">W3 Total Cache<\/a>.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"4. Minify your code\" data-section=\"minification\">\n<h2>Step 4. Minify your&nbsp;code<\/h2>\n<\/div><\/div>\n<p>Minification removes whitespace and comments from code to reduce file sizes. And smaller files result in faster loading times.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"847\" class=\"wp-image-40284\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/wp-pagespeed.png\" alt=\"wp pagespeed\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/wp-pagespeed.png 900w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/wp-pagespeed-452x425.png 452w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/wp-pagespeed-768x723.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\"><\/p>\n<p>If you\u2019re using WPRocket, tick the checkboxes to minify CSS and JavaScript in settings.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1568\" height=\"658\" class=\"wp-image-40291\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/8-minify.png\" alt=\"8 minify\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/8-minify.png 1568w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/8-minify-680x285.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/8-minify-768x322.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/8-minify-1536x645.png 1536w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\"><\/p>\n<p>If you\u2019re not using WPRocket, install and activate <a href=\"https:\/\/wordpress.org\/plugins\/autoptimize\/\" target=\"_blank\" rel=\"noopener noreferrer\">Autoptimize<\/a>&nbsp;and do the&nbsp;same.<\/p>\n<p>Just know that you should always test how this affects your website before deploying live. Minifying can often lead to broken code, especially when it comes to Javascript.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"5. Combine CSS and JavaScript files\" data-section=\"combine-css-js\">\n<h2>Step 5. Combine CSS and JavaScript files<\/h2>\n<\/div><\/div>\n<p>Most WordPress websites include multiple CSS and JavaScripts files. Some are for themes, others are for plugins, and you might have some custom ones,&nbsp;too.<\/p>\n<p>Combining these files may speed things up, but it depends on your server setup.<\/p>\n<ul>\n<li><strong>With HTTP\/1.1<\/strong>, CSS and JavaScript files are loading consecutively. That means one file needs to load fully before the next one can start loading.<\/li>\n<li><strong>With HTTP\/2<\/strong>, files load concurrently. That means multiple CSS and JavaScript files can begin loading at the same&nbsp;time.<\/li>\n<\/ul>\n<p>If&nbsp;your server uses HTTP\/1.1, combining files speeds things up because fewer files need to be loaded.&nbsp;If it uses HTTP\/2, combining files won\u2019t necessarily make much difference because files can load at the same time anyway.<\/p>\n<p>To see which version your site uses, plug your domain into <a href=\"https:\/\/tools.keycdn.com\/http2-test\" target=\"_blank\" rel=\"noopener noreferrer\">Key CDN\u2019s tester<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1508\" height=\"766\" class=\"wp-image-40295\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/9-http1-http2.png\" alt=\"9 http1 http2\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/9-http1-http2.png 1508w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/9-http1-http2-680x345.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/9-http1-http2-768x390.png 768w\" sizes=\"auto, (max-width: 1508px) 100vw, 1508px\"><\/p>\n<p>If HTTP\/2 isn\u2019t supported, it\u2019s worth combining CSS and JavaScript files.<\/p>\n<p>To do this in WPRocket, tick the checkboxes to \u201cCombine JavaScript files\u201d and \u201cCombine CSS files\u201d in the settings.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"222\" class=\"wp-image-40301\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/10-wprocket-combine-css.png\" alt=\"10 wprocket combine css\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/10-wprocket-combine-css.png 996w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/10-wprocket-combine-css-680x152.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/10-wprocket-combine-css-768x171.png 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\"><\/p>\n<p>If you\u2019re using Autoptimize, there are two checkboxes to \u201caggregate\u201d files. Just know these can sometimes \u2018break\u2019 things on your site, so it\u2019s worth double-checking that everything still looks and functions the same once enabled. And remember to clear the cache beforehand and check for changes in an incognito window. Otherwise, the changes might not be reflected in what you&nbsp;see.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"6. Eliminate render-blocking resources\" data-section=\"render-blocking-resource\">\n<h2>Step 6. Eliminate render-blocking resources<\/h2>\n<\/div><\/div>\n<p>Rendering is the process of turning code into a visible web&nbsp;page.<\/p>\n<p>The key word there is \u2018visible\u2019 because a web page doesn\u2019t always need to fully load before it\u2019s visible.<\/p>\n<p>For that reason, it makes sense to prioritize loading resources for \u2018above the fold\u2019 content.<\/p>\n<p>You can do this by deferring the loading of non-critical CSS and JavaScript&nbsp;files needed for \u2018below the fold\u2019 content until later. To do that in WPRocket, check the boxes to \u201cLoad JavaScript deferred\u201d and \u201cOptimize CSS delivery.\u201d<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"190\" class=\"wp-image-40294\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/11-wprocket-optimize-css.png\" alt=\"11 wprocket optimize css\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/11-wprocket-optimize-css.png 1000w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/11-wprocket-optimize-css-680x129.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/11-wprocket-optimize-css-768x146.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\"><\/p>\n<p>If you\u2019re not using WPRocket, you\u2019ll need two plugins: <a href=\"https:\/\/wordpress.org\/plugins\/autoptimize\/\" target=\"_blank\" rel=\"noopener noreferrer\">Autoptimize<\/a>&nbsp;and <a href=\"https:\/\/wordpress.org\/plugins\/async-javascript\/\" target=\"_blank\" rel=\"noopener noreferrer\">Async JavaScript<\/a>.<\/p>\n<p>In the settings for Autoptimize, check the box to \u201cInline and Defer CSS.\u201d Then, in the settings for Async JavaScript, hit \u201cEnable Async JavaScript.<\/p>\n<p>If you previously saw the \u201celiminate render-blocking resources\u201d issue in PageSpeed Insights, this will usually fix that problem.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1508\" height=\"472\" class=\"wp-image-40287\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/12-render-blocking-pagespeed-insights.png\" alt=\"12 render blocking pagespeed insights\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/12-render-blocking-pagespeed-insights.png 1508w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/12-render-blocking-pagespeed-insights-680x213.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/12-render-blocking-pagespeed-insights-768x240.png 768w\" sizes=\"auto, (max-width: 1508px) 100vw, 1508px\"><\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"7. Lazy-load images and videos\" data-section=\"lazy-loading\">\n<h2>Step 7. Lazy-load images and videos<\/h2>\n<\/div><\/div>\n<p>Lazy-loading improves page speed by deferring the loading of images and videos until they\u2019re visible on the screen. If you\u2019re running WordPress 5.5+, image lazy-loading is <a href=\"https:\/\/make.wordpress.org\/core\/2020\/07\/14\/lazy-loading-images-in-5-5\/\" target=\"_blank\" rel=\"noopener noreferrer\">enabled by default<\/a>, but not for&nbsp;video.<\/p>\n<p>If you\u2019re using WPRocket, solve this by ticking the \u201cEnable for iframes and videos\u201d box under LazyLoad settings.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1098\" height=\"610\" class=\"wp-image-40292\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/13-lazy-loading-videos.png\" alt=\"13 lazy loading videos\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/13-lazy-loading-videos.png 1098w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/13-lazy-loading-videos-680x378.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/13-lazy-loading-videos-768x427.png 768w\" sizes=\"auto, (max-width: 1098px) 100vw, 1098px\"><\/p>\n<p>If you\u2019re not using WPRocket, the free <a href=\"https:\/\/wordpress.org\/plugins\/lazy-load-for-videos\/\" target=\"_blank\" rel=\"noopener noreferrer\">Lazy Load for Videos<\/a>&nbsp;plugin does much the same&nbsp;thing.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"8. Optimize Google Fonts\" data-section=\"google-fonts\">\n<h2>Step 8. Optimize Google Fonts<\/h2>\n<\/div><\/div>\n<p>Many themes use Google Fonts, and these fonts have to be downloaded from Google\u2019s server every time someone visits your website. That can be a time-consuming process because your server has to make HTTP requests, download a CSS file, then download the font from the location referenced in the stylesheet. And it has to do this for every font on the&nbsp;page.<\/p>\n<p>If you\u2019re using WPRocket, it automatically optimizes Google Fonts requests. Otherwise, <a href=\"https:\/\/wordpress.org\/plugins\/swap-google-font-display\/\" target=\"_blank\" rel=\"noopener noreferrer\">Swap Google Fonts Display<\/a>&nbsp;is a good starting point.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"9. Enable preloading\" data-section=\"preloading\">\n<h2>Step 9. Enable preloading<\/h2>\n<\/div><\/div>\n<p>Preloading allows you to define essential resources, so browsers know the priority of files to&nbsp;load.<\/p>\n<p>For example, let\u2019s say that your code looks like&nbsp;this:<\/p>\n<pre>&lt;html&gt; \n&lt;head&gt; \n&lt;script type=\u201dtext\/javascript\u201d src=\u201dsomefile.js\u201d&gt;&lt;\/script&gt;\n&lt;link rel=\u201dstylesheet\u201d href=\u201d\/style.css\u201d&gt;\n&lt;\/head&gt;\n&lt;body&gt;\nContent\n&lt;\/body&gt;\n&lt;\/html&gt; \n<\/pre>\n<p>Based on this code, the JavaScript file would need to load first because of the hierarchy. That\u2019s not ideal because the CSS file is almost certainly more critical than the JavaScript code.<\/p>\n<p>The simplest way to solve this is to add another line of code, like&nbsp;this:<\/p>\n<pre>&lt;link rel=\"preload\" href=\"\/style.css\" as=\"style\"&gt;\n<\/pre>\n<p>That tells&nbsp;browsers to prioritize the CSS file over the JavaScript file, regardless of hierarchy.<\/p>\n<p>You can add preload attributes manually by editing the code, but that can get messy and confusing unless you know what you\u2019re doing. It\u2019s much easier just to install WPRocket, which does this automatically out of the&nbsp;box.<\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"10. Use a CDN\" data-section=\"cdn\">\n<h2>Step 10. Use a&nbsp;CDN<\/h2>\n<\/div><\/div>\n<p>Content delivery networks (CDN) are groups of servers distributed all over the world. Each of these stores a copy of your website so it\u2019s quicker for users to connect when requesting web&nbsp;pages.<\/p>\n<p>For example, let\u2019s say your web host\u2019s server is in the UK. If someone visits your site from the US and you\u2019re not&nbsp;using a CDN, the connection between their device and your server will be slow. If someone visits from the US and you use a CDN, their device will connect to the closest server, which helps things connect faster.<\/p>\n<p>There are lots of CNS providers, so all you need to do is choose one, enable it in WPRocket, and enter the&nbsp;CNAME.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1594\" height=\"778\" class=\"wp-image-40283\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/14-wprocket-cdn.png\" alt=\"14 wprocket cdn\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/14-wprocket-cdn.png 1594w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/14-wprocket-cdn-680x332.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/14-wprocket-cdn-768x375.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/14-wprocket-cdn-1536x750.png 1536w\" sizes=\"auto, (max-width: 1594px) 100vw, 1594px\"><\/p>\n<div class=\"post-nav-link clearfix\" id=\"section1\"><a class=\"subhead-anchor\" data-tip=\"tooltip__copielink\" rel=\"#section1\"><svg width=\"19\" height=\"19\" viewBox=\"0 0 14 14\" style><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M0 0h14v14H0z\" \/><path d=\"M7.45 9.887l-1.62 1.621c-.92.92-2.418.92-3.338 0a2.364 2.364 0 0 1 0-3.339l1.62-1.62-1.273-1.272-1.62 1.62a4.161 4.161 0 1 0 5.885 5.884l1.62-1.62L7.45 9.886zM5.527 5.135L7.17 3.492c.92-.92 2.418-.92 3.339 0 .92.92.92 2.418 0 3.339L8.866 8.473l1.272 1.273 1.644-1.643A4.161 4.161 0 1 0 5.897 2.22L4.254 3.863l1.272 1.272zm-.66 3.998a.749.749 0 0 1 0-1.06l2.208-2.206a.749.749 0 1 1 1.06 1.06L5.928 9.133a.75.75 0 0 1-1.061 0z\" style \/><\/g><\/svg><\/a><div class=\"link-text\" data-anchor=\"11. Optimize your images\" data-section=\"optimize-images\">\n<h2>Step 11. Optimize your images<\/h2>\n<\/div><\/div>\n<p>Lazy-loading solves many problems related to images, but it doesn\u2019t do anything to help images that load above the fold. The bigger they are, the more they\u2019ll negatively impact loading times.<\/p>\n<p>To solve this, compress your images with a plugin like <a href=\"https:\/\/wordpress.org\/plugins\/shortpixel-image-optimiser\/\" target=\"_blank\" rel=\"noopener noreferrer\">Shortpixel<\/a>. Just install it, activate it, go to the settings, enter your API key, click \u201cSave and Go to Bulk Process, then click \u201cRestart optimizing.\u201d<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"371\" class=\"wp-image-40303\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/15-shortpixel.png\" alt=\"15 shortpixel\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/15-shortpixel.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/15-shortpixel-680x158.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/15-shortpixel-768x178.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/15-shortpixel-1536x356.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><\/p>\n<p>If you find that these are too low quality, head to the settings, and change the compression type to glossy or lossless.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1504\" height=\"442\" class=\"wp-image-40304\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/16-shortpixel-compression.png\" alt=\"16 shortpixel compression\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/16-shortpixel-compression.png 1504w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/16-shortpixel-compression-680x200.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/16-shortpixel-compression-768x226.png 768w\" sizes=\"auto, (max-width: 1504px) 100vw, 1504px\"><\/p>\n<h2>The results<\/h2>\n<p>Let\u2019s look at how these optimizations impacted our page speed according to a couple of popular tools.<\/p>\n<p>Here are the before and after stats for my post in Google\u2019s PageSpeed Insights:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"895\" class=\"wp-image-40293\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow.png\" alt=\"1 pagespeed insights slow\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-680x380.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-768x430.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/1-pagespeed-insights-slow-1536x859.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"935\" class=\"wp-image-40286\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast.png\" alt=\"3 pagespeed insights fast\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-680x397.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-768x449.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/3-pagespeed-insights-fast-1536x898.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><\/p>\n<p>And here\u2019s the same from GTMetrix:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"235\" class=\"wp-image-40285\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/18-gtmetrix-before.png\" alt=\"18 gtmetrix before\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/18-gtmetrix-before.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/18-gtmetrix-before-680x100.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/18-gtmetrix-before-768x113.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/18-gtmetrix-before-1536x226.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"245\" class=\"wp-image-40288\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/17-gtmetrix-after.png\" alt=\"17 gtmetrix after\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/17-gtmetrix-after.png 1600w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/17-gtmetrix-after-680x104.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/17-gtmetrix-after-768x118.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/17-gtmetrix-after-1536x235.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"><\/p>\n<p>You can see that the page previously fully loaded in 5.9&nbsp;seconds with a 1.89mb page size and 67 requests. After the optimizations, all three metrics are down. The page size is 695 kilobytes, fully loaded time is 4 seconds, and the number of requests has shrunk by nearly 50%.<\/p>\n<p>If we check all pages on the website in Ahrefs\u2019 <a href=\"https:\/\/ahrefs.com\/site-audit\">Site Audit<\/a>, we see around a 40% improvement in average and 95th percentile load&nbsp;time.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1032\" height=\"444\" class=\"wp-image-40289\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast.png\" alt=\"4 site audit fast\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast.png 1032w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast-680x293.png 680w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/4-site-audit-fast-768x330.png 768w\" sizes=\"auto, (max-width: 1032px) 100vw, 1032px\"><\/p>\n<h2>Final thoughts<\/h2>\n<p>Everything above worked well for my site, and it\u2019s worked well for other sites too. However, it\u2019s important to remember that every WordPress configuration is different. You might have more plugins, a clunkier theme, slower hosting, or more third-party tracking scripts, all of which slow your website down.<\/p>\n<p>If your page speed could still do with some improvements after making these optimizations, then it\u2019s likely that you need custom work done on your site. So it\u2019s worth hiring a developer or page speed expert to take a look at things a bit more closely.<\/p>\n<p>Or, if you want more details on specific issues, check out <a href=\"https:\/\/ahrefs.com\/blog\/core-web-vitals\/\" data-ahr=\"https:\/\/ahrefs.com\/blog\/advanced-pagespeed-guide\/\">our complete page speed guide<\/a>.<\/p>\n<p>Did we miss anything important from this guide? Ping me <a href=\"https:\/\/twitter.com\/joshuachardwick?lang=en\" target=\"_blank\" rel=\"noopener noreferrer\">on Twitter<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>But slow WordPress websites are a common issue. Here\u2019s the mobile score for a page of mine in PageSpeed Insights. If we run the entire website through Ahrefs\u2019 Site Audit\u2014which shows page load time for all pages\u2014we see that this<span class=\"ellipsis\">\u2026<\/span><\/p>\n<div class=\"read-more\">Read more \u203a<\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":114,"featured_media":40310,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[329],"tags":[],"coauthors":[336],"class_list":["post-40305","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-seo","odd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Speed Up Your WordPress Website in 20 Minutes<\/title>\n<meta name=\"description\" content=\"Pagespeed is a confirmed Google ranking factor on desktop and mobile. Learn how to speed up your WordPress website in 11 simple steps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Speed Up Your WordPress Website in 20 Minutes\" \/>\n<meta property=\"og:description\" content=\"Make WordPress lightning-fast.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"SEO Blog by Ahrefs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Ahrefs\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-22T16:00:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-05T08:11:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"990\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joshua Hardwick\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Make WordPress lightning-fast.\" \/>\n<meta name=\"twitter:creator\" content=\"@JoshuaCHardwick\" \/>\n<meta name=\"twitter:site\" content=\"@ahrefs\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/\"},\"author\":{\"name\":\"Joshua Hardwick\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/e6a89cbde8e750d22996aa26e213e712\"},\"headline\":\"How to Speed Up Your WordPress Website in 20 Minutes\",\"datePublished\":\"2020-10-22T16:00:57+00:00\",\"dateModified\":\"2023-10-05T08:11:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/\"},\"wordCount\":2053,\"publisher\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png\",\"articleSection\":[\"Technical SEO\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/\",\"url\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/\",\"name\":\"How to Speed Up Your WordPress Website in 20 Minutes\",\"isPartOf\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png\",\"datePublished\":\"2020-10-22T16:00:57+00:00\",\"dateModified\":\"2023-10-05T08:11:05+00:00\",\"description\":\"Pagespeed is a confirmed Google ranking factor on desktop and mobile. Learn how to speed up your WordPress website in 11 simple steps.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png\",\"width\":1920,\"height\":990},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#website\",\"url\":\"https:\/\/ahrefs.com\/blog\/\",\"name\":\"SEO Blog by Ahrefs\",\"description\":\"Link Building Strategies &amp; SEO Tips\",\"publisher\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ahrefs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\",\"name\":\"Ahrefs\",\"url\":\"https:\/\/ahrefs.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png\",\"width\":2048,\"height\":768,\"caption\":\"Ahrefs\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Ahrefs\/\",\"https:\/\/x.com\/ahrefs\",\"https:\/\/www.linkedin.com\/company\/ahrefs\/\",\"https:\/\/www.youtube.com\/c\/ahrefscom\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/e6a89cbde8e750d22996aa26e213e712\",\"name\":\"Joshua Hardwick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/10\/meme.jpg109e89523fcea81015d3cc08c79f9036\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/10\/meme.jpg\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/10\/meme.jpg\",\"caption\":\"Joshua Hardwick\"},\"description\":\"Head of Content @ Ahrefs (or, in plain English, I'm the guy responsible for ensuring that every blog post we publish is EPIC).\",\"sameAs\":[\"https:\/\/x.com\/JoshuaCHardwick\"],\"url\":\"https:\/\/ahrefs.com\/blog\/author\/joshua-hardwick\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Speed Up Your WordPress Website in 20 Minutes","description":"Pagespeed is a confirmed Google ranking factor on desktop and mobile. Learn how to speed up your WordPress website in 11 simple steps.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/","og_locale":"en_US","og_type":"article","og_title":"How to Speed Up Your WordPress Website in 20 Minutes","og_description":"Make WordPress lightning-fast.","og_url":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/","og_site_name":"SEO Blog by Ahrefs","article_publisher":"https:\/\/www.facebook.com\/Ahrefs\/","article_published_time":"2020-10-22T16:00:57+00:00","article_modified_time":"2023-10-05T08:11:05+00:00","og_image":[{"width":1920,"height":990,"url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png","type":"image\/png"}],"author":"Joshua Hardwick","twitter_card":"summary_large_image","twitter_description":"Make WordPress lightning-fast.","twitter_creator":"@JoshuaCHardwick","twitter_site":"@ahrefs","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#article","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/"},"author":{"name":"Joshua Hardwick","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/e6a89cbde8e750d22996aa26e213e712"},"headline":"How to Speed Up Your WordPress Website in 20 Minutes","datePublished":"2020-10-22T16:00:57+00:00","dateModified":"2023-10-05T08:11:05+00:00","mainEntityOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/"},"wordCount":2053,"publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png","articleSection":["Technical SEO"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/","url":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/","name":"How to Speed Up Your WordPress Website in 20 Minutes","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png","datePublished":"2020-10-22T16:00:57+00:00","dateModified":"2023-10-05T08:11:05+00:00","description":"Pagespeed is a confirmed Google ranking factor on desktop and mobile. Learn how to speed up your WordPress website in 11 simple steps.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/speed-up-wordpress\/#primaryimage","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2020\/10\/fb-wordpress-pagespeed.png","width":1920,"height":990},{"@type":"WebSite","@id":"https:\/\/ahrefs.com\/blog\/#website","url":"https:\/\/ahrefs.com\/blog\/","name":"SEO Blog by Ahrefs","description":"Link Building Strategies &amp; SEO Tips","publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahrefs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ahrefs.com\/blog\/#organization","name":"Ahrefs","url":"https:\/\/ahrefs.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","width":2048,"height":768,"caption":"Ahrefs"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Ahrefs\/","https:\/\/x.com\/ahrefs","https:\/\/www.linkedin.com\/company\/ahrefs\/","https:\/\/www.youtube.com\/c\/ahrefscom"]},{"@type":"Person","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/e6a89cbde8e750d22996aa26e213e712","name":"Joshua Hardwick","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/10\/meme.jpg109e89523fcea81015d3cc08c79f9036","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/10\/meme.jpg","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2019\/10\/meme.jpg","caption":"Joshua Hardwick"},"description":"Head of Content @ Ahrefs (or, in plain English, I'm the guy responsible for ensuring that every blog post we publish is EPIC).","sameAs":["https:\/\/x.com\/JoshuaCHardwick"],"url":"https:\/\/ahrefs.com\/blog\/author\/joshua-hardwick\/"}]}},"_links":{"self":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/40305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/users\/114"}],"replies":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/comments?post=40305"}],"version-history":[{"count":0,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/40305\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/media\/40310"}],"wp:attachment":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/media?parent=40305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/categories?post=40305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/tags?post=40305"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/coauthors?post=40305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}