SOP 058: How to Optimize WordPress to Speed Up your Website
Goal:
Optimize your current WordPress setup and content for faster page load times.
Ideal Outcome:
Your users experience faster page load times and your server resources are more efficiently used, while your website still looks exactly the same to the end-user.
Prerequisites or requirements:
This exact process only applies to WordPress.org sites.
Why this is important:
As page load time goes from one second to five seconds, the probability of bounce increases by 90%. Without requiring a server upgrade, you can optimize your WordPress website so that it loads faster, therefore retaining more of your users.
Where this is done:
On your WordPress Admin Panel, on Pingdom.com, on Google Chrome.
When is this done:
Whenever there are pages that can still be further optimized. Whenever your page load times are too high.
Who does this:
The person responsible for Website Management, or a Web Developer.
Environment setup
Before starting this SOP, backup your website. You can do so by following the “Create a manual backup” section of SOP 053 (web version).Note: While this procedure is not likely to affect your website’s behavior and functionality there is a small chance it might be incompatible with your current server settings, current theme, or plugins and cause your website to be partially or completely unavailable.
Checking your website performance
Using an external tool:
Note: Using an external tool like Pingdom allows you to test your website by using a third-party server on a designated part of the world, ruling out the possibility that the cause for your website’s poor performance might be due to your current poor internet connection, device, or location in the world.
Using Pingdom:
2. Insert the page that you would like to test on the URL field → Select the location that is closer to where you target audience is → Click “Start Test”;
Note: If you don’t know which pages to test, they should be the most important pages on your funnel. (E.g: Homepage, Sales pages, Checkout, etc)
Performance grade: Your Google PageSpeed score. The higher the better.
Page size: The total size of your page, the amount of data a user would have to download if they requested your page. The lower the better.
Load time: The time (in seconds) it takes for your page to load under great network conditions. Bear in mind that depending on how your page is setup this result may appear to be slightly lower than what it really is. The lower the better.
3. Using a local tool:
Using Chrome’s built-in Performance Audit feature:
Note: Using a local tool, allows you to get real data of how long is taking for the website to load on your connection, as well as emulating devices or connections that might be popular among your user-base.
On Google Chrome, using incognito mode open the page you would like to test.
Note: You can open incognito mode by pressing Ctrl + Shift + N on Windows or ⌘ + Shift + n on a Mac.
Right click anywhere on the page and select “Inspect”.
Click “Audits”
Note 2: If you do not see some of the features shown on this chapter, make sure you are running the most up-to-date version of Google Chrome
If you want to test how your website performs on a specific device category or connection you can select it on the dropdowns:
Note: If you are not sure, select:
- Emulation: Desktop
- No throttling
- Clear storage
Once your audit is ready you will be able to see a performance report on how your page loaded:
Metrics:
Here you are able to see on a timeline how a visitor would see your page at each moment before it is fully loaded. Along with the following metrics:
First meaningful paint: Represents the time in milliseconds it took for your page to display meaningful content. The lower, the better.
First interactive: Represents the time in milliseconds it took for your page to become minimally interactive (which means, most, but not necessarily all, buttons, links, and other interactive elements were functional). The lower, the better.
Consistently interactive: Represents the time it took for your page to be fully functional and interactive. The lower, the better.
Evaluating your website performance
Note: Once the core pages have been tested, It’s important to understand if there is a need to take any action. If you have a low-traffic website the performance gains might not be as noticeable as if you have a high-traffic one and a server that is under heavy load.
- Open your Pingdom results page by referring back to the URL you’ve saved previously.
You will benefit the most from this SOP if your Pingdom metrics for your core pages are:
Page Size: > 3MB
Performance Grade: < C
2. Compare your performance against your competitors, and some major websites:
Further auditing your website performance reports
Open your pingdom results page by referring back to the URL you’ve saved previously.1. Locating your largest content:
Scroll down to “Content size by content type” and lookout for an entry that might be responsible for a big share of your page size. Typically those will be images or videos.2. Ask yourself and your team:
Do we absolutely need to have this file on this page?
Have we optimized this file the best that we could already?
Note: If the files are images, there will be a section on this SOP to optimize images.
3. If you conclude that you can remove them, go ahead and ask your developer to do it, or edit your page and remove them.
4. Locating tools and scripts that you might not be using anymore:
Scroll down the report to the “File Requests” section and analyze the names of the files and the domains and see if you can recognize some tools or scripts that you might not be using anymore.Example: If you find a request for http://load.sumo.com you know that it is your website loading that tool. If you are not using the tool anymore you should go ahead and remove it, for both performance and security reasons.
Note: If you don’t have Google Tag Manager on your website already, you can follow SOP004 (web version)
5. Locating bad response codes:
Scroll down the report to the “Response codes” section and lookout for response codes that are not “200 OK”, If all your response codes are “200 OK” you can move to the next chapter of this SOP.-
301/302/307 Redirects: Assess if it is possible to link to the final destination and avoid a redirect.
404 Not Found: This resource is not being loaded most likely because the file does not exist anymore or there is a typo. If the resource is not necessary this request should be removed from the page.
Decrease your homepage size by showing less blog posts upfront
Note: Depending on your WordPress theme, the steps below might vary slightly. Additionally, it might be the case that you are not currently displaying blog posts on your homepage or your theme does not allow changing this setting. If that is the case there is no gain in following this procedure—just skip to the next section of this SOP.
- On your browser, login to your WordPress Admin Panel.
- On the sidebar click “Settings” → “Reading”
Auditing your WordPress Plugins
Note: This step should be performed not only for performance reasons but also security reasons. Ideally you will want to perform this audit at least every 3 months.
- On your browser, login to your WordPress Admin Panel.
- On the sidebar click “Plugins”
Note: If you have inactive plugins that you are not using and do not expect to use in the future, you should delete them for security reasons.
Note: Make sure that you fully recognize the plugin and what it does before checking it. If you are not sure, ask your developer or website administrator about it.
Note: While not always, the most recent versions usually carry performance improvements. Plugins should also always be kept up-to-date for security reasons.
On your browser, navigate to your website and open a few pages to make sure everything is still working as intended after the plugin removals and updates. Visit your core pages (sales pages, checkout, forms) and make sure everything is still fully functional.
Note: If you are facing any issue you should first go ahead and re-enable any plugins you might have just disabled, that should fix the issue. Isolate which plugin is causing the malfunction by disabling them back one by one and checking when your issue arises again.
Note 2: If, for some reason, re-enabling your plugins does not fix your issue you can always restore your website from a backup by following the “Restoring from a backup” section of SOP053 (web version).
Install the WordPress W3 Total Cache Plugin
Note: While installing a performance optimization plugin like W3 Total Cache can have a very significant impact on your website performance, it can also cause your website to malfunction. Before proceeding to this step make sure:
- You are working on a local development environment (e.g: a staging version of your website) or/and
- You have fully backed up your website and have a restoring solution at hand. You can do so by following the “Create a manual backup” section of SOP 053 (web version)
If you are not working on a local development environment, but you are fine with having a bit of downtime until you restore the data from your latest backup you can also proceed to this section.
This SOP tries to cover the best settings that would work for most websites, but compatibility with every possible website/server setup can’t be achieved. If you are having trouble setting up your cache plugin contact your web developer or hosting company.
Note 2: Make sure you are not using any cache plugins already since that might conflict with this chapter of the SOP. To do that go back to the “Auditing your WordPress Plugins” section of this SOP and make sure you do not find any plugin that mentions any cache feature.
- On your browser, login to your WordPress Admin Panel.
- On the sidebar click “Plugins” → “Add New”
Note: If you have an incompatibility with the enhanced page cache feature inquire your webhosting company about it and ask if they can provide you with a solution.
8. On the sidebar click “General Settings”.Page Cache: Enable
Page Cache Method: Disk: Enhanced.
Note: If on the previous step you’ve detected that your server settings are not compatible with the “Enhanced” option and your current webhosting provider can not offer you a solution, select “Disk: Basic”. Also note that there is a small chance that the W3 Total Cache’s “compatibility check” tool’s alert is a false flag and your server actually supports the enhanced mode.
Note: While this option will work for most websites, it might cause your website to malfunction.
Note: If you are already using a minification plugin or service do not enable this feature.
10. Click “Save Settings and Purge Caches”
Note: If afterwards you still see a notification on top prompting to empty the cache, go ahead and do so:
Note: If parts of your website are no longer working, you can revert the changes you made by either disabling individual features or disabling the whole plugin.
Note: Since you’re now displaying a cached version of your website to your users everytime you make a change to your website (e.g: editing a page) you will want to purge that page’s cache so that your website refreshes the content that your users are seeing. You can do that by either hovering the WordPress Admin header’s “Performance” icon and clicking “Purge All Caches”. Or purge only specific caches (more efficient) by clicking the “Purge from cache” next to your WordPress posts and pages.
Installing the Shortpixel Image optimizer plugin
- On your browser, login to your WordPress Admin Panel.
- On the sidebar click “Plugins” → “Add New”
4. Click “Install Now” → “Activate”
Note 2: If you are not sure, select “Lossy”. This will offer you the best results while still making sure your images look good.
9. Click “Save and Go to Bulk Process”
Note: The free plan allows users to optimize up to 100 images per month. If you already have more than 100 images when you’re starting out, you may want to purchase a “One-Time” plan that suits your needs, afterwards, if you don’t plan on adding more than 100 images per month, the free plan will be enough.
Note 2: If by including thumbnails you go over your allowed monthly quota, you may choose to disable that option.
That’s it! Your images are now optimized and your pages and posts should now be lighter and faster to load. To the right of the success notification, you should see a percentage indicating the average image reduction.
Note: If you are using a cache plugin you might need to purge all caches before your newly optimized images are live.
Re-Test your pages:
After you have applied all, or some of the optimizations of this SOP, retake the tests that you have performed on your pages on the first chapter of this SOP and compare the results to see how much your page performance metrics improved.
Note: Make sure you select exactly the same server locations when performing the new tests.
That’s it! If you’ve implemented all the chapters of this SOP you should already have gained a considerable performance improvement.
Note:
If your page load times are still not at the level you would want them to be consider different additional solutions (outside of the scope of this SOP):
- Implement, or ask a developer to implement, a CDN;
- Consider upgrading your web hosting plan or move to a faster web host;
- Consider switching to a lighter WordPress theme, or redesigning your website with performance in mind;
- Hire a web developer to take your page-performance efforts even further;