How to Speed Up WordPress to Win Featured Snippets (2019)


Speed up WordPress win featured snippets

Want to win Google featured snippets?

Your site must have GREAT page speed.

Once your loading times are world class... you'll see it a big rise in featured snippets.. as well as everything else..

Here are 43 free WordPress optimizations to speed up your site to help you WIN ALL THE SNIPPETS!

WordPress Speed Optimization


1. PLUGIN OPTIMIZATION
Less is more. Having too many plugins installed can REALLY slow down your site.
The first & easiest way to improve WordPress speed is by optimizing your plugins.
  • Even if you don’t have a ton of plugins, it’s a good idea to evaluate the ones you do have.
  • Inefficient plugins can have an impact on your site speed as well.
HOW TO DO IT:
STEP #1. BACKUP WORDPRESS
Always backup (free) your WordPress site before removing plugins. Each site will behave differently depending on the theme, plugins, and code it is running.
STEP #2. TESTING YOUR PLUGINS
When you’re looking to optimize your plugins to improve site speed, you'll need to selectively disable plugins, then measure your site’s performance. This can be a tedious process if you have a lot of plugins, but will show you the difference each one makes.
First, run a speed test with all of your plugins enabled. You can do this with tools like GTmetrix or WebPageTest.org.
Then, experiment by deactivating your plugins one at a time and re-testing your speed. Make a note of your page load times after each test, and which plugins you deactivated to achieve faster speeds. If you have a lot of plugins, this process could take a while.

If the same plugin appears numerous times in your report (or takes a long time to load in the waterfall tab), you should likely delete or replace that plugin.
STEP #3. DELETE UNNECCESARY PLUGINS
Less is more. Try to remove as many plugins as you can.
A) Eliminate plugins for tasks you can do manually
Depending on your level of experience, you can cut down on your plugins by doing certain tasks manually. For example...

Google Analytics
If you have the Insert Headers and Footers plugin (or a similar one) installed to edit other parts of your header tag, you can copy your Google Analytics code from your admin dashboard, then paste it here. If you don’t have a plugin for editing headers and footers installed, you can manually add it to your header through your site’s FTP. Of course, this is a more advanced option, and only a good idea if you’re comfortable with basic code edits.

Fonts
Font plugins are designed to make it easy to change your site’s fonts — but if you have one installed, you can eliminate it with a few lines of code. Go to Google Fonts and select the font you want to use on your site. Under “Embed,” you’ll see the HTML and CSS codes for that font. Add the HTML code to your header, and the CSS to your site’s CSS stylesheet wherever you want to use your chosen font. You can do this with as many fonts as you want, too. Make sure your plugins and themes are compatible with newer PHP versions.

Contact Forms
Many themes come with built-in contact form functionality. If you notice that your contact form plugin is slowing your site, double-check to see if this feature comes with your theme. If so, update your forms and delete the plugin.

B) Identify overlaps in functionality
You can also remove plugins that do the same thing. 

For example...

The WP Total Cache and WP Rocket caching plugins serve many of the same purposes, you most likely don’t need both. If you had both of them installed on your site, you could evaluate the features you use on each and see if either could do everything you need. Then, enable all of those features in the plugin you choose to stick with, and deactivate the other.
STEP #4. USING LIGHTWEIGHT PLUGINS
You need to do a little research but you should replace slow plugins with lightweight plugins. For example...

If you're using a slider plugin for your website like Revolution Slider, that can be a heavy plugin that takes up a lot of load time. But a free lightweight plugin like SOLILOQUY can load much faster.
Here are some other free Lightweight Plugins to consider replacing your existing plugins with:
Further Reading: Best WordPress Plugins
High CPU Plugins To Avoid
Avoid these 35 WordPress plugins and your site will load faster.
Many of you remember using P3 Profiler to run scans that detect slow plugins. But it hasn’t been updated for several years – so I created this list which also talks about finding slow plugins in GTmetrix, alternative lightweight plugins, and disabling unused plugin settings.
There are certain plugin settings known for causing high CPU like Wordfence’s live traffic report, Broken Link Checker’s ongoing scans, and other settings that run scans, collect statistics, send email notifications, or robust plugins that offer tons of functionality (but you only need some features… like only using one feature from Jetpack). I would also install WP Disable to turn off WordPress settings you don’t use (Emojis, Gravatars, heartbeat API, etc).
Slow Loading WordPress Plugins
*Common culprits include related post, statistic, sitemap, chat, calendar, page builders, and plugins that run ongoing scans/processes or show high CPU in GTmetrix.
  • AdSense Click Fraud Monitoring
  • Better WordPress Google XML Sitemaps
  • Broken link checker
  • Constant Contact for WordPress
  • Contact Form 7
  • Contextual Related Posts
  • Digi Auto Links
  • Disqus Comment System
  • Divi builder
  • Essential Grid
  • Fuzzy SEO Booster
  • Google XML Sitemaps
  • Jetpack
  • NextGEN Gallery
  • NewStatPress
  • Reveal IDs
  • Revolution Slider
  • S2 member
  • SEO Auto Links & Related Posts
  • Similar Posts
  • Slimstat Analytics
  • SumoMe
  • VaultPress
  • Visual Composer
  • WooCommerce
  • WordPress Facebook
  • WordPress Related Posts
  • WordPress Popular Posts
  • WP Statistics
  • WP-PostViews
  • WP Power Stats
  • wpCloaker
  • WPML
  • Yet Another Related Post Plugin
  • Yuzo Related Posts
Finding Slow Plugins In GTmetrix
A solution to finding YOUR slowest loading plugins is to run your site through GTmetrix and check out the report. If when you expand items, the same plugin appears multiple times in your report (or simply takes a long time to load in the GTmetrix waterfall tab), you should probably delete or replace that plugin.
Turn Off Unused Plugin Settings
Go through each of your plugins and decide which settings you can turn off (this will lower CPU). For example, in Yoast under Settings > General > Features I disabled the following…
Wordfence’s live traffic view also consumes high CPU…
Avoid Using 2 Plugins For Duplicate Functionality
Since Yoast creates a sitemap for you, you don’t need the Google XML Sitemaps plugin. If your host takes backups for you, you don’t need a plugin for that. If you have Google Analytics, do you really a statistics plugin that slows down your site and does about 1/1000 of what Google Analytics can do? Think about which plugins you actually need and delete the ones you don’t. And instead of using Jetpack so you can use 1 or 2 features, install a lightweight plugin that does the same thing but doesn’t have a million settings/features that will slow down your site.
Disable Unused Settings In WordPress
WP Disable lets you disable settings in WordPress that consume CPU and slow down your site. It also has options for heartbeat control (if you remember the actual heartbeat control plugin, you can now delete it and just use this)… as well as a few other options that can speed up your website/admin panel. Go through the settings and disable everything you don’t use…
Tips On Using WP Disable
  • Disable EVERYTHING you don’t use
  • Scheduling spam deletion is a good idea
  • Emojis, Google Maps, and Gravatars take a long time to load
  • Pingbacks and trackbacks aren’t usually worth the extra resources
  • Set post revisions to 3-5 so you have backups, but you don’t need hundreds
  • Miscellaneous options in the “request” tab can further your improve load times
AWStats Helps Identify Sources Of High CPU/Bandwidth
AWStats is a tool built-in to most hosting cPanels that provides statistics on CPU usage. It tells you whether certain bots, images, downloaded files, and even IP addresses are consuming a lot of CPU. You can also use the WP Server Stats plugin but I think AWStats does an awesome job.
AWStats helps you find:
  • High bandwidth crawlers
  • High bandwidth IP addresses
  • High bandwidth download files
  • High bandwidth files (eg. images)
  • Total bandwidth usage (for monitoring)
Search engine crawlers/spiders usually consume the most CPU (bandwidth)
What If You Absolutely Need A Resource-Hungry Plugin?
If a plugin is consuming too much CPU your only option (other than deleting or replacing it) is to upgrade your hosting plan to include more server resources.
2. CACHING
WordPress is slow out of the box. The good news is that caching can improve overall speed.
What is the best free plugin to use for WordPress caching?
HOW TO DO IT:
  • Plugins
  • The most widely used free caching plugin is W3 Total Cache (W3TC)
There are a lot of other free caching plugins that are really great. There are also paid plugins which do the job.

However, due to it's powerful options and free price tag, we will stick to W3TC in this section.
HOW TO DO CACHING WITH W3 Total Cache
If you’re using the free W3 Total Cache plugin to make your WordPress site load faster, you made an good choice.
Using it with Cloudflare and MaxCDN and fast hosting plan will yield lightning fast loading times.
Many W3 Total Cache settings are preset and will speed up your site. Further tweaking W3TC settings is a complex task but will boost your site speed even more.
BEST PRACTICES:
Caching plugins can break sites.
  • Always backup your WordPress site before configuring cache plugins.
  • Do not use more than one cache plugin at a time unless you know what you're doing. This can break or slow down your site.
*Note that PHP will not run on a cached page. PHP content (i.e. Twitter widgets, online shopping carts..) will usually break with a caching plugin enabled.

Some solutions...
  1. Ask your website developer to use JavaScript or AJAX instead of PHP content
  2. Turn off caching for that page or remove the content if it is less important for user experience than speed
  3. Use a plugin which doesn’t rely on PHP but uses JavaScript and/or AJAX to generate the output
WHAT IS CACHING?
  • Pronounced 'cashing'
  • Caching is reusing data from previous visits to speed up future requests.
In simple terms,  caching refers to the process of creating static versions of your content, and serving that to visitors .
EXPLAINING CACHING
  1. When someone visits a page on your website, their browser contacts your web server
  2. Your WordPress installation (on the web server) contacts the database to fetch your posts and other data (images, Javascript, CSS, and WordPress database content)
  3. The web server compiles everything and returns an HTML page to the visitor's browser
COMMON W3TC ISSUES
W3 Total Cache minify may break WordPress plugins, themes or your ability to even log into WordPress.

Depending on W3TC's configuration and its compatibility with other plugins or themes, typical symptoms are:
  • pictures not showing
  • pages not displaying correctly
  • Woocommerce shopping carts not updating or showing the wrong order.
The answer isn’t always to use a different plugin.

Here are some fixes for common W3 Total Cache error notifications:
some files appear to be missing
If you get this error, you will need to uninstall the plugin and make sure that residual files are removed before reinstalling.
status not cached
W3 Total Cache doesn’t cache certain resources. The debug tool will simply provide you with information regarding what is or isn’t cached. You can check your plugin works with this online tutorial. If you have run all the tests and still have issues or if your load time isn't improved, it’s time to consider using a new caching plugin.
error 404
With some of the latest WordPress updates, W3 Total Cache can cause 404 errors. Some have noticed that in Google Search Console or in GTMetrix. When you use free plugins, one of the downsides is that sometimes they aren’t maintained or compatible with WordPress updates. One of the fixes offered for this issue is to disable caching of 404 pages in the plugin’s settings but it’s not a guaranteed fix for everyone.
If you have tweaked this plugin over the years and forget some of the changes you made or why, it can be very hard to find the source of your 404 problem. In that case, you can investigate, do a fresh install or switch plugins to find something that will alway be kept up-to-date and will remain 100% compatible with WordPress, no matter how many updates happen.
error 500 or wp-admin error notification
This caching plugin can cause issues with using WordPress in network mode when the page caching option is enabled. W3 Total Cache has been known to cause many 500 errors. It also depends on some hosting services’ use of Varnish in which case changes to your .htaccess are your best bet. Some people solved this issue by turning On to “combine only” option on the CSS tab of the plugin’s settings and then selecting “auto” on the Minify tab settings.
500 errors caused by caching plugins can be pretty difficult to fix on your own. Once again, if you are seeking an easy to use caching plugin that doesn’t require this work to keep your website loading fast, you should consider other options.
unable to resolve hostname
This issue occurs sometimes when you use a CDN (CloudFront and MaxCDN in particular). The main solution offered is to downgrade the plugin version. However, the one major drawback of downgrading is that a high risk XSS vulnerability was found in W3 Total Cache. As a result, it’s not recommended for security reasons. This is one of the areas where premium plugins like WP Rocket are most effective. Keeping up with changes made by third-party services is not easy and requires a dedicated team of developers to provide new caching plugin versions that are compatible.
website formatting issues
Disable the “minify” option in the General Settings tab.
slow WordPress dashboard
disable “object cache” in the W3TC General Settings tab, set page rules in Cloudflare, then disable unused settings in WordPress core using the WP Disable plugin. You should also avoid slow loading plugins.
slower load times than before
disable “object cache” or wait 72 hours for propagation.
crashed website
open wp-config and delete these lines:
/** Enable W3 Total Cache */ define('WP_CACHE', true); // Added by W3 Total Cache
Open .htaccess and remove all lines between and including:
# BEGIN W3TC ... # END W3TC
Then delete: advanced-cache.php, objectcache.php, and db.php from wp-content. Also delete the w3-total-cache folder in wp-content/plugins.
HOW TO PROPERLY UNINSTALL CACHING PLUGINS
Important! Backup WordPress before uninstalling caching plugins.
If you suspect that W3 Total Cache is causing issues on your website or if you would like to install another WordPress caching plugin, it is very important to make sure that you uninstall it the right way. Otherwise, it could end up causing you even more trouble!
Simply do a quick Google search, check the developer’s documentation on their site, or shoot them a quick email.
You should also cleanup any shortcode or tables left behind by the plugin that can slow down your site.
If you are using a plugin that utilizes shortcodes and you delete and or remove that plugin, your site could look really weird until you replace them.
Your best option for cleaning up tables is the Advanced Database Cleaner plugin.
ALTERNATIVES TO THE W3 TOTAL CACHE PLUGIN
W3 Total Cache is the most complete WordPress performance framework, but it will not work with all WordPress setups. Here are 7 of the best cache plugin alternatives...
1. Super Cache
WP Super Cache is another popular free caching plugin for WordPress, with over a million active installs. The plugin is run by Automattic, the same team behind WordPress.com.
WP Super Cache helps you generate static html files from your dynamic WordPress blog. After processing comparatively heavier WordPress PHP scripts on your site, WP Super Cache serves the static HTML file to the vast majority of your website visitors.
WP Super Cache serves cached files in 3 ways:
  • Simple: This is the most recommended method of file caching because you don’t have to edit PHP files, plus the .htaccess file does not need to be configured.
  • Expert: This is the fastest caching method to serve super cached HTML files to users, but requires a modification of your .htaccess files.
  • WP Super Caching: This method is used to cache pages for known users (the ones who log into your site, leave comments, etc.). Though it’s the most flexible caching method, it’s slightly slower compared to other methods.
Price: Free
2. WP Rocket
WP Rocket is the most popular premium caching plugin for WordPress. The ease of configuration is what sets WP Rocket apart from its competition. Once you activate the plugin, page caching will immediately be activated.
A few more benefits of using WP Rocket are:
  • Indexing your website on search engines will be improved.
  • To improve page load time, HTML, JavaScript, and CSS files are minified.
  • Lazy loading is applied to your images, meaning your images are loaded only when they’re visible to your visitors on their browser.
  • It comes with loads of hooks that help developers easily extend its features.
Price: Starts at $39 for a single site license.
3. WP Fastest Cache
WP Fastest Cache comes with fewer configuration settings for WordPress caching, which makes it one of the easiest WordPress caching plugins available in the official WordPress plugins repository.
Just like any other caching plugin, it creates static HTML files from your dynamic WordPress site.
To reduce the size of files, the plugin minifies HTML and CSS files. It also allows you to disable emojis on your site. It effectively implements browser caching to reduce page load time for repeat visitors and combines many CSS files into one to reduce the number of HTTP round-trips.
The premium version of the plugin comes with a lot of unique features to increase your page speed, like image optimization, database cleanup, mobile caching, and a lot more.
After you installed the free WP Fastest Cache plugin, you can purchase the premium version directly from your WordPress dashboard.
Price: Both free and premium versions are available.
4. Comet Cache
Comet Cache is another popular caching plugin with 60,000 active installs. Unlike other caching plugins, Comet Cache comes with the ability to cache logged-in users too. That means if you’re running a membership site, eCommerce site, or any other sites that require users to register, then Comet Cache is a must-use plugin for you.
The plugin uses browser caching with the Apache server, meaning you can increase the page speed by avoiding multiple roundtrips between the server and browser.
You can also serve all cached files on your site from the content delivery network (CDN) of your choice. It supports popular CDN networks like CloudFront, MaxCDN, and more.
To avoid generating a new version of the cache while your server is busy, the plugin monitors the server load and temporarily disables cache expiration.
The plugin also shows you cache statistics to help you gain insight into the status of your site cache.
Price: Both free and premium versions are available. A single site license can be purchased for a one-time fee of $39.
5. Cache Enabler
Cache Enabler is a lightweight caching plugin that creates a static HTML file of your site and serves them to the vast majority of your website visitors upon request. It needs minimal configuration and comes with all the important features you’ll ever need from a caching plugin.
Unlike most free WordPress caching plugins, Cache Enabler provides extensive documentation that helps you explore the different plugin features. With beautiful screenshots and videos, the documentation will walk you through the different aspects of WordPress caching.
It’s in your best interest to not use any mobile-specific themes or plugins that show different layouts for mobile and desktop users along with Cache Enabler because then the cache will be bypassed, rendering it useless.
Price: Free
6. Hyper Cache
Hyper Cache is a caching plugin purely written in PHP that can be used in both cheap hosting environments as well as high end servers.
Activating Hyper Cache is easy because it works with a set of default values.
The plugin comes with a mobile theme switch option that allows you to enable caching even if you’re using different layouts for mobile users and desktops. This comes in handy if you use a responsive theme on your site or need different ad formats for different devices.
Another unique benefit of Hyper Cache is its ability to serve cached pages to comment authors. However, you can also disable serving cached pages to comment authors if you want to.
It is also a bbPress ready plugin, so you can enable cache for your bbPress forum pages.
Price: Free
When it comes to choosing a WordPress caching plugin for your site, there is no “one size fits all” solution.
If you’d like to choose the best free WordPress caching plugin that does the job, then choose either W3 Total Cache or WP Super Cache. Both of them are constantly being updated and are used by over a million websites.
If you need a premium WordPress caching solution that requires minimal tinkering choose WP Rocket.
FRAGMENT CACHING
This will make your site even faster. Fair warning, you will need some Jedi level coding skills to properly configure fragment caching. You will also need to pay for the W3 Total Cache Pro plugin to use fragment cache.
3. IMAGE OPTIMIZATION
You don’t want Google to hate your website. Fortunately, you can easily reduce your image file sizes to help improve your website’s speed.
  • Images make up on average 54% of a web page's overall weight. 😮 Optimize them!
  • HOW TO DO IT: Google recommends automatic image optimization.
The very first question you should ask yourself is whether an image is, in fact, required to achieve the effect you are after. Good design is simple and will also always yield the best performance. If you can eliminate an image resource, which often requires a large number of bytes relative to HTML, CSS, JavaScript and other assets on the page, then that is always the best optimization strategy. That said, a well-placed image can also communicate more information than a thousand words, so it is up to you to find that balance.
Next, you should consider if there is an alternative technology that could deliver the desired results, but in a more efficient manner:
  • CSS effects (gradients, shadows, etc.) and CSS animations can be used to produce resolution-independent assets that always look sharp at every resolution and zoom level, often at a fraction of the bytes required by an image file.
  • Web fonts enable use of beautiful typefaces while preserving the ability to select, search, and resize text - a significant improvement in usability.
If you ever find yourself encoding text in an image asset, stop and reconsider. Great typography is critical to good design, branding, and readability, but text-in-images delivers a poor user experience: the text is not selectable, not searchable, not zoomable, not accessible, and not friendly for high-DPI devices. The use of web fonts requires its own set of optimizations, but it addresses all of these concerns and is always a better choice for displaying text.
SVG
All modern browsers support Scalable Vector Graphics (SVG), which is an XML-based image format for two-dimensional graphics: we can embed the SVG markup directly on the page, or as an external resource. In turn, an SVG file can be created by most vector-based drawing software, or by hand and directly in your favorite text editor.
Case in point, svgo reduces the size of the above SVG file generated by Illustrator by 58%, taking it from 470 to 199 bytes. Further, because SVG is an XML-based format, we can also apply GZIP compression to reduce its transfer size - make sure your server is configured to compress SVG assets!
Lossless vs lossy image compression
  • Due to how our eyes work, images are great candidates for lossy compression
  • Image optimization is a function of lossy and lossless compression
  • Differences in image formats are due to the difference in how and which lossy and lossless algorithms are used to optimize the image
  • There is no single best format or "quality setting" for all images: each combination of particular compressor and image contents produce a unique output
For certain types of data, such as source code for a page, or an executable file, it is critical that a compressor does not alter or lose any of the original information: a single missing or wrong bit of data could completely change the meaning of the contents of the file, or worse, break it entirely. For some other types of data, such as images, audio, and video, it may be perfectly acceptable to deliver an "approximate" representation of the original data.
In fact, due to how the eye works, we can often get away with discarding some information about each pixel in order to reduce the filesize of an image - for example, our eyes have different sensitivity to different colors, which means that we can use fewer bits to encode some colors. As a result, a typical image optimization pipeline consists of two high level steps:
  1. Image is processed with a "lossy" filter that eliminates some pixel data
  2. Image is processed with a "lossless" filter that compresses the pixel data
The first step is optional, and the exact algorithm will depend on the particular image format, but it is important to understand that any image can undergo a lossy compression step to reduce its size.In fact, the difference between various image formats, such as GIF, PNG, JPEG, and others, is in the combination of the specific algorithms they use (or omit) when applying the lossy and lossless steps. 
Image optimization boils down to two criteria: optimizing the number of bytes used to encode each image pixel, and optimizing the total number of pixels: the filesize of the image is simply the total number of pixels times the number of bytes used to encode each pixel. Nothing more, nothing less.
Image optimization checklist
Image optimization is a science:
Some tips as optimize your images:
  • Prefer vector formats: vector images are resolution and scale independent, which makes them a perfect fit for the multi-device and high-resolution world.
  • Minify and compress SVG assets: XML markup produced by most drawing applications often contains unnecessary metadata which can be removed; ensure that your servers are configured to apply GZIP compression for SVG assets.
  • Pick best raster image format: determine your functional requirements and select the one that suits each particular asset.
  • Experiment with optimal quality settings for raster formats: don't be afraid to dial down the "quality" settings, the results are often very good and byte savings are significant.
  • Remove unnecessary image metadata: many raster images contain unnecessary metadata about the asset: geo information, camera information, and so on. Use appropriate tools to strip this data.
  • Serve scaled images: resize images on the server and ensure that the "display" size is as close as possible to the "natural" size of the image. Pay close attention to large images in particular, as they account for largest overhead when resized!
  • Automate, automate, automate: invest into automated tools and infrastructure that will ensure that all of your image assets are always optimized.
Google recommends automatic image compression
According to Google, image optimization should be automated. It's easy to forget image optimization and content that doesn't go through a build pipeline can easily slip through the cracks.
To automate image optimization, Google suggests using imagemin or libvpsfor.
Everyone should be compressing their images efficiently.
Use ImageOptim. It can really reduce the size of images while keeping quality.
GIFs
Don't use them. They really slow down your site, especially on mobile.
Get ruthless with your images 😮. Remove as many as possible.
Optimize them!
The bottom line:
Images often account for most of the downloaded bytes on a web page and also often occupy a significant amount of visual space. As a result, optimizing images can often yield some of the largest byte savings and performance improvements for your website: the fewer bytes the browser has to download, the less competition there is for the client's bandwidth and the faster the browser can download and render useful content on the screen.

If you spend hours crafting the perfect post, don’t miss out on the chance to optimize your images for maximum search engine benefit. All of these steps should take you no longer than a few minutes.
4. CONTENT DELIVERY NETWORKS
A Content Delivery Network (CDN) is an extension of cache optimization designed to supercharge website speed specifically aimed at globally dispersed web traffic. CDNs are a network of servers hosting cached copies of web pages. Internet users requesting your pages are directed to the nearest server within this network based on where they are located geographically.
Popular CDN Providers
There are a lot of great CDN providers to choose from. Most of them have free trials, so we recommend try them and see which one works the best for your site. Here are some other third-party providers you should check out:
  • KeyCDN
  • Cloudflare
  • StackPath (Previously MaxCDN)
  • CDN77
  • Amazon CloudFront
  • Fastly
  • Incapsula
  • Akamai
Cloudflare
If you are using or interested in Cloudflare, we have an in-depth tutorial on how to install Cloudflare on your WordPress site.
What Are CDN Benefits?
Traditional benefits of CDN including performance boost, high availability, and page rank.
Check out these 5 reasons why you should be using a CDN.
Reason #1: Performance Boost
  • A CDN can help lower your time to first byte (TTFB). TTFB is a measurement of how long the browser has to wait before receiving its first byte of data from the server.
  • Faster Delivery With Caching. Just like you utilize caching with your WordPress host or a plugin, CDNs also utilize caching. That is one way in which they can deliver files so fast.
  • GZIP Compression. WordPress CDNs also use GZIP. GZIP compression is enabled server-side (or rather on the CDN server/POP), and allows for even further reduction HTML/CSS/JavaScript file size. It will not work on images as these are already compressed in a different way. It is probably one of the easiest optimizations you could make. All major CDNs have this enabled by default.
  • Brotli Compression. This is a newer compression algorithm developed by Google which has been shown to reduce file sizes up to 26 percent over existing solutions, including GZIP. The adoption rate for Brotli is growing quickly. Google is now compressing Display Ads with Brotli compression.
  • HTTP/2 is utlized by all CDNs to speed up delivery of assets.
Reason #2: Lower Bandwidth Costs
Another benefit of a CDN is that it can offload resources and CPU from your hosting. This helps prevent spikes in traffic from overwhelming your host's servers. It can also help keep your bandwidth costs low. You don't want your content to going viral to result in a whopping bill from your host, or an overage charge.
Another way a CDN helps decrease costs is by providing easy ways to enable hotlink protection. This basically refers to restricting HTTP referrers and preventing others from embedding your assets (images – we have a tutorial on how to protect your images) on other websites. Some of you may have heard of the Huffington Post fiasco. An author on the Huffington Post copy and pasted images from the Oatmeal’s website, which in turn accrued him a bill of over $1,000 from AWS. The owner of the Oatmeal ended up replacing the images so that readers of the Huffington Post article would see it. But this is why it is always important to enable hotlink protection, otherwise, you might end up with an outrageous bill.
Reason #3: High Availability and Scalability
CDNs also offer high-availability and scalability. Since the replicated content is available across multiple POPs at different geographic locations, web traffic is dynamically routed to another server if one goes down. And there is no need to worry about scalability as CDN providers are built with that in mind. If you are utilizing a smaller shared host, a CDN could actually keep your website from crashing since it is handling most of the load.
Reason #4: SEO Advantages
Google made site speed a ranking factor back in 2010, so it is no secret that a faster website could result in higher rankings. While there is no way to know how much weight is placed on speed, you can safely assume it is one of the more important ones, as it affects the user experience. Brian Dean analyzed the top 1 million domains to look at the correlation between site speed and Google rankings and the results were very positive. While these tests are almost impossible to prove conclusively, you can be assured that having a faster website is only going to help you in Google. To put it simply, Google rewards fast sites. Besides the speed of your website’s pages, a CDN can also help increase the crawl rate of your media such as images, which correlate to indexing in Google Image search.
Reason #5: Additional Security
Most CDN providers provide additional security by providing the option of iimplementing web application firewalls (WAF) and Origin shields. These can help mitigate DDoS attacks on your WordPress site including UDP and ICMP protocols; SYN/ACK, DNS amplification, and Layer 7 attacks. Other benefits include a proxy which helps to hide your IP address, although it is not bulletproof. CDN’s also allow you to create secured links with an expiration time. After expiration users can no longer access that content.
5. HOSTING
6. LIGHTWEIGHT THEMES
A lightweight theme will definitely speed up your site.
If your WordPress site is slow, it’s probably either your hosting or theme. This is due to poor coding by the theme developer or too many unnecessary built-in features.
Behind every WordPress site, there is a theme or framework and along with that can sometimes come bloat. Every theme is coded differently and because of that, there are those that are better than others. The default, free WordPress theme Twenty Fifteen is actually quite fast because it is very lightweight.
Be careful when purchasing themes on popular marketplaces such as ThemeForest and Creative Market. While there are a lot of great themes on there, you also need to realize that developers sometimes just keep adding features to generate more sales. It is more about finding the right developers.
Lightweight frameworks such as the Thesis Theme framework and Genesis (StudioPress) also have great reputations for developing fast, well-coded themes. I know you don’t want to change your theme. But if your design sucks anyway, this can be a game changer -- and definitely does affect your site speed.
WHY UPGRADE TO A LIGHTWEIGHT THEME?
1. SEO-Friendly: Clean Code = Less Technical Problems
The real SEO you get with a fast theme is the clean code that makes your website run...
  • fast
  • responsively
  • securely
  • smoothly
Most websites have technical issues because of poorly coded themes. Avoiding technical issues benefits SEO by improving user experience.
2. Reliability
There’s a lot to be said about purchasing a theme from a reputable company (as opposed to an independent developer on ThemeForest). The reliability factor alone can save you countless hours having to deal with technical issues, and the possibility that your WordPress theme will be discontinued or abandoned. And can also save you a LOT of money hiring a developer to fix errors.
HOW TO FIND THE BEST WORDPRESS THEMES
Let’s face it, it’s a hassle spending time searching for a fast and reliable theme.

But it’s the worst to spend even more time trying to troubleshoot a bad theme only to have to replace it. Or pay a developer to fix it.

So, if you want to spare yourself the time and trouble, this lesson will help you assess a WordPress theme’s quality...
Free themes offer beautifully designed websites. Premium themes—especially ones that are multipurpose—open up even more possibilities.
By understanding your site’s needs, your limitations as a developer, and other factors, you’ll be able to choose the best WordPress theme for your website.
theme developer
The first place you should start is with the developer who coded it.
Here is what you need to consider...
Is the developer well-known in the WordPress community?
Check their profile on the platform on which you found the theme. On wordpress.org, you’ll only be able to see the other themes they’ve created, but that should be enough to tell you what sort of quality you’re working with.
What do other users of the theme say?
Unless you’re using a theme directly from a developer’s site, there will be ratings and reviews from users. Check for common threads related to issues with their quality of coding.
Do they provide support?
Even with the most well-coded themes you may run into a glitch or simply need help sorting out an internal issue. Most developers of premium themes include support for at least a few months after purchase. There are some free theme developers who do, too. Check to see what their policy is and make sure that the response time in the support forum aligns with that promise.
You’ll also want to know if they support the actual theme in terms of updates.
Ideally, any theme you use should be updated every time the WordPress core updates; if not, more frequently.
features
If you want something that is trustworthy, you shouldn’t have to seek out additional plugins to get all of the features you want on your site. That would defeat the purpose of using a lightweight theme in the first place.
Also, would the basic design be sufficient? If a theme is too complex, uses low-resolution images, or has other major design flaws, then it’s not going to be worth the time to customize or fix.
design
IMAGESMore images do not automatically mean more conversions. In fact, page speed is more of a factor for selling more onlines than the number of images on your website.
Choose a theme that is less graphic intensive for an instant speed boost.

RESPONSIVENESS

Testing for responsiveness can be difficult. You could trust that a theme labeled “responsive” is, but it would be smarter to check first:
  1. Open the preview of the theme in your browser window and minimize your screen to test the theme’s adjustability (or view the preview on your mobile device).
  2. Check for roundups on the best responsive themes for recommendations.
flexibility
While you might not know all the functionality you want to build into your website yet, here are some things to consider:
  • How much customization you need in terms of font, colors, layouts, etc.
  • Page types you plan to have (i.e. forum, portfolio, ecommerce)
  • Additional elements like menus, video backgrounds, tooltips, etc.
The more options the theme has makes for all these tools, the less work you’ll need to do later.
seo
There is a lot of stuff that goes into making an SEO-friendly site. Check reviews to make sure ensure the theme is well-coded, fast, free of security issues, has a clean user interface, and is compatibles with your SEO plugin.
hidden costs
Are there hidden costs? Unexpectedly shelling out money after buying a theme is no fun. Think about whether this theme is reliable or if it will break and cost you in developer costs and replacement themes down the road.
And let's talk about plugins? If you’re not a coder, will you need an expensive developer to manage your site? Costs quickly add up and should be considered before purchase or download of a new theme.
marketplaces
WordPress theme marketplaces are a good option, and help you in your search. Here are some of the most trusted theme marketplaces:
  • WordPress.org
  • Creative Market
  • MOJO Themes
  • ThemeForest
  • WPExplorer
You best option may be independent developers who sells themes directly from their website. They typically offer membership or bulk pricing. If you’re looking for high quality, go this route:
theme longevity
A few design trends—eventually die out either because they become obsolete (think of image sliders or sidebars).
Even if you find a great WordPress theme, it’s important to assess it for its modernity as you don’t want something that will be outdated in six months or so.
your niche
If you build websites for a specific niche or industry, it’s a good idea to find a theme that was built specifically for that purpose. Think of restaurant websites that need menus, doctor sites that need appointment setting, photography sites that need galleries...

If the theme wasn’t built with that audience in mind, you’ll likely have to spend time finding the tools to do it later.
your goals
  • Do you want to churn out a bunch of sites, making minor tweaks to themes?
  • Or do you want themes that give you more power and flexibility to create something truly custom and unique for customers?
What it really comes down to is whether or not you consider yourself a WordPress coder or developer. If you hate time intensive coding you should also factor that into your theme selection.
GENESIS & THESIS THEMES
We recommend Genesis & Thesis framework themes here at SEOpingdom. They meet all of the above criteria for selecting a super fast & realiable premium WordPress theme.

If you'd like to see the fastest free WordPress theme options available, we have provided the list below...

In no particular order...
12 (FREE) BLAZING FAST WORDPRESS THEMES
  1. Zerif-Lite
  2. One Page Express
  3. OnePress
  4. Hestia
  5. PageSpeed
  6. Fastest
  7. Colormag
  8. Activation
  9. Twenty Twelve
  10. Spacious
  11. OceanWP
  12. Twenty Fifteen

HOT TIP: The WordPress.org Theme directory has a ton of free, high-quality and fast themes. Check them out.
WRAP UP:
A fast WordPress theme is a good idea no matter what your site is used for. Page speed is important for SEO and will help you move up in search rankings.
Only you will know which one will serve your business the best. Hopefully, this will get you started in choosing a WordPress theme that will work for you in terms of speed, design, quality, convenience, cost, reliability, support, seo, and more.
7. LAZY LOADING
Lazy loading technique to improve user experience and make search engines love you.
You can improve user experience by having your above the fold (top of the page) load faster — even if the rest of the page takes a few seconds to load.
This is called lazy loading and is particularly helpful for pages with lots of content below the fold.
For example, let’s say you write a blog post that includes 20 photos. Normally, a user’s browser would need to download all of those images before displaying anything on the page.
With lazy loading, it can load the content within view first, then load all of those photos after.
This way, the user doesn’t have to wait to access the page, and the images will load as they come into view.
This can significantly reduce load times on posts with tons of images (like this one).
And if you run your site on WordPress, enabling it is as easy as installing a plugin. There are plenty of options you can use to start using lazy loading on your site.
Lazy Load Plugin
Lazy Load is an extremely simple plugin that uses jQuery.sonar to only load images when they are visible in a user’s browser.
All you need to do is install and activate it Then, the plugin will automatically detect when an image is visible for a user, and load it.
Speed up your website lazy load
There are no settings or customization options to mess with — which, depending on your preferences, could either be a good thing or a bad one.
Either way: If you’re looking for a fast, simple solution, this is it.
BJ Lazy Load Plugin
BJ Lazy Load is another relatively simple plugin, but offers a few more options for customization.
First, you can determine which content on your site you want to lazy load. This can include content, thumbnails, gravatars, images, and iframes.
You can also set a standard placeholder image for content that hasn’t yet loaded, and skip images with certain classes.
So, for example, if you don’t want a specific image to lazy load, you could code it with something like:
<img src=”image.jpg” class=”no-lazy”>
This way, the plugin knows to load that image as normal.
You can also set a threshold for how close to a viewer’s screen an element should be before loading. This gives you more control over the speed and function of how your page loads.
The plugin is also compatible with infinite scroll.
If you’re looking for a plugin that’s easy to use, but gives a bit more control than Lazy Load, this is a great option.
WP Rocket Plugin
If you already use WP Rocket, you can also use the plugin to enable lazy loading. Note that this is not a free plugin.
Open your WP Rocket settings, then click the “Basic” tab. In the LazyLoad section, check the box next to “Enable for images.”
Once you’ve enabled this feature, there are a few customization options you can use.
For example, if you don’t want to use lazy loading on a specific post or page, you can simply disable it for that page.
Just open the page, then scroll down to the “Cache Options” box in the right sidebar. Then, uncheck the box next to “LazyLoad for Images,” and save your changes.
You can also use snippets of code to disable lazy loading for specific types of pages, like your home page or blog page.
For example, disabling lazy load for your home page would look like this:
You can copy and paste these snippets from WP Rocket’s tutorial on lazy load settings.
If you want to disable lazy load for specific images, you can do that using the “data-no-lazy” attribute.
Just add it into your image’s code, and that image will load normally.
Finally, you can enable a fade in effect to make your images load more smoothly.
When images appear all at once, they can provide a jarring experience for visitors. You can make them appear more gradually by adding a snippet to your CSS file.
You can also find this snippet in WP Rocket’s lazy load tutorial. 
LAZY LOAD VIDEOS AND DISQUS
Lazy loading is a concept where you delay the loading of the object unit the point where it is needed. In WordPress, this usually refers to not loading the object until a user scrolls down the page or using an on-click event. You can lazy load all sorts of content, from images to videos and even the Disqus commenting system.
To lazy load images, there is a great free little plugin called BJ Lazy Load. This plugin replaces all your post images, post thumbnails, gravatar images and content iframes with a placeholder and loads the content as it gets close to enter the browser window when the visitor scrolls the page. Also works with text widgets. If you are using the WP Rocket caching plugin, it also has an option to lazy load images.
To lazy load your videos there is a free plugin called Lazy Load for Videos. It replaces embedded Youtube and Vimeo videos with a clickable preview image. If your website is video heavy this plugin alone can dramatically speed up WordPress.
DISQUS is a great commenting system and can be a great deterrent to spam, as it cuts out nearly 99% of it. However, the default Disqus plugin creates 10+ HTTP requests which can drastically slow down your site. Thankfully James Joel developed a plugin, Disqus Conditional Load, which cuts out all these HTTP requests upon initial load. It is also is now SEO friendly, meaning Google will still crawl your comments.
Lazyload Videos/Iframes

Delays loading of videos until you scroll down the page and they become visible. I was able to reduce the load time of multiple posts by about 6s just by enabling this (since videos are a heavy element). You can do this with photos too but the constant loading can be annoying so I have it disabled. If not using WP Rocket, you can do this using the Lazy Load For Videos plugin.
If using WP Rocket, enable lazyload in the “Media” settings…
Light Youtube Embeds
It is easy to embed a YouTube video but you’ll be surprised to know how much extra weight that embedded YouTube video can add to your web pages. The browser has to download about half a Mb of extra JavaScript files to render the YouTube video player alone. And these files are downloaded even if your site visitor never plays the embedded video.
The embedded video not only increases the byte size of your web pages but the browser has to make multiple HTTP requests to render the video player. This increases the overall loading time of your page thus affecting the page speed score. The other drawback with the default YouTube embed code is that it isn’t responsive. If people view your website on a mobile phone, the video player may not resize properly for the small screen.
Embed YouTube Videos without Increasing Page Size
Google+ uses a clever technique for embedding YouTube videos – it just embeds the thumbnail image of a YouTube video and the actual video player is loaded only when the user manually clicks the thumbnail.
YouTube thumbnail images are about 15 kB in size so we are able to reduce the byte size of web pages by 500+ kb. That’s huge!
When a visitor clicks the play button, the thumbnail image is replaced with the standard YouTube video player with autoplay set to 1 so the plays the video instantly. The advantage is that the extra YouTube JavaScript gets loaded only when someone decides to watch the embedded video and not otherwise.
Light and Responsive YouTube Embeds
The standard embed code for YouTube uses the IFRAME tag and the width and height of the video player are hard-coded thus making the player non-responsive.
The new on-demand embed code for YouTube is slightly different. You need not specify the player size as we are now embedding the video responsively. Also, the IFRAME is replaced with a DIV tag and the IFRAME is added to the page only when the visitor clicks the play button.
8. DATABASE CLEANUP
Easily clean and optimize your WordPress database to improve performance.
the best way to instantly boost page speed by choosing the fastest host for your website.
Important! Before you start, make a backup!
Changes made by clean up plugins are often irreversible. Even if they don't mess directly with your posts or comments, it's always better to be safe than sorry. Before you do anything else, first create a WordPress backup of your site.
faster and snappier
Many moons ago your WordPress installation became slow and bloated. So you've decided to see if you could speed things up a bit.
After going through these steps, your WordPress installation will feel noticeably faster and snappier. Good luck speeding up your site.
THE WORDPRESS DATABASE
Your WordPress database is like a filing cabinet for your website. It stores all of your content, including...
  • posts
  • pages
  • comments
  • revisions
  • spam comments
  • as well as the settings for your themes and plugins
So if you’ve been using WordPress for a while, chances are your database is cluttered and filled with tables you no longer need.
This useless data leads to database bloat.
You really don't need to save the settings for themes you deleted years ago.
So cleaning up your database not only helps speed up your site so it loads faster, but can also clear up significant space in your database so it runs more efficiently.
With WordPress, there are a few different ways you can tackle optimizing your database. We’ll look at some plugins that make the task easy. As well as some mySQL queries you can use to clean up your database in phpMyAdmin.
DATABASE OPTIMIZATION PLUGINS
the WP-Sweep plugin
When you install the plugin, go to “Tools > Sweep” to access the settings. The plugin has an intuitive interface that displays a report of how much unnecessary data is in your database. It’s divided into different sections for posts, comments, users, terms, options and optimizing tables.
When you click “Sweep” beside an entry, the plugin gets to work optimizing your database for that entry. If you want to sweep your whole database, just click “Sweep All” at the bottom of the page.
WP-Sweep is quickly gaining a following because it was developed by Lester Chan, a popular WordPress developer.
First thing you need to do is install and activate the free WP-Sweep plugin. Upon activation, simply go to Tools » Sweep to clean up your WordPress database.
This plugin will analyze your WordPress database and show you a report of how much clutter you can clean. The sweep report is divided into different sections for your posts, comments, user meta, options, terms, and database optimize.
You can go through items and clean them individually, or you can scroll down to the bottom of the page and click sweep all to clean up everything in your WordPress database.
Cleaning up may take some time depending on how big your database is. WP-Sweep will show you the progress by updating the stats on the page.
Unlike WP-Optimize, WP-Sweet uses WordPress delete functions as much as possible to clean up your database instead of running direct delete MySQL queries, ensuring orphaned data isn’t left behind in your database. However, WP-Sweep doesn’t offer automated database optimization.
Also because the main distinguishing characteristic of WP-Sweep is that it uses proper WordPress delete functions as much as possible instead of running direct delete MySQL queries. Whereas the WP-Optimize plugin uses direct delete SQL queries which can leave orphaned data left behind.
In other words, WP-Sweep is a better coded plugin than WP-Optimize.
What all does WP-Sweep clean?
WP-Sweep uses all the proper WordPress delete functions to clean up the database. At the time of writing this article, it can clean up the following:
  • Revisions
  • Auto drafts
  • Deleted comments
  • Unapproved comments
  • Spammed comments
  • Deleted comments
  • Orphaned post meta
  • Orphaned comment meta
  • Orphaned user meta
  • Orphan term relationships
  • Unused terms
  • Duplicated post meta
  • Duplicated comment meta
  • Duplicated user meta
  • Transient options
  • Optimizes database tables
  • oEmbed caches in post meta
the WP-Optimize plugin
WP-Optimize is the most popular database optimization plugin for WordPress. It’s super easy to use, simply click “Run optimization” next to the clean up options you want to run.
The “Table information” tab displays all of the tables in your database along with their size. The screen also tells you the total size of your database and how much total space the plugin can help you save.
Under the “Settings” tab, you can choose to schedule database optimization so it runs automatically every week, fortnight or month, and even log all changes for you.
Overall, it’s a really simple plugin to use.
DATABASE OPTIMIZATION WITH phpMyAdmin
There are several ways you can run SQL queries on your database, but if you have cPanel on your server the best and easiest option is phpMyAdmin.
To access phpMyAdmin, login to cPanel for your site and click “phpMyAdmin” in the “Databases” section.
Once you’re in phpMyAdmin, you’ll see your website’s databases listed on the left. Click on the one you want to clean up and then click the “SQL” tab.
In the image above, I’ve blurred the name of my database, but you get the idea – I’ve selected the first database for my site. (I have a few databases to optimize since I used to have Multisite installed on my server!)
The SQL section in phpMyAdmin is where you can enter SQL commands and then hit “Go” to run them.
It’s important to note that this article uses the default table prefix wp_, so make sure you change the prefixes in the SQL commands below match the ones used by your database.
Delete Old Plugin and Post Data
Let’s start with deleting leftover data from plugins you no longer have installed. The wp_postmeta table also happens to be where your post data is stored, so when you run this query you’re hitting two birds with one stone.
DELETE FROM wp_postmeta WHERE meta_key = 'META-KEY-NAME';
Don’t forget to replace META-KEY-NAME with the value you want to clear out.
Delete Post Revisions
Old post revisions quickly add up, especially if you have authors on your site who are constantly saving their work over many days. If you want to delete all of the post revisions in your database in on hit, run this query:
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id) LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id ) LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id) WHERE a.post_type = 'revision' AND d.taxonomy != 'link_category';
Thanks to Joseph Michael Ambrosio for this query, which removes all revisions without unintended data loss and accidentally deleting link relationships.
Delete Spam Comments
It’s a chore deleting spam comments in batches, let alone one-by-one, but you can remove them all in one go with this query:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Delete Unapproved Comments
Here’s a query for admins who are too lazy to check comments! Simply run this this query to bulk delete all unapproved comments.
DELETE from wp_comments WHERE comment_approved = '0';
Delete Unused Tags
It’s easy for tags to accumulate over time, especially if you add them to posts and then change your mind and delete them. Also, tags have fallen out of favour in recent years as many bloggers have stopped using them. This query will delete all tags that aren’t associated with any posts.
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 ); DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms); DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);
Delete Old Shortcodes
Like old plugin data, forgotten shortcodes often hang around in your database long after you’ve stopped using them, or deleted plugins they were associated with. Instead of editing posts and pages manually to remove shortcodes, run this query to remove all instances of a shortcodes on your site.
UPDATE wp_post SET post_content = replace(post_content, '[YOUR-SHORTCODE]', '' ) ;
Don’t forget to replace [YOUR-SHORTCODE] with the unused shortcode you wish to remove.
Delete Pingbacks and Trackbacks
Does anyone use pingbacks or trackbacks anymore? Use these two queries to remove data for both pingbacks and trackbacks from your site.
DELETE FROM wp_comments WHERE comment_type = 'pingback'; DELETE FROM wp_comments WHERE comment_type = 'trackback';
Make sure you’ve disabled pingbacks and trackbacks before running these queries.
Delete Transients
Transients provide a way to temporarily store cached data in the database by giving it a name and a timeframe after which it will expire (hence the name “transient”) and be deleted. Sometimes, transients set by WordPress and plugins can take up a lot of space in your database, by they can be safely removed using this query:
DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%')
Optimizing Tables
While you’re already logged into phpMyAdmin, why not optimize your tables? In a few clicks, you can quickly optimize your tables yourself without having to install any plugins.
In phpMyAdmin, on the “Structure” tab and then click on the database you want to optimize. At the bottom of the list click “Check all”. In the dropbox box beside this option, select “Optimize table”.
phpMyAdmin will automatically start optimizing your table as soon as your select the option in the dropbox and will then display the message “Your SQL query has been executed successfully.”
HOW TO OPTIMIZE WORDPRESS REVISIONS
Whenever you save a page or post in WordPress it creates a revision. This occurs in both drafts and already published posts that are updated. Revisions can be helpful in case you need to revert back to a previous version of your content. However, they can also hurt the performance of your WordPress site.  On large sites this can add up very quickly to thousands of rows in your database which are not necessarily needed. And the more rows you have the larger your database in size, which takes up storage space. Follow the steps below on how to delete, limit, and disable WordPress revisions for faster performance.
Optimize WordPress Revisions
It is not uncommon for older sites to have 100+ revisions on their main pages. This is simply due to years of editing and updating content. Let’s say for example a site has 700 pages or posts with 150 revisions on each, this would be over 100,000 entries in the database. This happens a lot more frequently than you might think. Thankfully, there are a couple easy optimizations you can make to ensure this doesn’t hurt the performance of your site.
Delete WordPress Revisions
If you are starting a new site, you can skip to the next section as you won’t have existing revisions. If you are on an older site, the first thing you will probably want to do is cleanup and delete the hundreds or thousands of WordPress revisions. This is where a lot of the magic happens, and you can free up space in your database. If you are trying to do this with a MySQL query, be very careful as there are a lot of bad snippets of code floating around the WordPress repository forums with bad information. Many suggest queries that sometimes delete a relationship needed to make dashboard links work.
We recommend using the free Optimize Database after Deleting Revisions plugin. It uses the built-in WordPress term functions, which is the correct way to do things. We don’t recommend the WP Optimize plugin, even though it is very popular. It is on our banned list of plugins as it has been known to cause issues for some Kinsta users.
Running any type of database plugin could break your site if not done correctly. We always recommend backing up your MySQL database beforehand. If you are not comfortable doing this, please check with a developer first.
Step 1
Download and install the free Optimize Database after Deleting Revisions plugin. As of writing this, the plugin has over 90,000 active installs with a 4.8 out of 5 rating. You can download it from the WordPress repository or by searching for it within your WordPress dashboard under “Add New” plugins.
Optimize Database after Deleting Revisions plugin
Step 2
Click into the plugin settings of “Optimize Database” and input the date of the time for which you want to delete revisions. In our example, we did any revisions that are older than 1 day. Below, select the “check all tables,” which will exclude them from being optimized. We are not wanting to do anything else in this tutorial other than delete revisions, we will dive into optimization in another tutorial. Scroll down and click on “Go to Optimizer.”
Delete revisions in WordPress
Step 3
Then click on “Start Optimization.”
Start optimization of database
You will then see a summary of the space saved and the deleted revisions. Since this is on a small test site, you can see we only saved 16 KB. But it will be much more for larger sites.
Revisions deleted
We then suggest uninstalling the database optimization plugin and following the next recommendation on limiting post revisions further below.
Another option, especially one that WordPress developers might like, is the ability to delete post revisions with WP-CLI. Here is an example of a WP-CLI command:
$ wp post delete $(wp post list --post_type='revision' --format=ids)
You can read more about the wp post delete command in the WP-CLI documentation.
Limit Number of WordPress Revisions
After you have cleaned up your old revisions, the next step is to limit the number of WordPress revisions that you allow. This can be a great stop-gap measure to ensure that the revisions don’t pile up again. Perhaps you want to save 3 revisions. WordPress will keep that number and delete any previous ones. You can also use wp-revisions-cli to cleanup post revisions based on the number you set below.
Step 1
Open your wp-config.php file. You will need to add some code. This is typically located in the root of your WordPress site directory and you can access it via FTP.
Important! Editing the source code of a WordPress theme could break your site if not done correctly. If you are not comfortable doing this, please check with a developer first.
Step 2
The code below needs to be inserted above the ‘ABSPATH’ otherwise it won’t work. Again, you can change the number to however many of revisions you want to keep stored in your database per page or post.
define('WP_POST_REVISIONS', 3);
WordPress post revisions
Alternatively, you can also use a premium plugin like perfmatters (developed by a team member at Kinsta), which allows you to limit the number of stored WordPress revisions or disable them altogether.
Limit post revisions with perfmatters plugin
Disable WordPress Revisions (Optional)
The last option you have is to simply disable WordPress revisions altogether. Typically option 2 above is the most commonly used method. However, if you are on a single author site, you might simply want to get rid of them altogether. Remember, it will still save a draft, it just won’t have revision restore points.
Step 1
The steps are the same as limiting revisions above. Open your wp-config.php file.
Step 2
The code below needs to be inserted above the ‘ABSPATH’ otherwise it won’t work.
define('WP_POST_REVISIONS', false);
Alternatively, you could also use a free and lightweight WordPress plugin called Disable Post Revision. Simply install it, click into “Writing” in your dashboard, and select the post types for which you want to disable revisions.
WRAP UP:
While phpMyAdmin can be a bit overwhelming to use at first, running SQL queries is fairly straightforward, though plugins make it even easier to clean up your database. Just remember to always backup your site before making any changes to your database.
9. COMPRESSION
GZIP compression which will make your site much, much, much faster.
After you’ve eliminated any unminified JS/CSS/HTML code from your website, the next step is to compress the remaining resources (text, images, fonts, etc).
BEST PRACTICES:
  • Do NOT GZIP (already compressed) images, PDF or other binary data.
  • GZIP data only in the range of 150-1000 bytes in size. The speed of compression must be faster than the time taken in delivering the content uncompressed.
  • Do NOT compress content for old browsers.
Not following the above recommendations will increase file size and page load times due to the overhead of compression and decompression.
WHAT IS COMPRESSION?
According to Google, every day the cyber world sees 99 human years wasted due to uncompressed Web content.
  • When talking about compression we are talking about the GZIP compression of text based assets like CSS, JavaScript, and HTML
  • Compression is the process of encoding information using fewer bits
After doing so, whatever browser your site's visitor is using can carry that JS file, or any other sort of text based resource, to the visitor much, much, much faster. And that is a good thing.

All modern browsers support and automatically negotiate GZIP compression for all HTTP requests. Although most of the latest Web browsers support content compression, not every website delivers compressed content.You should always check to ensure it is enabled, as server admins often overlook this optimization.

Visitors to these uncompressed sites experience very slow pages.

The main reasons for this website behavior include:
  • misconfigured hosting servers
  • web proxies
  • old or buggy browsers
  • antivirus software
WHAT IS GZIP COMPRESSION?
GZIP compression is not context specific, meaning that it is applied the same way to all text based files. It is either on or it is off for them.

Minification, on the other hand, is context specific, meaning that minification can be on for one resource. But off for another resource.
But back to GZIP. GZIP compression re-encodes information using fewer bits than the original information, but the meaning of that information does not change.

In spite of the fact that it has been made significantly smaller -- up to 90% smaller in some instances.
  • GZIP performs best on text-based assets: CSS, JavaScript, HTML
  • All modern browsers support GZIP compression and will automatically request it
  • Your server must be configured to enable GZIP compression
  • Some CDNs require special care to ensure that GZIP is enabled
GZIP is a generic compressor that can be applied to any stream of bytes. Under the hood, it remembers some of the previously seen content and attempts to find and replace duplicate data fragments in an efficient way.
However, in practice, GZIP performs best on text-based content, often achieving compression rates of as high as 70-90% for larger files, whereas running GZIP on assets that are already compressed via alternative algorithms (for example, most image formats) yields little to no improvement.
HOW TO CHECK IF GZIP COMPRESSION IS ENABLED
1. Check GZIP Compression Tool
The first and quickest way to check if GZIP compression is enabled on your site is to simply head over to the free Check GZIP compression tool. Simply input your website and click search. It will return the amount that was saved by compressing the page with GZIP. Or it will return an error letting you know GZIP isn’t enabled.
And remember that GZIP also applies to your static assets as well. Which means if you are serving assets from a CDN, you will want to ensure they also have GZIP compression enabled. All modern CDN providers support GZIP compression, such as Cloudflare, KeyCDN, and CloudFront.
2. GZIP content-encoding HTTP Response Header
The second way to check is to verify if the “content-encoding: gzip” HTTP response header is active on your site. This is what the browser looks for when it sends a request to the server. You can open up Chrome Devtools and look at your first response header under the network section.
content-encoding: gzip HTTP response header
You can also click on the “view large requests” option and it will show you the original and compressed size of the page.
HOW ENABLE GZIP COMPRESSION
If you don’t have GZIP compression enabled, there are a couple ways you can go about enabling it on your webserver.
Enable GZIP with WordPress Plugin
The first and one of the easiest is by using a caching plugin that supports enabling GZIP. WP Rocket for example adds GZIP compression rules in your .htaccess file automatically using the mod_deflate module. W3 Total Cache also has a way to enable this for you under it’s performance section. Even though these are plugins, this still relies on permissions to modify files on your webserver. If your caching plugin doesn’t have permission, you will need to ask your host or use a snippet of code below.
Enable GZIP on Apache
The second way to enable Gzip compression is by editing your .htaccess file.  Most shared hosts use Apache, in which you can simply add the code below to your .htaccess file. You can find your .htaccess file at the root of your WordPress site via FTP.
Important: Make sure
mod_filter
 is loaded on your server, otherwise the AddOutputFilterByType
 directive will not work and could cause a 500 error. We recommend checking your error logs if you have any issues with the code below. <IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
Ensure that you add it below the current contents of your .htaccess file. Example below:
Example of GZIP Apache .htaccess code
Enable GZIP on NGINX
If you are running on NGINX, simply add the following to your nginx.conf file.
gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; gzip_vary on; gzip_types text/plain text/css text/javascript image/svg+xml image/x-icon application/javascript application/x-javascript;
Enable GZIP on IIS
If you are running on IIS, there are two different types of compression, static and dynamic. We recommend checking out Microsoft’s guide on how to enable compression.
WRAP UP:
Enabling GZIP is one of the simplest and highest-payoff optimizations to implement, and yet, many people don't implement it.

If, your WordPress site is on a good host, GZIP compression is already available to you. You must ensure that the server is properly configured to serve the compressed resource when the client requests it.

The HTML5 Boilerplate project contains sample configuration files for all the most popular servers with detailed comments for each configuration flag and setting. To determine the best configuration for your server, do the following:
  • Find your favorite server in the list.
  • Look for the GZIP section.
  • Confirm that your server is configured with the recommended settings.
Note: Sometimes, GZIP increases the size of the asset. Typically, this happens when the asset is very small and the overhead of the GZIP dictionary is higher than the compression savings, or when the resource is already well compressed. To avoid this problem, some servers allow you to specify a minimum file size threshold.
Finally, some CDNs require extra care and manual effort to ensure that the GZIP asset is served. Audit your site and ensure that your assets are, in fact, being compressed.
UP NEXT
Depending on the resource type, there are many different techniques to choose from: generic tools that can be enabled on the server, pre-processing optimizations for specific content types, and resource-specific optimizations that require input from the developer. Delivering the best performance requires a combination of all of these techniques.
  • Compression is the process of encoding information using fewer bits.
  • Eliminating unnecessary data always yields the best results.
  • There are many different compression techniques and algorithms.
  • You will need a variety of techniques to achieve the best compression.
The process of reducing the size of data is data compression. Many people have contributed algorithms, techniques, and optimizations to improve compression ratios, speed, and memory requirements of various compressors. It's important to understand, how compression works and the techniques you can use to reduce the size of various assets that your pages require.
This is all great, but how does this help us optimize our web pages? We’re not going to try to invent our compression algorithms, but, as you will see, we can use the exact same techniques and thought processes when optimizing various resources on our pages: preprocessing, context-specific optimizations, and different algorithms for different content.
Text compression with GZIP
  • GZIP performs best on text-based assets: CSS, JavaScript, HTML.
  • All modern browsers support GZIP compression and will automatically request it.
  • Your server must be configured to enable GZIP compression.
  • Some CDNs require special care to ensure that GZIP is enabled.
GZIP is a generic compressor that can be applied to any stream of bytes. Under the hood, it remembers some of the previously seen content and attempts to find and replace duplicate data fragments in an efficient way. (If you're curious, here's a great low-level explanation of GZIP.) However, in practice, GZIP performs best on text-based content, often achieving compression rates of as high as 70-90% for larger files, whereas running GZIP on assets that are already compressed via alternative algorithms (for example, most image formats) yields little to no improvement.
All modern browsers support and automatically negotiate GZIP compression for all HTTP requests. You must ensure that the server is properly configured to serve the compressed resource when the client requests it.
Enabling GZIP is one of the simplest and highest-payoff optimizations to implement, and yet, many people don't implement it. Most web servers compress content on your behalf, and you just need to verify that the server is correctly configured to compress all the content types that benefit from GZIP compression.
The HTML5 Boilerplate project contains sample configuration files for all the most popular servers with detailed comments for each configuration flag and setting. To determine the best configuration for your server, do the following:
  • Find your favorite server in the list.
  • Look for the GZIP section.
  • Confirm that your server is configured with the recommended settings.
Note: Sometimes, GZIP increases the size of the asset. Typically, this happens when the asset is very small and the overhead of the GZIP dictionary is higher than the compression savings, or when the resource is already well compressed. To avoid this problem, some servers allow you to specify a minimum filesize threshold.
Finally, while most servers automatically compress the assets for you when serving them to the user, some CDNs require extra care and manual effort to ensure that the GZIP asset is served. Audit your site and ensure that your assets are, in fact, being compressed.
10. MINIFICATION
BEST PRACTICE:
Always backup your WordPress site before minifying & concatenating. Minification and concatenation can break some sites. Each site will behave differently depending on the theme, plugins, and code it is running
HOW TO MINIFY & CONCATENATE
Many WordPress optimizations are a snap!
But this is where you most likely are going to encounter your first problems with optimizing your WordPress website. Everything has very likely been sunshine and unicorns up to this point. We will deal with these problems below.
JS, CSS & HTML can be minified and concatenated with the free W3 Total Cache plugin. However, we will be using another tool.

Need me to walk you through it? No problem! Keep reading below for the step-by-step tutorial I put together just for you.
THE WP ROCKET PLUGIN
WP Rocket makes it INSANELY easy to minify & combine WordPress with their “one click” optimization.
What’s a one-click installation? It’s exactly what it sounds like. Press a button, and bam. You’ve got a faster blog 😉
STEP 1. Buy WP Rocket Now On Their Website
Self explanatory. Once you click this link WP Rocket, click “BUY WP ROCKET!”

It's the best plugin for this task and costs just $39/year.

*SEOpingdom is not a WP Rocket affiliate and does not earn a commission when you purchase this plugin.
STEP 2. Download WP Rocket
Once you have bought WP Rocket, you can download the zip file from your WP Rocket account page.

Note
: If you use Safari, it might be automatically un-zipping the file on download. Either re-zip it, or follow below instructions.

Disable Automatic Un-Zipping in Safari
If you want to use the Automatic Installation method for WP Rocket, ie. installing the plugin through your WordPress dashboard, you need to start with the zip file of the plugin. If you use Safari, it might be un-zipping it for you which causes confusion.
Go to Safari > Preferences and un-check the box labeled Open "safe" files after downloading.
Now you can download the zip file normally and proceed with installation :) 
STEP 3. Install WP Rocket — You’re almost done
Automatic installation is the easiest way to install WP Rocket.
To do it, log in to your WordPress admin panel and go to : Plugin->Add New and click on Upload Plugin.
Select the zip file and click on Install Now. After clicking that link, you will be asked if you are sure you want to install the plugin. Click yes and WordPress will automatically complete the installation process.
Note: Once it's activated, simply go to the settings panel. You will receive an automatic email telling you a new website has been added to your account.
Step 4. One Click Minifying & Combining
Now’s the time to minify & concatenate WordPress. It’s going to take you like 30 seconds.

One you have the plugin installed, go the “Static Files” tab and check the files you want to minify and combine. This can include HTML, CSS, and JavaScript files, as well as Google Fonts.
Then, hit “Save Changes” to complete the process.
And then BAM! You’re done.
Congratulations!
If I had a “that was easy button,” I would tell you to press it right now.
EXPLAINING MINIFICATION
  • 'Minifying’ is the process of removing unnecessary spaces and characters from HTML, CSS, and JavaScript code
  • Minified files are faster to load and improve your site’s speed
  • Some experts believe that the speed improvement is very small for most websites and not worth the trouble
THE DIFFERENCE BETWEEN MINIFICATION AND COMPRESSION
File minification and file compression are not the same thing. Although both aim to achieve the same goal (faster load time) they are both different in how they work.
Compression is used to reduce file size by using a compression scheme such as gzip or brotli. Files are compressed before they are sent from the server to the client therefore the compression process is carried out as follows:
  1. Files are compressed via a compression method
  2. A request is made for the compressed version of a file
  3. The compressed file is sent from the server to the client
  4. The client uncompresses the file and is able to read the information
Supported compression methods can vary by server as well as web browsers. When a browser makes a request to the server it tells the server which compression method it supports so that the server is able to optimize the response for that browser.
If the browser does not support any compression method then the server will simply respond with uncompressed data.
WHAT IS CONCATENATION?
  • Concatenation (aka combining) means joining together
  • Concatenation is basically the act of combining files and is extricably bound up with minification
So, for example, if you have 10 CSS files on your site, the concatenation process will combine them into a couple of files.
Let's say we have a set of five separate CSS files, some of which we have minified. We can concatenate or combine these five separate CSS files into a single combined file. As a general rules of optimization, less means more when it comes to speed. In other words, not only does the act of removing all unnecessary characters from source code (i.e. minifying source code) make you website faster. But so does the total number of files with which the browser has to contend.
The five CSS files combined into one in our example, even though we have done nothing more than combine them, reduces the overall burden on the browser. The single file is easier for the browser to carry than five separate files. Like you, the browser only has so many hands. If for example, you have to move five rocks from point A to point B. You are going to have a much easier time of it by putting all five rocks into one single wheel barrel. Concatenation is your wheel barrel moving those files from point A to point B in the most efficient way possible.
Combining files is exactly what it sounds like. If your site runs multiple CSS and JavaScript files, you can combine them into one.
SO HOW DOES CONCATENATION HELP?
HTTP requests
And modern websites are often ordering dozens of files at a time. But web browsers can only handle a certain number of files simultaneously.

So the more files you have on your site, the more trips to the server. The slower the page rendering process.

Concatenation joins multiple files together so your server can send fewer files to the browser and it will be a faster process.
how HTTP/2 affects concatenation
HTTP/2 is the next generation of the web which will dramatically speed up websites. HTTP/2 offers a speed boost by allowing multiple files to be sent at the same time. Whereas the HTTP1.1 protocol only allows web servers to send files down a single line one at a time.
According to Google Developers, optimization techniques like minification, server compression, and image optimization should be continued on HTTP/2.
However, because HTTP/2 server requests are faster, combining text and image files to eliminate a request may not really be needed. Also, combining a fairly static resource with a fairly dynamic one to save a request, may negatively affect caching performance by forcing the static portion of the resource to be reloaded just to fetch the dynamic portion.
Whether you can use HTTP2 with WordPress actually depends on whether your hosting company has activated this. So you'll have to confirm the actual availability of the new protocol with your hosting company. As we've mentioned in previous posts, we recommend SiteGround managed hosting which supports HTTP/2. And Kinsta or Digital Ocean for VPS hosting which also support HTTP/2.
THE TROUBLE WITH MINIFICATION
Minification is perhaps the most misunderstood and maligned function of website optimization. Why is that?

The point of minification is reduce the file size of your CSS / JS assets so that they will download faster.
While the concept of it is actually very simple, in reality, it often breaks WordPress sites. But minification is almost always mentioned as a web performance best practice, so a lot of people want to use it.
For the average website owner, there are plugin-based solutions but these can be tricky to implement because their behavior will vary from site to site, depending on what theme and plugins your site is running.
So minification removes:
  • Whitespace characters
  • Comments
  • Line breaks
  • Block delimiters
This will make the code pretty much illegible to humans, but computers don’t care about that, they can still process it. White space is for us humanoids 😉. Those un-needed parts add a few extra bytes to the file size.
IS IT WORTH THE EFFORT?
In some cases, your layout will end up looking funky, or certain functions won't work correctly on your site. Each site will behave differently depending on the server environment, specific set of themes and plugins its running, and how they are coded.
This can be a problem for people trying to ace the infamous Google PageSpeed test. Google wants you to move all the JavaScript files to the bottom of the site, but that can break some functionality, so there goes your perfect score.
But taking advantage of this method is a great way to further optimize your site. And it is easily achievable with the above mentioned WP Rocket plugin.
The fewer elements on a page, the fewer HTTP requests a browser needs to render a page — and the faster loading times you will get. And that segues us to our next topic in the series...
WRAP UP:
The reasons minification and concatenation can break sites can be varied and mysterious. If you haven't done anything else to optimize your site, minification & concatenation is NOT the best place to start.

Minification & concatenation might give you a little improvement in speed, but it won’t be earth-shattering.

So what should you do instead?
11. REDUCING HTTP REQUESTS
When it comes to speed, less is more. Learn how to reduce HTTP requests for faster web performance.
WHAT IS AN HTTP REQUEST?
Whenever a browser visits your site, your web server is pinged and the files that contain the content of the page are requested. These files are usually HTML, CSS and JavaScript files, images, and icons...among others.

The browser does this using HTTP, which means Hypter Text Transfer Protocol. This protocol is a system of rules that explains the procedures to be followed. As implied, HTTP is a request and response protocol.

Which means your visitor sends a request for some file. The file then does what it is supposed to do. And the user’s browser renders the page.
THE TROUBLE WITH HTTP REQUESTS
Why does the number of these HTTP requests matter?

It matters because when it comes to speed, less is more.
In a nutshell...

more files on your website = more HTTP requests
and more HTTP requests = longer site load times

These HTTP requests negatively impact page speeds, bounce rate and SEO. Less HTTP requests means faster site loading times.
You should aim for under 30 requests. The average number of page requests on the Internet is a whopping 99+ per page.
let's have an example
Let's say we have a web page with 100 total HTTP requests. 20 of which are JavaScript (JS) and 10 of which are Cascading Style Sheet (CSS) files. That's nearly a 1/3 of everything that makes that web page what it is.

A browser has to stop and deal with every HTTP request before your visitor can see anything on their screen. That's not good.
Now let's say we've concatenated all of our JS files into one file. And all of our CSS files into two files. Bringing our total number of HTTP requests down to 73.

Remember, there were originally 100 requests.

The browser now only has to deal with one JS file and two CSS files. Which means that the browser can get the remaining 70 files faster. The end result is a faster loading web page.And that is what we're after.

By reducing the number of elements (aka resources or assets), you can reduce the number of HTTP requests needed to render a page. This will help speed up WordPress loading times.

But first, you'll need to find out how many HTTP requests your website is making...
CHECKING THE NUMBER OF HTTP REQUESTS MADE BY YOUR SITE
To reduce the number of HTTP requests on your website, you first need to know how many your site has. You should use this number as a benchmark before you begin optimizing your site.

The fastest way to do this is to use Chrome Developer Tools...
The Google Chrome browser offers in-depth information on how long each of your website files and site elements take to load.
To do this, simply right-click any page on your site that you want to check and click Inspect. Then click the Network tab. Alternatively you can open the browser menu, then go to More Tools > Developer Tools.
The Network panel displays your web page’s network activity in real-time. Just hit refresh with the panel open and you’ll see the HTTP requests as they happen.
In the Name column you'll see all the files the page needs to display. The Size column contains the size of each file. The Time column lists how long each file takes to load. The Waterfall column displays a visual waterfall of all requests.
But the number you really want (HTTP requests) is in the bottom left-hand corner.
Reducing this number of requests will speed up your site, look through your files and see if any are unnecessary.

Google Chrome Developer Tools
HOW TO REDUCE HTTP REQUESTS
Cutting down the number of files your site needs to render will speed things up – fewer files means fewer HTTP requests.

Get ruthless with your requests. Remove as many as possible that aren't optimizing conversions.
1. REDUCE EXTERNAL SCRIPTS
Though CSS and JavaScript files are often the main culprits of extra external scripts, they’re not the only ones — and eliminating any others can also have an impact on your speed.
For example, if you use Gravatar for blog comments, you may notice that user images add to your load time.
Or, if your site is integrated with Twitter, this increases the number of HTTP requests your site makes.
Some of these extra features are worth the added load times. But if they aren’t worth slowing your page speed, uninstall them.
Knowing which elements are adding to your load times help you make decisions about which features you add to your site in the future.
2. REDUCE REDIRECTS
As we mentioned above, the fewer requests your site makes to your server, the faster a page will load.

Redirects trigger an HTTP request-response cycle. Each redirect adds a roundtrip (HTTP request-response). And may even result in multiple roundtrips to perform the DNS lookup, TCP handshake, & TLS negotiation, on top of the additional HTTP request-response cycle. You should minimize redirects to improve site speed.
Here are some examples of redirect patterns:
  • example.com uses responsive web design, no redirects are needed - fast and optimal!
  • example.com → m.example.com/home - multi-roundtrip penalty for mobile users.
  • example.com → www.example.com → m.example.com - very slow mobile experience.
Redirects are often needed when moving and deleting pages, and eliminate broken links.
But having too many redirects can create HTTP requests, which can impact speed, especially on mobile devices.
It’s best to keep them to a minimum. Google recommends eliminating them entirely.
It's not always realistic in most cases, but there’s always room for improvement.
to how find redirects on your site
You use Screaming Frog to identify all of the redirects on your site.
Run a site scan, then sort by the “Status Code” column to see all of the 301 redirects on your site.
You can analyze these redirects to see what they’re doing, and make sure that they serve a purpose.
You can also identify redirects chains, or redirects that point to other redirected pages. This also creates extra HTTP requests, which can slow down site.
Edit your .htaccess file to point all of your redirected pages directly to the most recent versions of those pages.
3. REDUCE THE NUMBER OF FILES
Each HTML, CSS and JavaScript file your site requires adds to the number of HTTP requests it takes to load. By combining and minifying these assets, you reduce the number of files that need to load & you reduce the total file size of your site.
Minifying and combining can be easily done with a free cache plugin like W3 Total Cache.
Minification involves removing unneeded characters, like comments, white space, formatting, and new lines from HTML, CSS and JS files that aren’t necessary for the code to execute.
Combining files, is just like it sounds. For example, if your web page load 10 external CSS files and 10 external JS files, then combining your CSS and JS into one file each would result in just 2 requests instead of 20.
It’s important to note that if you’re using HTTP/2, several requests can occur simultaneously. Therefore, combining files will have less of an impact on the loading time.
4. OPTIMIZE IMAGES
delete unneeded images
According to Google, pages that have more images (and other elements) result in fewer conversions. The culprit may be the performance impact that the additional loading times and HTTP server requests and images create. Google's research shows that adding more images does not improve conversions. In fact, it's exactly the opposite!
Consider removing images for the sake of cutting down on HTTPS server requests. Also keep your media library squeaky-clean. If there are images you’re not using—delete them. They’re adding extra weight and server requests that are slowing down your site.
GIFs
Eliminate heavy GIF files, they can drastically slow down your site.
compress images
Get the WP Smush plugin to automate compression of your images.
create a CSS sprite image
You can create a CSS image sprite using CSS. This CSS file will combine all your image files into one. Go to W3 Schools to learn how to create your own.
ignore irrelevant images
The WP Asset Cleanup plugin detects when there is a plugin, file, or other asset in your theme, but not on that specific page. It prevents the asset from being loaded and detected on the page which decreases the number of HTTP server requests.
do lazy loading
Get a lazy loading plugin like BJ Lazy Load to only send server requests when a user scrolls down to an image on the page. This reduces unnecessary HTTPS server requests to the browser for images that your visitors never come close to seeing.
use a commenting plugin
The default WordPress commenting system uses Gravatar to pull in commenter photos and bios. Those images create HTTP requests. You can turn them off under Settings > Discussion > Avatars . You can also limit external images by using a free commenting plugin like Disqus. Disqus is SEO friendly, so Google will still crawl your comments.
disable comments
If you are a small business and don't get a lot of blog comments, you should consider disabling comments altogether to cut down on additional HTTP requests.
Whenever you are using threaded comments in WordPress the comment-reply.min.js script is included on every post and page. If you don't need the script to load on every page, you can disable it by pasting following code at the bottom of your functions.php file:

// Remove comment-reply.min.js from footer
function comments_clean_header_hook(){
  wp_deregister_script( 'comment-reply' );
  }
add_action('init','comments_clean_header_hook');
5. LIMIT EXTERNAL RESOURCES
Bandwidth hungry assets are slowing down your site.A long load time can frustrate your visitors. Mobile users will have an event slower experience, as pages will not begin appearing until every asset on a page is downloaded.
Consider removing anything that is causing bloat.
fonts
Services for custom fonts are fast, but they still produce extra HTTP requests. Therefore, here the motto is also: only load what you actually use. Try limiting the number of fonts and also the type of fonts on your site. Go forth and minimize HTTP requests by reading the following article HOW TO OPTIMIZE WORDPRESS FONT SPEED.
social media
Social media is an important marketing tool, however, it’s easy to overdo it. You might find that Twitter alone adds an second or two to your load time.
Social media (Facebook, Twitter, Pinterest etc) scripts add a DNS lookup, a set of JavaScript files, and images to a page.
Just like you don’t need to be on every network, it doesn't make sense to load all those sharing options on every page. This adds a lot of load to your site.
embedded assets
Since WordPress 4.4, there is a JavaScript file that loads on every page (wp-embed.min.js). This script allows easy embedding of videos, images, tweets, etc. If you don’t use this feature you should consider disabling it. If you need to embed a YouTube video or Twitter onto your site, you can always link to it by grabbing the embed code off of YouTube or Twitter.
 There are a couple of ways to disable the script.
  • WordPress plugin option: Install the free WordPress plugin “Disable Embeds
  • WordPress function option: Or you can copy/paste following code at the bottom of your functions.php file.
// Remove WP embed script function speed_stop_loading_wp_embed() { if (!is_admin()) { wp_deregister_script('wp-embed'); } } add_action('init', 'speed_stop_loading_wp_embed');
maps
If you are running a business which has a physical presence, you may want to use a map to show customers your location. It is a good idea for local business, but most maps create 20+ HTTP requests to load. Yikes!
Alternative: The GoogleMaps Widget loads with only one HTTP request. This plugin will boost your site speed significantly.
6. CHANGE YOUR THEME
Themes can make 100's of HTTP requests before showing any content.Having 10 different sliders, 20 pre-installed plugins and a lot of JavaScript animation will result in a ton of HTTP requests. No website with this many requests will run optimally.

 Avoid these types of themes unless you are confident that you can trim some of that fat.

The fastest and most reliable premium themes are on the Genesis (affiliate link) and Thesisframeworks.

If you are just starting out and on a budget, check out 12 FREE BLAZING FAST WORDPRESS THEMES here.
7. DELETE PLUGINS
Plugins impact site performance in two ways
  1. additional HTTP requests
  2. additional database queries
Some plugins, mainly front-end ones, may add extra JavaScript or CSS files to your website which create HTTP requests. Additional requests may also be created by plugins that store database information.
8. DISABLE EMOJIS
WordPress now comes with emoji support. Unfortunately this creates an additional HTTP request in the form of a JavaScript file in your header. If you don't use emojis follow the instructions below to disable them and ditch that additional HTTP request.
First under “Writing Settings” in WordPress make sure you uncheck the “convertemoticons” option under formatting. Then follow the rest of the steps below.
  • WordPress plugin option: Install the free WordPress plugin “Disable Emojis” to easily disable the new emoji functionality in WordPress. This plugin is only 9KB (super lightweight)
  • WordPress function option: If you don’t want the overhead of another plugin then simply take the code from the above Disable Emojis plugin and paste it at the bottom of your functions.php file.  Important! If you are not comfortable with editing code, check with a developer first. Editing WordPress theme source code could break your site if not done properly.
/**
* Disable the emoji's
*/
function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'disable_emojis' );

/**
* Filter function used to remove the tinymce emoji plugin.
*
* @param array $plugins
* @return array Difference betwen the two arrays
*/
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}

/**
* Remove emoji CDN hostname from DNS prefetching hints.
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed for.
* @return array Difference betwen the two arrays.
*/
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
if ( 'dns-prefetch' == $relation_type ) {
/** This filter is documented in wp-includes/formatting.php */
$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );

$urls = array_diff( $urls, array( $emoji_svg_url ) );
}

return $urls;
}
9. DISABLE SCRIPTS ON A PAGE-LEVEL BASIS
Getting rid of plugins will usually speed up your site. But the Gonzalez plugin lets you disable unnecessary scripts from loading on a page-level and site-wide basis. It's not free, but worth it. For example, the Contact Form 7 plugin loads its script on every page by default. With the Gonzalez plugin, you can load it only your contact page. It works with social sharing plugins as well. You will eliminate at least 5 HTTP requests with the plugin.
10. USE A CDN
Content Delivery Networks, or CDNs, are a network of optimized servers across the globe that guarantee fast delivery of static content such as images, CSS and JavaScript. The main advantage of using a CDN is that you’re retrieving content from a separate server. This overcomes one of the HTTP restrictions which limits sending a large number of requests to a single server in one go. By overcoming this restriction, you can achieve shorter loading times! Another advantage of these CDN’s is that the data comes from a server closest to your visitor’s physical location. Shorter distances to the server means faster data retrieval. It’s possible to use more than one CDN, which means your browser can deal with even more HTTP requests at the same time.
Here is a quick list of the top 10:
  • Akamai
  • MaxCDN
  • Incapsula
  • Rackspace
  • Cloudflare
  • Amazon's AWS
  • EdgeCast/Verizon
  • Fastly
  • Hibernia
  • Limelight
NOTEWORTHY: THE NEW HTTP/2 PROTOCOL
HTTP/2 is the next generation of the web which will dramatically speed up websites. HTTP/2 offers a speed boost by allowing multiple files to be sent at the same time. Whereas the HTTP1.1 protocol only allows web servers to send files down a single line one at a time.
According to Google Developers, optimization techniques like minification, server compression, and image optimization should be continued on HTTP/2.
However, because HTTP/2 server requests are faster, combining text and image files to eliminate a request may not really be needed. Also, combining a fairly static resource with a fairly dynamic one to save a request, may negatively affect caching performance by forcing the static portion of the resource to be reloaded just to fetch the dynamic portion.
Whether you can use HTTP/2 with WordPress actually depends on whether your hosting company has activated this. So you'll have to confirm the actual availability of the new protocol with your hosting company. As we've mentioned in previous posts, we recommend SiteGround managed hosting which supports HTTP/2. And Kinsta or Digital Ocean for VPS hosting which also both support HTTP/2.
WRAP UP
There are hundreds of different website performance optimization tweaks you can implement to further improve on the delivery and speed of your content.
One of the biggest impacts you can make is reducing the amount HTTP requests you send to the server.
So, go forth and minimize those HTTP requests! Your visitors & Google will thank you for it.
12. ELIMINATING RENDER BLOCKING
"Perceived performance is much more important than actual performance." - Paul Bakus, Developer Advocate at Google
WHAT ARE RENDER BLOCKING RESOURCES?
WordPress blogs use themes. Many themes can have multiple CSS and JavaScript files. Which mean multiple round trips to the server.
These are known as render blocking resources. They load in above the fold area.
LET'S DEFINE A FEW THINGS:
  • render - display or show (webpages are "rendered" when they can be seen by a user)
  • path - the chain of events that lead to our webpage being displayed in a browser
  • above the fold - part of a webpage visible to a user before they scroll (also known as "initial view")
HOW BROWSERS RENDER WEB PAGES
In order to display a webpage, a browser must get all the resources that are called by the webpage.
Let's look at the path that this simple page (one image, one css file, one JavaScript file) would take before it gets displayed in a user's browser....
  1. browser downloads the html file
  2. browser reads the html and sees that there is one css file, one javascript file and one image
  3. browser starts downloading the image
  4. browser decides it can not display the webpage without first getting the css and javascript
  5. browser downloads the CSS file and reads it to make sure nothing else is being called
  6. browser decides it still can not display the webpage yet until it has the javascript
  7. browser downloads the javascript file and reads it to make sure nothing else is being called
  8. Browser now decides it can display the webpage
The above path is for a very simple webpage.
You probably have social buttons, several CSS files, several javascript files, many images, widgets, and maybe audio or video too.
Most websites have absolutely terrible render paths because they are calling so many things that the browser must load before the webpage can be displayed.
COMPETITIVE ADVANTAGE
This is your advantage over others.
If you make your pages faster than your competitors, you are going to make visitors happy (Google likes it when you do that).
RENDER BLOCKING
Let's look at an all too common scenario...
Your WordPress theme has several CSS and JS files.
No matter how many of these you have the browser must download and parse (read) each of these files before it can show anything to the user.
Before even one letter of your blogcan be displayed,the browser must load and parse (read) each of those files which again means several round trips to a server just to get started.
While all of this render blocking is going on behind the scenes, the visitor to your page is staring at a blank white screen.
So a typical render of a WordPress blog page can require twenty something round trips to just get the main CSS and JS files.
But wait, now you have social buttons or widgets too... uh oh, for each of those several CSS and JS resources are needed too.
GOOGLE PAGESPEED MEASUREMENT
When Google talks about pagespeed, they are not talking about the overall time it takes to download a webpage.
What they care about is how quickly does a user start seeing content on that page (initial view) and how quickly can the user start interacting with that content.
If a user is looking at a blank white webpage for 10 seconds waiting for it to load, that is bad and Google doesn't want to show that page in their results.
If that same webpage displayed information in the first second, it would then be a great experience, and Google would want it in their results.
Our main concern when we talk about webpage speed is to get content to the user as soon as possible in the initial view.
ABOVE THE FOLD
JavaScript and CSS (HTTP requests) will block rendering.
Of particular concern is the blocking of rendering ofeverything above the fold (whatever fits inside the user's screen without them scrolling).
Above-the-fold is a phrase that has been taken from newspapers. Indicating the most valuable real estate on the page of a newspaper.
We want to deliver the very first things the user is supposed to see on the pages, not just as quickly as possible. But also prior to anything else that falls below the fold.
Anything that the user has to scroll to see can wait.
We want the time between their clicking a link to our site, and the appearance of content sufficient to fill their screen to be close to instantaneous as possible.
By eliminating the JS and CSS responsible for increasing the time between the user clicking on our site and the appearance of content, we bridge that gap.
ASYNCHRONOUS RESOURCES
The particular methods with which you will eliminate render blocking JS and CSS in your site's above the fold content are covered later.
But let's say some things about asynchronous resources as they relate very closely with eliminating render blocking JavaScript and CSS.
what are asynchronous resources?
An asynchronous resource is a resource that loads, and is applied by a web browser such that that resource does not block the browser's ability to render our page.
When, generally speaking, it otherwise would if loaded normally, or synchronously.
The browser does not have to wait for an asynchronous resource to be fully understood (or be fully loaded) to begin rendering our page.
Instead, the browser analyzes an asynchronously loaded resource in the background. While the browser is doing it's other work to render the page.
The browser then applies the resource once the analysis of the resource being loaded asychronously is complete.
Many things can by asynchronously loaded, but in this course, we will be almost exclusively concerning ourselves with how asynchronous resources apply to our render blocking JavaScript.
Indeed, asynchronously loading (or asyncing) our JavaScript in various modes of inlining CSS so as to elminate it as render blocking, are the two legs of optimizing what is referred to as the critical rendering path.
In other words, the optimization of everything necessary to load our above the fold content as quickly as possible, in as little time as possible.
why are asynchronous resources important?
There is a truly mind-numbing amount of misinformation, disinformation and self-perpetuating Internet mythology concerning what Google cares about most when it comes to performance.
so let's clarify
It is not a site’s Load Time, PageSpeed Insights grades, or scores on any ‘speed tests’ that are important. And nowhere does Google say that it is.
What Google wants, because it is what your website’s users want, is an optimal user experience for your site’s real users.
Simply stated, the user’s perception of speed is the by-far-and-away most important performance metric.

This is why Google is so adamant about optimizing above the fold content. And why Google favors websites that have implemented progressive rendering.
What Google cares about most is:
  • The speed with which your above-the-fold content begins to render.
  • The time it takes for above-the-fold content to be visually complete and interactive.
  • The average time at which visible parts of your page are displayed relative to the average time at which visible parts of your competitor’s page are displayed.
use asynchronous loading for CSS and JavaScript files
Once you’ve minified and combined files, you can also optimize how they load on your pages.
CSS and JavaScript can be loaded Synchronously or Asynchronously.
Synchronously loaded scripts, load one at a time, in the order they appear on the page. Asynchronously loaded scripts, sometimes load simultaneously.
Asynchronously loading files can speed up your site because when a browser loads a page, it moves from top to bottom.
If it gets to a CSS or JavaScript file that is synchronous, it will stop loading until it has fully loaded that specific file. If that same file were asynchronous, the browser could continue loading other elements on the page at the same time.
HOW TO ELIMINATE RENDER BLOCKING WITH W3 TOTAL CACHE
step #1 - use pagespeed insights to find render-blocking resources
The first step in fixing render-blocking is testing your site’s speed using Google PageSpeed Insights.
  • Simply input your site’s URL in the "Enter a web page URL" text box.
  • Click Analyze to get a report of your site.
If after testing your website with PageSpeed Insights tool you also find the suggestion Eliminate render-blocking JavaScript and CSS in above-the-fold content, then you should continue reading this WordPress tutorial. Keep this tab open in your web browser, as you may need it when fixing this issue.
step #2 - configure the W3 Total Cache plugin
  1. Go to Performance -> General Settings. Find the Minify heading on the page.
  2. You will see a few options under this heading. The first one is titled Minify; check the Enable box in front of it.
  3. In the Minify mode option, choose Manual, and then click Save all settings button.
  4. At this point, you must fetch all the JS and CSS scripts causing render-blocking. You will find these scripts through Google PageSpeed Insights. If you kept the PageSpeed tab open as suggested in Step 1, you will find the Show how to fix clickable text under the render-blocking suggestion. Click on it. This will list all those scripts and stylesheets causing render-blocking.
  5. Go back to WordPress. Navigate to Performance ->Minify. You will have to minify both JS and CSS files separately.
  6. First, let’s take care of JS. On the page, find the heading JS, you will then see Operations in areas section. There, choose Non-blocking using defer as the embed type for the before <head> tag.
  7. Then, under the sub-heading JS file management, choose your active theme and click on the Add Script button. Now, simply copy the URLs of JS scripts from the PageSpeed tab, and paste them here one-by-one. This completes the fix for JS files.
  8. Moving on to CSS. Scroll down further on the same page to find the CSS section. Under the CSS file management sub-heading, choose your active theme and click on Add a style sheet. Similar to JS scripts, copy/paste CSS stylesheets from PageSpeed Insights to this section.
  9. Finally, click the Save settings and purge cache button.
You should now head back to Google PageSpeed Insights to check whether render-blocking has been fixed.
MINIFICATION, CONCATENATION, AND THE RENDER BLOCKING PROBLEM
In many ways minification and the solutions to the render blocking conundrum are even more difficult to dial in than the advanced optimizations we will cover later in this guide.
Some of you will not make it out unscathed and have found that you have certain files on your website that can't have these optimizations applied to them without your website breaking.
You are not however without options. It is extremely rare for there not to be a plugin, nearly identical to the one giving you trouble, that can be used. In short, if possible...
Find an alternate plugin
OPTION 1. AUTOPTIMIZE PLUGIN
An easier method of resolving the render-blocking problem is through another plugin called Autoptimize.
Download and install the plugin, which shouldn’t take long.
Once you’re done with the installation, go to the Settings -> Autoptimize area of WordPress. Here, simply check the boxes titled Optimize JavaScript Code? and Optimize CSS Code? and press Save Changes and Empty Cache button.
In most cases, this is enough to fix render-blocking (it depends on your theme and active plugins). To find out if you’re one of these people, run your site through PageSpeed Insights again.
If you want to take the optimization even further, head back over to Settings -> Autoptimize. Click on the Show Advanced Settings button. From here, check the options Also aggregate inline JS and Also aggregate inline CSS. Finish by clicking on Save changes and Empty Cache. To see if this worked, visit PageSpeed Insights once again.
OPTION 2. SPEED BOOSTER PACK PLUGIN
Another popular plugin that you may find useful in fixing render-blocking for your WordPress site is Speed Booster Pack. Download and activate the plugin. You will find its options in the Settings ->Speed Booster Pack section of the WordPress admin area.
For JS scripts, you have to enable Move scripts to the footer and Defer parsing of JavaScript files.
For CSS render-blocking, go to the Still need more speed? menu. Here, you will find additional settings pertaining to CSS optimization; minifying CSS, moving CSS styles inline to the footer and loading CSS asynchronously.
You should experiment with these optimizations to find a happy medium – simply enabling all of them will load your site faster, but may also introduce the unwanted Flash of unstyled content (FOUC) artifact. This happens when the browser loads the web page without waiting for the stylesheet to load, causing a momentary flash any styling off of the page. To ensure that render-blocking is not an issue anymore, check back with Google PageSpeed Insights.
At this point, if you still have items to which these optimizations cannot be applied, after attempting to apply them with every possible tool available to you, you're simply not going to be able to easily optimize them with minification and/or concatenation. Which also means that you will also not likely be able to stop them from being render blocking. As minification, concatenation, and render blocking correlate very strongly with one another.
Remember, site speed can only go so far in improving your site. You shouldn’t have to compromise on core functionality.
13. USE EXCERPTS ON HOMEPAGE AND ARCHIVES
By default, WordPress displays the full content of each article on your homepage and archives which slows down your site.
How To Fix It: Navigate your WordPress admin area Settings » Reading in your WordPress dashboard and select “For each article in a feed, show: Summary” instead of “Full Text.”
14. SPECIFY IMAGE DIMENSIONS
Most of you have probably seen the following Google Pagespeed recommendation at one point:
Optimization suggestion: “By compressing and adjusting the size of … you can save 5.8 KB (51%).”
This recommendation refers to your images being scaled down by the browser. For example, maybe the image you upload has a 500px width, but the column it was placed in is only 400px wide. This results in your image being scaled down to 400px due to CSS so that it matches the column size. This sometimes requires cropping them with Photoshop, Paint, or Gimp before you upload them. This saves resources and also will keep you compliant with Google Pagespeed’s guidelines.
15. PAGINATE COMMENTS
Posts with a lot of comments tend to be really really slow.Sometimes posts with a lot comments return a blank screen because it exhausts their memory.We strongly recommend that you paginate your comments.
How To Fix It:
  • Login to your WordPress admin area and go to Settings » Discussions.
  • Next look at the section where it says Break comments into pages. Simply select the number of comments you want on each page, and how you want to display them.
Once you do this, based on your theme styling, either you will see a numeric pagination or you will see Previous / Next comment links.
16. DISABLE EMOJIS
WordPress is now including an additional javascript file  wp-emoji-release.min.js?ver=4.3.1  in your header for emoji support. This creates an unnecessary additional HTTP request, especially if you don’t want to even use them.
HOW TO FIX IT: Install the free WordPress plugin “Disable Emojis” by Ryan Hellyer. This plugin disables the new emoji functionality in WordPress 4.2.

(OPTIONAL) HOW TO FIX IT WITHOUT A PLUGIN: If you don’t want the overhead of another plugin then simply take the code from Ryan’s plugin and drop it into the bottom of your functions.php file.
17. DISABLE SCRIPTS ON A PAGE-LEVEL BASIS
The Gonzalez plugin lets you disable unnecessary scripts from loading on a page-level and site-wide basis. You will most likely be able to get rid of at least 5 or more HTTP requests/scripts by using this plugin.
  • It isn’t free, but well for the money if you are trying to squeeze out a little more speed.
  • For example, Contact Form 7 and social plugins by default load scripts on every page. With this plugin, you can easily only load scripts on certain pages.
18. GRAVATARS
If you are using the native WordPress commenting system by default it creates a separate HTTP request for each gravatar. If you have a lot of comments this can result in tons of requests and unnecessary redirects.
HOW TO FIX IT: Install the free WordPress plugin WP User Avatar. This In the settings menu click on “Disable Gravatar and use only local avatars.” Then choose a default avatar.
19. DISABLE EMBEDS
WordPress automatically loads  wp-embed.min.js  which allows easy embedding of videos, images, tweets, etc.
A lot of people don’t use this feature. You can always link the original way by grabbing the embed code off of YouTube or Twitter. The issue is that the script loads on every page. There are a couple of ways to disable this script.
HOW TO FIX IT: Install the free WordPress plugin “Disable Embeds
20. UPDATE PHP VERSION
Change your PHP version to the latest version and your website will be a lot snappier.
HOW TO DO IT:
  • Step #1. Make sure your plugins and themes are compatible with newer PHP versions with the PHP Compatibility Checker before updating to the latest version of PHP.
  • Step #2. Change your PHP Version in cPanel
  1. Log into cPanel.
  2. Click PHP Configuration in the Software section. ...
  3. Select the version of PHP you want to use from the dropdown.
  4. Click Update to save your php configuration.
If you only see PHP Version (not Select PHP Version) in the Software/Services section, your server does not support this feature. You should contact customer support at your web host and request that they upgrade you directly.
Some web hosts do not give you the ability to change PHP versions on your own, in that case you may need to submit a support ticket in order to request an upgrade.
Note that If you encounter any issues, you can also easily switch back to your original PHP version.
Why do only 15% of WordPress users use the latest PHP version? Even though it makes your site faster?
Your hosting company will NOT automatically upgrade you to the latest version of PHP since your theme/plugins may not be compatible (and they don’t want to break your site). This means you need to do it yourself or request help from your host). It also means if you’ve been on the same host for many years and have never done it, you’re probably still running PHP5.
One of the goals of the WordPress organization is that all users upgrade to PHP 7 (or the most current version).
21. KEEP WORDPRESS UPDATED
  • For faster site speed you should keep your WordPress site, theme, and plugins updated to the latest versions.
  • Not doing this will make your site slow, unreliable, and vulnerable to security threats.
HOW TO DO IT: All you need to do is visit Dashboard » Updates page and install those updates. This is a one-click process.
As a website owner, it’s your responsibility to keep your WordPress site, theme, and plugins updated to the latest versions. Not doing so may make your site slow and unreliable, and make you vulnerable to security threats.
As a well maintained open source project, WordPress is updated frequently. Each update will not only offer new features, but also fix security issues and bugs. Your WordPress theme and plugins may have regular updates, too.
Update WordPress core, theme, plugins, and framework if you use one (eg. Genesis).
WordPress developers are always trying to make things faster. Each new release comes with several performance improvements that makes WordPress run faster and more efficient.
For example, WordPress 4.2 improved JS performance for navigation menus, and WordPress 4.1 improved complex queries which helped with performance of sites using those queries.
Since speed is a huge factor in SEO, you should definitely keep your WordPress updated to ensure maximum performance benefits.
Since many website owners do not login to their WordPress dashboard daily, they may not even know that there is an update available for days. Thankfully, you have a few options.
Get Email Notifications for Updates in WordPress
When you’re busy running your business, logging into your site to check for updates is usually the last thing on your mind. Wouldn’t it be easier if you could get an email notification whenever there is an update on your WordPress sites?
Well that’s possible.
First thing you need to do is install and activate the WP Updates Notifier plugin. Upon activation, visit Settings » Updates Notifier to configure the plugin settings.
Auto Install WordPress Updates
You can automate the process even further. WordPress allows you to enable automatic updates for major releases, plugins, and themes.
This option is risky if you’re not using managed WordPress hosting. Managed WordPress hosting companies automatically update your site to major WordPress versions and keep an eye out if something breaks.
If you turn on automatic updates, then there is a slight risk that your site may break and you won’t be online to fix it right away.
Let’s take a look at how to do this.
First you need to install and activate the Easy Updates Manager plugin. Upon activation, you need to visit Dashboard » Update Options page to configure the plugin.
Setting up WordPress automatic updates
Now you need to scroll down to automatic updates section where you can enable automatic updates for core, plugins, themes, and translation files. Once you are done, simply save your settings.
22. OPTIMIZE WORDPRESS REVISIONS
  • Whenever you save a page or post in WordPress it creates a revision.
  • This occurs in both drafts and already published posts that are updated.
  • This can SLOW down your WordPress site.  
HOW TO FIX IT:
Limit/Disable WordPress Revisions
Also recommended is using the WP Disable plugin to deactivate unnecessary settings in WordPress
Whenever you save a page or post in WordPress it creates a revision. This occurs in both drafts and already published posts that are updated. Revisions can be helpful in case you need to revert back to a previous version of your content. However, they can also hurt the performance of your WordPress site. On large sites this can add up very quickly to thousands of rows in your database which are not necessarily needed. And the more rows you have the larger your database in size, which takes up storage space. Follow the steps below on how to delete, limit, and disable WordPress revisions for faster performance.
It is not uncommon for older sites to have 100+ revisions on their main pages. This is simply due to years of editing and updating content. Let’s say for example a site has 700 pages or posts with 150 revisions on each, this would be over 100,000 entries in the database. This happens a lot more frequently than you might think. Thankfully, there are a couple easy optimizations you can make to ensure this doesn’t hurt the performance of your site.
Revision management is one of the perks that WordPress has to offer. The CMS automatically keeps track of the content created on the CMS and makes all of it available for future changes. To the server, this costs unnecessary processing through additional database entries not actually required in the first place. Controlling the number of revisions stored relieves the website core of useless burden.
How to Optimize WordPress Revisions for Faster Performance
  • Delete WordPress Revisions With Plugin
  • Limit Number of WordPress Revisions (Recommended)
  • Disable WordPress Revisions (Optional)
Delete WordPress Revisions
If you are starting a new site, you can skip to the next section as you won’t have existing revisions. If you are on an older site, the first thing you will probably want to do is cleanup and delete the hundreds or thousands of WordPress revisions. This is where a lot of the magic happens, and you can free up space in your database. If you are trying to do this with a MySQL query, be very careful as there are a lot of bad snippets of code floating around the WordPress repository forums with bad information. Many suggest queries that sometimes delete a relationship needed to make dashboard links work.
Use the free Optimize Database after Deleting Revisions plugin. It uses the built-in WordPress term functions, which is the correct way to do things.
*Important! Running any type of database plugin could break your site if not done correctly. We always recommend backing up your MySQL database beforehand. If you are not comfortable doing this, please check with a developer first.
How to Delete WordPress Revisions:
Step #1
Download and install the free Optimize Database after Deleting Revisions plugin. You can download it from the WordPress repository or by searching for it within your WordPress dashboard under “Add New” plugins.
Step #2
Click into the plugin settings of “Optimize Database” and input the date of the time for which you want to delete revisions. In our example, we did any revisions that are older than 1 day. Below, select the “check all tables,” which will exclude them from being optimized. We are not wanting to do anything else in this tutorial other than delete revisions, we will dive into optimization in another tutorial. Scroll down and click on “Go to Optimizer.”
Step #3
  • Then click on “Start Optimization.”
  • You will then see a summary of the space saved and the deleted revisions.
  • We then suggest uninstalling the database optimization plugin and following the next recommendation on limiting post revisions further below.
Limit Number of WordPress Revisions (Recommended)
After you have cleaned up your old revisions, the next step is to limit the number of WordPress revisions that you allow.
This can be a great stop-gap measure to ensure that the revisions don’t pile up again. Perhaps you want to save 3 revisions. WordPress will keep that number and delete any previous ones.
This can be done with the Perfmatters premium plugin otherwise coding is needed. This plugin allowss you to limit the number of stored WordPress revisions or disable them altogether.
Disable WordPress Revisions (Optional)
The last option you have is to simply disable WordPress revisions altogether. Typically option 2 above is the most commonly used method. However, if you are on a single author site, you might simply want to get rid of them altogether. Remember, it will still save a draft, it just won’t have revision restore points.
Use the free and lightweight WordPress plugin called Disable Post Revision. Simply install it, click into “Writing” in your dashboard, and select the post types for which you want to disable revisions.
23. DISABLE HOTLINKING
  • Hotlinking refers to someone directly linking to one of your images on their own server.
  • What this means is that when someone visits their site it has to load the image from your server, taking up your bandwidth.
HOW TO FIX IT: Follow these steps to prevent hotlinking for faster performance.
24. DISABLE PINGBACKS & TRACKBACKS
Pingbacks and trackbacks are considered by some as a legacy feature now, and they can cause slowness when it comes to page speed.
HOW TO FIX IT:
  • Login to WordPress Admin Panel
  • Go to Settings -> Discussion
  • Disable Option “Allow link notifications from other blogs (pingbacks & trackbacks)
  • Save
25. REDUCING TIME TO FIRST BYTE (TTFB)
  • TTFB measures how long a browser has to wait before receiving its first byte of data from the server.
  • Google recommends that your TTFB be under 200ms (milliseconds).
HOW TO FIX IT: 
1. Utilize a Fast WordPress Host
The first way to reduce TTFB is to ensure you are using a fast WordPress host. Your TTFB times will decrease simply by using a faster host. Having a good WordPress host with a carefully thought out architecture is crucial to lowering your TTFB. This also makes a good case for carefully choosing a place physically located in a region where your customers are. If most of your customers are in the United States, don’t host your server in Europe (although a CDN can help negate some of that).
2. Implement a CDN
Another easy way to decrease TTFB is to utilize a Content Delivery Network (CDN). If you have website that is serving visitors in different parts of the country, or around the globe, this can drastically decrease your TTFB. Location is very important.
Note: If you are utilizing Cloudflare, you might have a slightly higher TTFB. This is most likely due to the additional overhead and complexity of having the fully proxy service running. Remember that Cloudflare has additional firewalls and other features that some CDN providers don’t have. So you would need to make up your own mind which might benefit you more. If your entire site is not properly optimized, taking the hit on the slightly higher TTFB might be worth the trade off.
However, you might also want to check out WP Bullet’s guide on using Cloudflare page caching to lower TTFB. This could require some additional setup and testing. Make sure to run your own tests as each environment is different.
3. WordPress Caching
A third way, and probably one of the easiest ways to decrease your TTFB is to utilize caching on your WordPress site. Many only think that caching can help decrease your load times, but in fact, it also helps decrease TTFB by as much as 90% as it helps reduce the server processing time.
4. Use a Premium DNS Provider
DNS plays a part in TTFB as well. It is hard to exactly calculate how much it is affected, but you can still see overall DNS lookup times and see that there are faster and slower providers out there.
For example DNS lookup times are much faster using Amazon Route 53’s premium DNS. Typically premium DNS providers will have better speeds. Cloudflare is a free one that also has great performance.
5. Load Smaller Files
If your web page is loading very large files, this content can also take a long time for the browser to download and display to users on the site. Whenever possible, serve scaled images (using a plugin like WP Smush or EWWW Image Optimizer Cloud), and minify your CSS and Javascript files (using plugins like Better WordPress Minify or Autoptimize). This will help decrease your TTFB, and allow your page to render faster. You can also defer your site’s Javascript to load lower down on your page, so that it doesn’t prevent the render of the page from happening.
6. Reduce Queries
Often times one of the largest elements affecting your site’s Time to First Byte is the number of queries being run by your site’s themes or plugins to get information from the database. To help identify query bottlenecks, installing a diagnostic plugin like Query Monitor can help you find which plugins, themes, or settings are affecting the site load time.
7. Reduce Autoloaded Data
The wp_options table in your WordPress database stores many important settings for your site. This includes things like defining your site’s URL, theme, and active plugins. There is a column in this table for “Autoload” – when marked “yes,” this indicates WordPress has to load this row on every single page load. If there is data stored in wp_options which does not need to load on all pages by default, you may consider setting these rows to “no” for Autoload instead. To find out what your largest autoloaded rows of data are, you can use the following query under the SQL tab in phpMyAdmin on your wp_INSTALL database:
SELECT LENGTH(option_value),option_name FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 20;
8. Update Plugins and Themes
As simple as it may seem, plugin and theme authors often add optimizations in their updates. This could mean they have optimized the queries that their code runs to the database, or made updates that affect the efficiency of their PHP code. They also often release security updates. It’s important to stay on top of these updates to make sure your site stays secure and fast. Also keep in mind, some premium themes and plugins aren’t listed in the standard WordPress plugin database and may not show updates when they are available.  Be sure to keep your licenses up to date, and periodically check for updates from your premium plugin or theme provider.
9. Limit Other Directives
There may be some PHP directives you want to include in your .htaccess file. However, many of them (like caching directives, gzip directives, and more) are already configured higher up on the server and do not need to be set in this file. Whenever possible, keep your .htaccess file as short and clean as you can.
10. Amount of Traffic
To some extent, the amount of traffic your site receives is also outside your control. However, the scalability of how your server responds to the traffic is something you can control. The higher your site’s cacheability, the more requests your server can serve at once. If your site is receiving a large number of uncached requests however, this can increase the server’s CPU load which will also affect the Time to First Byte. When you’re anticipating a spike in traffic, it’s important to ensure your site is able to scale to the amount of traffic you’re expecting.
TTFB FAQs:
High TTFB is primarily caused by:
  • Bad network conditions between client and server
  • A slowly responding server application
  • Domain provider name server is slow
  • Web hosting provider taking time to respond
  • Server is not properly configured
  • MySQL is taking time and running slow on load
  • PHP is rendering slow
  • Amount of traffic
  • Dynamic content creation
  • other...
Here is how it works:
A client visits your website... (www.yourfastwordpresswebsite.com)
STEP #1: An HTTP request is sent from the client's (browser) to the server. In this step, there are a variety of factors that can introduce delays...
  • slow DNS lookup times could contribute to increased time for the request
  • if the server is located geographically far away, this can introduce latency
  • if you have complex firewall rules this could increase routing time
  • and don’t forget the client’s internet speed
STEP #2: The server now has to process it and generate a response. This could introduce a number of different delays such as...
  • slow database calls
  • too many 3rd party scripts
  • not caching your first response
  • badly optimized code or WordPress theme
  • inefficient server resources such as disk I/O or memory
STEP #3: After the server processes the request, it then has to send it back to the client (or rather send back the first byte). This is heavily affected by...
  • the network speed of the server
  • the network speed of the client
    • If the client has slow internet from a Wi-Fi hotspot, it is going to reflect in the TTFB
Is TTFB important?
It is important to understand that TTFB (time to first byte) is not the same as website speed. This is really a measurement of responsiveness. There are a lot of discussions around the web on whether or not TTFB is important.
Rather than spending time debating the matter, we'd would rather focus on optimizations you can do to improve this metric. Everything you do can contribute to the overall speed of your WordPress site, will affect your TTFB.
Testing your TTFB...we recommending using webpagetest.org to test your TTFB
The Bottom Line:
There are other things you could do to reduce TTFB, such as database caching, Disk IO, Swap usage, RAM, PHP settings, MySQL settings, network settings, TLS overhead, etc. But the ones mentioned above are fairly easy to implement and will give you the fastest performance boost. So the next time someone asks you how to reduce your TTFB, remember that a fast WordPress host, CDN, caching, and DNS all play a huge part. Fixing or improving those bottlenecks will do the trick.
26. OPTIMIZE FONTS
The loading time difference between a Google font and a web safe font is almost a 200ms. Web font optimization is a complex topic...Learn more about web font optimization strategies here:
27. BROTLI COMPRESSION
  • Brotli compression is a new, open-sourced, compression algorithm developed by Google to help further reduce the size of files.
  • Since Brotli is still new, it isn’t yet available on all CDN providers yet. But there are a few such as KeyCDN and CDN77 which now support it.
  • In most cases, your web host must also have Brotli enabled for this to work.
28. AUTOMATE IMAGE OPTIMIZATION
According to Google, image compression should be automated. It's easy to forget to optimize new images and content that doesn't go through compression can easily slip through the cracks.
29. ENABLE HTTP KEEP-ALIVE RESPONSE HEADERS
HOW TO DO IT:
  • Open your hosting cPanel
  • Click onto your public_html folder
  • Locate the .htaccess file
  • Select ‘Code Edit’
  • Add the following lines of code into your website’s .htaccess file:
               <ifModule mod_headers.c> Header set Connection keep-alive </ifModule>
  • Save the file and refresh your browser
NOTE: Always perform a full site and MySQL database backup before doing this optimization.
30. USE EXPIRES HEADERS
When a user visits your website, your website files will be stored on their computer so that your website loads faster for them the next time they visit there's an expiration date in the file header.

HOW TO DO IT: Configure the expires header so that it doesn't impact your server and page load time.
ADVANCED OPTIMIZATIONS
THE SECRET SAUCE. The difference between your website and your competitors is instantaneous page loading speeds done with advanced optimizations.
BEST PRACTICE: Always backup your site before performing advanced optimizations
31. PJAX
  • PJAX is the combination of something called pushState + AJAX
  • PJAX essentially eliminates latency
  • There is a 200-300ms lag time between when a user hovers over a link and when they click the link.
What PJAX does is load a page in the background the moment a user hovers over a link. The effect is the perception of instantaneous page loading.
How to do PJAX: Use the Turbolinks plugin. Note that you can make a pull request for any debugging issues that you may encounter through the developer's GitHub repository.
32. RESOURCE HINTING
If your WordPress installation does not play nicely with PJAX, resource hints can be another great way to boost WordPress speed.
The best code free way to do resource hinting is a plugin called Per page add to head.
33. ENABLE PERSISTENT CACHING
By default, cached data will not be stored persistently across page loads unless you install a persistent caching plugin.
Here is a list of persistent caching plugins recommended by WordPress.org:
34. IMPROVE YOUR AJAX PERFORMANCE
Ajax is a JavaScript based technology that allows a web page to fetch new information and present itself without refreshing the page.
  • The Heartbeat Control plugin helps you to manage the frequency of the WordPress heartbeat API to improve your website performance.
*It is recommended that you disable everywhere except for your post edit pages.
35. POST FETCHING
WordPress provides the ability to fetch any kind of post from the database. But inefficient code can slow down this process. For an elegant approach to achieving similar functionality without negatively impacting performance, check out Martin Di Felice's article on post fetching optimization here.
36. SELECTIVE PLUGIN LOADING
This optimization can be accomplished without any coding. The Plugin Organizer plugin allows you to selectively disable plugins on a post/page. And to setup the order in which the plugins are loaded/initiated. This is ideal for larger sites.
Important! Reordering or disabling plugins can break your site. Backup WordPress before using this plugin!  
37. CACHE WARMING
Uncached pages are murder on performance and user experience. So we're going to keep your server side cache warm at all times so that no visitor ever gets an uncached page. This is relatively easy to setup with the Warm Cache plugin.
Cache Warming Pre-requisites:
38. START USING HTTP/2
Whether you can use HTTP/2 with WordPress actually depends on whether your hosting company offers it. So you'll have to confirm the actual availability of the new protocol with your hosting company.
39. WEB SERVER OPTIMIZATION
Your web server can be configured to increase performance. There are a range of techniques including web server caching, enabling gzip compression and setting cache headers that help reduce load per visitor. Do a Google search for your specific web server optimizations (for example, search for "apache optimization" for more info). Consider learning the differences between Apache and Nginx.
40. MySQL
MySQL optimization is a black art in itself. A few simple changes can have a dramatic effect on WordPress performance because WordPress repeats a lot of queries on every request. Do a Google search for "MySQL optimization" for more.
41. PHP CODE OPTIMIZATION
There are various PHP accelerators available which can dramatically improve performance of your PHP files. The following article provides detailed instructions on how to do PHP optimizations in WordPress:
42. PREMIUM DNS
Typically the free DNS provided by domain registrars like GoDaddy and Namecheap is very slow. Google domains is probably one exception to this rule simply because they have such a large infrastructure. Premium DNS providers offer a lot of advantages such as security, DNS failover, and faster performance.
43. WEB HOSTING
"Ludicrous Speed, Go!" -Dark Helmet (Spaceballs)
Choosing the right host or plan for your WordPress website is key to web performance optimization. WordPress recommends hosting as the #1 thing that you can do to speed up your website.
WHAT IS WEB HOSTING?
  • Your web host is a company that sells you space on their servers to store your website data
  • You website data includes  your WordPress installation,images, video, files etc.
  • The most important factor is whether you are on a shared plan, a VPS or a dedicated server.
WHAT IS A SERVER?
  • A server is a physical computer (just like your home computer)
  • Servers have memory, CPUs & other properties that affect their performance
  • Your server is key in determining your website speed, especially during high traffic times
HOW TO TELL IF YOUR HOSTING IS SLOW
Test your site through webpagetest.org and check your TTFB (time to first byte). It should ideally be <200ms (milliseconds).
SHARED, VPS, & DEDICATED SERVERS
These three terms are types of hosting. Somewhat simplified: they determine how many people use the same server as you.
  • On a shared service, you might get hundreds of people on the same server. This means that a hundred people share the same memory, CPU, and other resources. Resources are not shared evenly. A neighbor's faulty site may use up 80% of a server’s resources, leaving 99 other users with 20% or worse.
  • A VPS (Virtual Private Server) is also shared, but usually between fewer users. Resources are shared evenly. If there are 5 users on a server, they each get 20% of the resources. If a neighbor tries to use more than 20%, their site might fail, but the other sites will be fine.
  • On a dedicated server, you are the sole user of the server and all its resources. This completely negates the “bad neighbor” effect that shared services bring to the table.
SERVER PERFORMANCE
The higher the performance of your server (processor speed, CPU...) the faster your website will perform.
Another thing that will make a difference is your server location. Distance tends to affect the speed at which you make requests...
For example, downloading a 100MB file from Australia would take about the same time as it does from New York. However, downloading 100 files which are 1MB in size will take a lot longer if you are further away.
Why do the number of requests matter? We'll talk about this concept more in upcoming lessons...But basically, when a website loads it can make a lot of requests (JavaScript, CSS, images, and others) to the server.
By minimizing the number of requests, we can accelerate loading times.
CHOOSING A GOOD HOST
  • Do not use shared hosting unless you absolutely have to. These cost around $4/month. But you get a slower website due to over crowded servers.
  • Do not get dedicated hosting. If you don’t know what you’re doing you’ll be totally lost. Dedicated hosting requires an expert level knowledge of server technologies.
  • VPS is a great way to go. There are plans around $5/month, but generally the cost is around $25 – $50 a month. And some high-end VPS servers are more capable than low-end dedicated servers, so you could find a pretty good deal.
  • Managed WordPress hosting is built with WordPress in mind. It offers server-level caching and other goodies that will make your WordPress site lightning fast. However, there may be some restrictions such as the host disabling some plugins and themes due to speed or security concerns.
MANAGED HOSTING
For a new business or those less tech savvy, a managed WordPress host might be a better solution.

Managed hosting handles all the technical aspects of running WordPress. This includes...
  • security
  • speed
  • WordPress updates
  • daily backups
  • website uptime
  • scalability
  • performance optimizations
  • and other features
The benefits of managed WordPress hosting include...
  • server architecture that’s designed specifically for WordPress, which usually means better performance
  • built-in server-level caching, which also means better performance
  • automatic WordPress updates to keep your site secure and functioning
  • automatic backups to ensure your WordPress site’s data is safe
  • all the customer support agents are WordPress experts
  • WordPress-specific security tweaks, like
    • firewalls
    • login hardening
    • and malware scans
How To Easily Speed Optimize Your Managed Hosting
The WordPress Optimization Guide recommends upgrading to hosting plans which offer more SSD (Solid State Drive) server resources.

The amount of server resources you get is the main factor when it comes to hosting and site speed.

Your website will load faster with the higher plans.

PRO TIP #1:Don’t forget to activate Cloudflare (free) in cPanel which makes your site even zippier.

PRO TIP #2:
Also in Cloudflare...Turn on aggressive caching, minify code, and Railgun for even quicker load times…
VPS HOSTING
VPS hosting is recommended over managed hosting for your WordPress site. And there are 3 reasons why...
  1. The first is that all shared hosts seriously limit the manner in which you can choose to configure your own site setup. They'll can tell you what plugins you can use just as one simple example.
  2. The second is that managed WordPress hosts do not allow you complete access to your setup, and your site server in particular. Intermediate and advanced server optimization is the organic next step after you master this course. And you won't be able to do that if your site is on managed hosting.
  3. The third reason is that most managed hosts greatest strength is also their greatest weakness. And that's specifically that they will take care of your site's speed optimization for you. But there's a two-fold price that you'll pay for this... Again, a serious limiting of what you can do with your own hosting account. And should a problem arise with your site being slow, and your managed WordPress hosting company says they can't find anything wrong, you are done! That is the end of your support road leaving you with no other option. Except to upgrade to a VPS.
And while managed hosting will still enable you to get WordPress loading times under half a second, the fact of the matter remains that managed hosting is not as optimal as VPS hosting.
WHEN TO MOVE TO A VPS
Knowing when to move to VPS is a decision that usually is based on a few things like:
  • need for more speed due to high website traffic
  • business branding needs
  • advanced and improved security
  • support – semi or full managed hosting needs
  • needing to create individual accounts in your VPS to accommodate your client’s hosting
  • more options for advanced performance
  • your SEO needs like private name servers, dedicated IPs or loading pages
BEST PRACTICES
The truth of the matter is this, most blogs get hacked for one of two reasons: Either your software is out-of-date or your hosting is insecure. Sites can also break for any number of reasons.
Most, quality WordPress hosting providers offer daily backups, but it is still a good idea to create your own. We recommend the free Updraft Backup And Restoration plugin.
So which is the best WordPress hosting?
That depends entirely on what you need.
  • Are you a beginner who needs affordable hosting? WordPress recommends: Bluehost, Dreamhost, or SiteGround(affiliate links) .
  • Do you need help managing your site or handling sudden traffic? Kinsta (affiliate link).
If you are happy with your current host. WordPress recommends upgrading to a higher plan with more SSD server resources for faster speeds!

Other than hosting, caching is the most impactful way to get an instant web performance boost in WordPress. In the next lesson, you'll learn about the best free caching plugin to use and you'll also learn how to optimally configure it to maximize performance.
BONUS #1: What Is Page Speed?
Let’s not beat around the bush...
You need a quick-loading website!
PAGE SPEED EXPLAINED
  • The term page speed is a measurement of how long it takes web page to download content from hosting servers and display onto a user's web browser.
  • Page speed can also be defined as the length of time it takes for a browser to receive a web server’s first byte.
WHAT IS SITE SPEED?
Though similar, page speed is not the same as site speed.
  • Site speed is the average speed of several sample pages on a website.
  • While page speed is specific to a single page on a site.
HOW TO TEST WEBSITE SPEED
First we recommend using a website speed test tool to analyze the overall speed of your website.
We suggest using WebPageTest.org as it supports HTTP/2.

Run a test now, it is very comprehensive and takes about 2 minutes. By the time you finish reading this post your test will be ready.

It's easy, just enter your website address, location, and browser version. Then click on the yellow "START TEST" button. Easy!
WHAT IS WEB PERFORMANCE OPTIMIZATION?
Web performance optimization  is the field of knowledge about analyzing the performance of your website and improving it's performance.

Now that you have run some tests on your website to see where the delay or load is, it is now time to start optimizing...
Here Are Some of the Most Popular Website Performance Optimization Techniques
  • Hosting Infrastructure
  • Caching
  • Image Optimization
  • Reducing HTTP Requests
  • Minification & Concatenation
  • Eliminating Render Blocking
  • Reduce Latency with a CDN
  • Gzip Compression
  • Database Optimization
  • Lazy Loading
  • Lightweight Themes
  • Optimizing Plugins
  • hundreds of other tweaks 
Developing a great website takes great time and effort.But even if you know you need a faster website, when terms like caching, minification, and content delivery get thrown into the mix, it can start to feel a little overwhelming, right?
DIY WordPress speed optimization
Major online businesses leverage supernatural web developers and killer web hosting to achieve top-notch performance speeds.
But for everyone else, easy optimization tactics, like the ones you will learn in this series work (almost) as well to fix slow websites.
Why does page speed matter?
Speeding up your website makes your visitors happier, improves the chances they buy from you, and even gets you more of those visitors in the first place!

Page speed is one of the signals Google uses in its search algorithm to rank pages. More specifically, research has shown that Google may be measuring time to first byte (TTFB) when it considers page speed.
Ensuring your site is lightning fast is essential – there really isn’t much room for sites that can’t keep up...
  • In 2010, Google announced that page speed would be included as one of the ranking factors for their search algorithm.
  • In 2018, Google gave page speed even more consideration, incorporating mobile site speed to rank sites on its “mobile-first” pages.
WHY IS GOOGLE SO OBSESSED WITH SPEED?
Page speed is the new SEO
Google began factoring page speed into its algorithm ever since it experienced a 20% dip in traffic resulting from half a second delay in page load times.
In fact, Google is so committed to a faster Internet, that they are offer a suite of free optimization tools known as Mod PageSpeed which can be installed on your server. They are literally give this information away in order to help web owners to get faster sites. They really could be charging for these tools and making even more obscene profits than they already do.
Numbers don't lie
According to Google: a 500ms (milli seconds) of additional load time = 20% decrease in their ad revenue.
For Google, 500ms adds up tomillions and millions and millions of lost profit.
According to Bing: 2 seconds of additional load time = 2.5 decrease in queries and overall clicks. Again, huge lost revenue due to a slower user experience!
Amazon found that 100ms slow down (1/10 of a second!) = 1% decrease in their revenue.
Yahoo! 400ms improvement = 9% increase in traffic
Mozilla: 2.2 second improvement = 60 MILLION additional Firefox downloads.
Akamai Study (2009) = 40% of users abandon a website if it takes more than 3 seconds to load. 23% of users will even walk away from their computers if a site takes too long to load. This is devastating for eCommerce sites. Yes, they literally get up and walk away from their computers, and abandon their carts, when they encounter slow site speed. 64% of shoppers may never come back.
Gomez Internet Usage Study (2010): 75% of users will go to a competitor's site rather than wait on a slow website to load. 88% of visitors are less likely to visit a slow site again after a slow experience. 50% relate a slow site with untrustworthiness of the entire company after single slow experience.
Suffice it to say, there is now a critical need for speed in order to make search engines and users happy. Users prefer sites that load instantaneously, or at least faster than your competitors.
How search engines work
Search engines use algorithms to determine rankings in the search engine results page (SERP). The results are formed by over 200 factors in their algorithm which are constantly being updated. Some important ranking factors are...
  • Secured sites (HTTPS)
  • Websites that are mobile-friendly.
  • Page speed.
  • Schema markup.
  • Webpage content quality.
  • Webpage content length.
  • Social signals.
  • Quality backlinks.
  • User experience.
  • Website responsiveness.
Focusing on user experience will impact SEO. Google wants to rank websites that give visitors a good experience. And visitors tend to stay on sites that are fast.
HOW FAST IS FAST?
Instantaneous website speed leads to higher conversion rates ;-).
Engineers at Google have discovered that anything slower than the blink of an eye (400 ms) is long enough to cause users to search less.
Performance impacts conversions
The absolute critical principle in maximizing website performance is to focus on page speed optimization.
The days of web designers and developers overlooking page loading times are over.
The bottom line...
SPEED SELLS!
In order to convert your new traffic you need a fast loading site.
Q: So how does website speed affect conversions for the average online business?
A: Dramatically!
fast load times
  • Lightning-fast page load speed boosts sales.
  • When Mozilla increased page speed by 2.2 seconds, Firefox download figures rose by 15.4 percent or 10 million per year!
  • Walmart saw a 2 percent increase in conversion rates for every 1 second improvement in page load times.
  • Yes!
Strange enough, visitors would rather spend excessive time browsing for the information elsewhere than waiting a few seconds for the right website to load.
slow load times
And what happens when sites slow down?
  • 47 percent of ecommerce customers expect page load times of less than two seconds before they consider leaving.
  • 40 percent of users would abandon the site at the third second of waiting, before a performance analytics tool even captures their presence on the site.
  • The average peak load time for conversions is mere 2 seconds – faster than millions of websites out there.
  • I hate number, don't you?
  • slow = bad
Perceived speed matters more than actual speed.
Perceived performance is a measurement of how fast a user thinks your website is, not necessarily how fast web performance stats say it is.

We'll dive into optimization techniques to make your websites load faster and also feel faster.
Actual speed is still important
Users don’t like waiting. At the end of the day, improving the perceived performance of your site can have a huge impact on the user experience of your site.
But improving the perceived performance of your site should not be a substitute for increasing the objective speed of your site. Improving the actual page loading speed of your site is still an important factor.
Okay, so before we dive into optimizing your WordPress site, it’s important to do some bench marking of your site's performance.
In the next bonus, we’ll look at bench marking and the best tools to help you test your speed...
BONUS #2: The Best Website Speed Testing Tool?
Free page speed testing tools powered by search engine giants Google and Yahoo, and website monitoring specialists WebPagetest, GTMetrix, and Pingdom provide insights into website performance indicators.
These tests generate performance scores and also provide suggestions to educate non-techy website owners.
How these tools work
Performance bottlenecks are monitored by the tools across various elements of the web page including:
  • file size
  • load time
  • response time
  • and requests pertaining to various website parts (JavaScript, CSS files, HTML, images, etc.)
These tools use a bunch of browsers to load websites and replicate end-user website experience. Keep in mind that different tools identify different issues, test different performance parameters (and indicators) in different ways, from different browsers and geographic locations.
Performance ratings and test results often vary.
The tools generate performance scores based on a set of rules developed in the context of Web page performance and user priorities.
The principles include resource caching, client-server round-trip times, data download and upload size, and a host of rules impacting end-user website experience in terms of page speed.
Suggestions are generated in anticipation of page speed improvements that should occur by implementing appropriate performance optimization rules.
For example, if a large image file is served uncompressed, monitoring tools will recommend various measures to compress the bulky file. Such issues otherwise go unnoticed.
Why does a testing site ask you to fix something you don't have control over?
Most sites include code for services like ads, analytics or other widgets. These bits of code may fetch JavaScript or CSS from external sources. Of course, since you have no control over these other resources, there's nothing you can (or need to) do.
Keep in mind that the code that really needs to be optimized is the front end code (of CSS, JavaScript, images, HTML, etc) is what's going to make the most impact on your users. Concentrating on more efficient server side code optimizations is important; but you can get an even bigger speed increase by optimizing the front end code as well.
The pursuit for a speed optimized website begins with identifying critical front-end (web design and coding) issues.
According to Google’s Head Performance Engineer, Steve Souders, “80-90% of the end-user response time is spent on the front-end. Start here”.
Website Speed Testing Tools & Metrics
There are two questions you should ask of your speed testing tool, they are:
  1. Are optimizations implemented making your website faster, by how much, and in what ways?
  2. How do we know whether or not each of the optimizations that we implement, as we implement them, are making our website faster, by how much, and in what ways?
Without accurate metrics, this is all guess work.
Without accurate metrics, we cannot prove ANYTHING.
Which Tool To Pick?
So let's take a look at the four most popular tools which we will be covering now...
Pingdom & GTmetrix
Neither of these tools will give you the critical information that you need to know regarding what visitors to your website will experience on an initial page load or upon repeat page loads or navigating your site. In addition, some of their metrics are wrong, for example their load time metrics are not accurate for the overwhelming majority of your website users and what they are going to experience. However, GTmetrix is good for the Google PageSpeed & YSlow best practice recommendations that they provide.
Google PageSpeed Insights
This is not a speed test, but a performance best practices tool that lets you know whether or not you are adhering to what Google says it wants in order to be able to recognize your desktop and mobile pages as fast. So what we have here is basically the same thing that we have with Pingdom and GTmetrix, a best practices tool. We will however be utilizing PageSpeed Insights to obtain benchmark scores when we begin optimizing later in this course.
One thing to keep in mind is that, while Google claims that PageSpeed Insights does not factor into your search engine rankings, it's still hard to believe that somewhere a similar algorithm or mechanism is not in play evaluating your page. On top of what we already know Google uses to evaluate the speed of your web pages. Namely, Google's use of the Chrome browser to gather information from people that visit your website: For example the Google Chrome Browser collects data such as: How soon the content on the site began to render. How long it took it to be interactive. And how long it took for above the fold content (and everything else) to load for the user. 
So, Google PageSpeed Insights is valuable for two reasons:
The first being that you can know whether or not you are adhering to what Google wants from your website in order to presume that your website is fast.
The second being that you want to make sure, in the event that Google is in fact using algorithms to actually evaluate the speed of your site and therefore to place you in search results, you want these scores to be as high as they can possibly be. In spite of the fact that PageSpeed Insights only tells you whether or not you are adhering to Google best practices.
WebPagetest
The elite of the elite amongst speed performance tools. WebPagetest is a free open source project developed and supported by Google as part of their efforts to make the web faster.
Whereas with Google's PageSpeed Insights you are being given best practices information and whether or not your site is adhering to best practices. With WebPagetest you are getting actual actionable metrics and numbers for literally everything that you need. In addition, these metrics are reliable and accurate.
Tutorial: How To Run a Performance Test
At its core, WebPagetest is used for measuring and analyzing the performance of web pages. There are a lot of options that may seem intimidating at first but doing quick testing is pretty simple. This guide will walk you through submitting a test and interpreting the results.
Step 1. Enter The Page URL
The first thing you need to do is decide on a page to test. Most people start with the main page for their site (but don't neglect the other pages people visit either). Once you have decided on a page you'd like to test you go to WebPagetest and give it the URL for the page you want tested.
Step 2. Select a Location
Next you should decide where you want the test to be run from. WebPagetest has test machines that are physically located around the world and you should test from a location that is close to where your users are visiting from. You can either pick a location from the list or if you click on the Change button you can pick a location from a map view (just click on a balloon to select a location and then click ok). If you hold the pointer over the bubbles they will display a message telling you where the location is:
Step 3. Select a Browser
Finally, you need to decide what browser to use for the test. Different locations support different browsers so if a given location doesn't have the browser you are looking for, you can try a different location. The Dulles, VA USA location supports all of the browsers that WebPagetest works with (Internet Explorer 6, 7, 8 and 9). Ignore the "dynaTrace" browsers for now, those are used for more advanced analysis. We usually recommend using IE7 for initial testing because it's pretty much the worst-case scenario and makes it easier to see a lot of issues so if you're not sure what browser to start with just use IE7.
Step 4. Submit the Test
After everything is configured the way you like, click on the START TEST button and your request will be sent to the test location for testing. The test may take a while to run depending on how many tests are ahead of yours (figure at least one minute for each test ahead of yours but it's not unusual for it to be even longer than that). Once the test is complete you will be presented with the results.
Interpreting the Results
The results screen can be a bit intimidating the first time you see it because there is a lot of information to consume but there are some key pieces of information to look at first.
Optimization Grades:
At the top of the results page are a set of grades for the most critical performance optimizations. These cover the basic optimizations that apply to just about all sites and anything that isn't an A or a B justifies some serious scrutiny and investigation.
Keep-alive Enabled:
Each request for a piece of content on the page (image, javascript, css, flash, etc) needs to be made over a connection to the web server. Setting up new connections can take a lot of time so it is best to re-use connections when you can and keep-alive is the way that is done. They are enabled by default on most configurations and are part of the HTTP 1.1 standard but there are times when they will be broken (sometimes unintentionally). Enabling keep-alives is usually just a configuration change on the server and does not require any changes to the page itself and can usually reduce the time to load a page by 40-50%.
Compress Text:
Just about everything on a page that isn't an image or video is text of some kind (html, javascript, css). Text compresses really well and HTTP provides a way to transfer the files in compressed form. Enabling compression for text resources is usually just a server configuration change without requiring any changes to the page itself and can both improve the performance and reduce the costs of serving the content (by reducing the amount of data transmitted). Since text resources are usually downloaded at the beginning of the page (javascript and css), delivering them faster has a much larger impact on the user experience than excessive bytes on images or other content.
Compress Images:
The image compression check just looks at photo images (JPEG files) and makes sure the quality isn't set too high. JPEG images can usually be compressed pretty substantially without any noticeable reduction in visual quality. We use a standard of compressing the images at a quality level of "50" in Photoshop's "Save for Web" mode but generally you should compress them as much as you can before they start to look bad. It's also not uncommon for other data to be included in photos, particularly if they came from a digital camera (information about the camera, lens, location, even thumbnail images) and some of that should be removed from images before being published to a web page (be careful to retain any copyright information).
Cache Static Content:
Static Content are the pieces of content on your page that don't change frequently (images, javascript, css). You can configure them so that the user's browser will store them in a cache so if the user comes back to the page (or visits another page that uses the same file) they can just use the copy they already have instead of requesting the file from the web server. Successfully caching static content in the user's browser can significantly improve the performance of a repeat view visit (up to 80+% depending on the page) and reduces the load on the web servers. It can sometimes be tricky to implement caching without breaking a page though so don't just enable it blindly (you need to be able to change the file name for any files that you expect to change).
Combine JS/CSS Files:
Improving performance usually means reducing the number of requests for content and one of the easiest (and most significant) ways to do that is to reduce the number of individual css and javascript files that load at the beginning of the page (in the <head> which blocks the page from displaying to the user). An easy way to achieve this is to just merge all of the javascript code into a single file and the css into a single file so you have one of each (with the css preferably being loaded before the javascript). This can have a very substantial impact on the user experience by reducing the amount of time before they see something appear on the screen.
Use of CDN:
Each request for a piece of content to the web server has to travel from the user's browser all the way to the server and back. As you get further and further from the server this can become a significant amount of time (which adds up quickly as there are more requests on the page). Ultimately the time it takes is limited by the speed of light so there's not much you can do except to move your server closer to the users. That is exactly what a Content Distribution Network (CDN) does. They have servers all over the world that are close to users and they can serve a web site's static content from servers close to users. The only case where it doesn't make sense to use a CDN is if all of the users for a web site are close to the web server already (like for a community web site).
High-level Metrics: 
The data table at the top of the results page gives you some high-level information about the page that was loaded:
First View: The First View row is a test that was done with a browser that had its cache and cookies cleared out and represents what a first-time visitor to the page will experience.
Repeat View:
The Repeat View row is a test that was done immediately after the First View test without clearing out anything. The browser window is closed after the First View test and then a new browser is launched to do the Repeat View test. The Repeat View test represents what someone will see if they are coming back to the page some time after visiting it the first time (and is a best-case scenario since the test is re-visiting the page immediately).
Document Complete:
The metrics grouped together under the Document Complete heading are the metrics collected up until the browser considered the page loaded (onLoad event for those familiar with the javascript events). This usually happens after all of the images content have loaded but may not include content that is triggered by javascript execution.
Fully Loaded:
The metrics grouped together under the Fully Loaded heading are the metrics collected up until there was 2 seconds of no network activity after Document Complete. This will usually include any activity that is triggered by javascript after the main page loads.
Load Time:
The Load Time is the time from when the user started navigating to the page until the Document Complete event (usually when all of the page content has loaded).
First Byte:
The First Byte time is the time from when the user started navigating to the page until the first bit of the server response arrived. The bulk of this time is usually referred to the "back-end time" and is the amount of time the server spent building the page for the user.
Start Render:
The Start Render time is the first point in time that something was displayed to the screen. Before this point in time the user was staring at a blank page. This does not necessarily mean the user saw the page content, it could just be something as simple as a background color but it is the first indication of something happening for the user.
DOM Elements:
The DOM Elements metric is the count of the DOM elements on the tested page as measured at the end of the test.
Requests:
This is the number of requests that had to be made by the browser for pieces of content on the page (images, javascript, css, etc).
Bytes In:
This is the amount of data that the browser had to download in order to load the page. It is also commonly referred to as the "Page Size".
Tasks
Please take a few minutes to test your site now on Pingdom, GTMetrix, PageSpeed Insights & WebPagetest and note the results.
After you implement the page speed optimization tasks learned in Section 3, please go back to Pingdom, GTMetrix, Google Page Speed Insights & WebPagetest again and retake the tests. And compare the results.
Here are additional resources for how to use this tool: