There are a lot of factors that have to do with website page speed. Many have to do with coding, images, scripts, Your server could be a shared service, you could be loading large files and your server is in one part of the world and you are in the other, you are on a shared service and using a CMS that uses a shared data server and it is shared by many hundreds of others who hog up the allotted memory or CPU.
All (and I do mean all) frameworks like WordPress, Joomla, Drupal, Zend, etc. are designed to a broad standard of support, with the ability to configure bolt-on and plug-in components. They are generalized, flexible and designed to “dumb down” the process of building web applications. You can use them without understanding any of the principles of computer science – just cobble something together and it will appear on the browser! But there is a hidden price for this flexibility and that price must be paid. Your web clients are paying that price through the poor performance they experience every time they come to your web site.
Unfortunately, there is not a quick or easy or inexpensive fix. This is not a technical question any more — it’s a business priorities question. Will you make the investment in paid professional programmers who are experts in WordPress integration and performance management? Or will you try to learn everything the pro knows so you can do it yourself? Or will you settle for lame performance so you can save time and money? It’s a bit like Ohm’s Law. Once certain variables are fixed the last is determined.
The three easiest things you can do to speed up any WordPress web site are:
- Use a good caching plugin- Quick Cache is not good…it sacrifices speed for simplicity. Use W3 Total Cache or WP Super Cache. If using W3 Total Cache, make sure you activate both Page Caching and Database Caching for full benefits.
- Minify and combine- W3 Total Cache can minify your HTML, JavaScript, and CSS depending on what server extensions it can see. At worst, make it minify the HTML. If you prefer to not use W3 Total Cache, there are many other ways to minify and combine files, including large numbers of plugins, Google Page Speed extensions, and more.
- Optimize images- Make sure you are using the right size image for each thing you need an image for and use add_image_size() in your theme to make new sizes when uploading. Don’t be That Guy/Gal who uploads a 1200×600 image and uses HTML or CSS to display it as 400×200. Use PNGs over JPGs when possible. Use an image optimizer to squeeze things down as far as possible (I like https://wordpress.org/plugins/ewww-image-optimizer/) for this purpose.
More advanced techniques:
- Install and enable Varnish on the web server for super-fast object caching.
- Use a CDN (or Amazon S3 if you are poor) to get speed boosts by having users served by a server closer to them. Perhaps the easiest CDN to get started with is CloudFlare but their free offering is not great and there are better paid CDN’s (MaxCDN, Amazon CloudFront) out there.
- Know your plugins- Install and use the P3 plugin (https://wordpress.org/plugins/p3-profiler/) to get a sense of which plugin is consuming which resources. Some plugins are more resource-intensive than others and can drag down a site.
- Know your theme- Themes that are purchased or downloaded from third parties can be problematic on a number of levels. There are a few known/good theme developers who are committed to producing quality stuff but a lot of the junk you can find on ThemeForest and other catch-all theme sites are really terrible. Load your site with the browser’s debugging console turned on and look for broken links, external calls, font loading, etc. You can also run your theme through the WordPress Theme Check (https://wordpress.org/plugins/theme-check/) which can alert you to non-standard coding issues that will undoubtedly lead to other issues.
Best practice with W3 Total Cache
In W3 Total Cache, disable Object Caching unless you are using Varnish or similar. It actually slows things down if activated but not configured correctly.
Also in W3 Total Cache, enable magnification and let the caching plugin attempt to combine your JavaScript and CSS calls into one call for each file type.
The cache auto-clears every few hours or so automatically, so you only need to force it if whatever update you made isn’t reflected on the next visit by a logged out user (use a different browser to hit the site and see). When you update a post or page, W3 will purge that object from the cache and regenerate it so you just sort of learn to work the cache as you need to. What you don’t want to do is constantly purge the caches as that will defeat the purpose of having a cache to begin with.
Server performance also important for website speed
One thing your reports don’t really measure is how quickly the web server begins serving data in response to the initial GET request. If your server is under powered or if the internal routing is poor, the time to first byte (TTFB) may be a heartbeat or two slower than it should be. Meanwhile, the user is staring at a white screen and you may lose them. Once the loading animation shows up, you have to address the other issues the report mentions (too many requests, optimized images, etc.).
WordPress Backend Plugins – Do they effect page load speed?
In theory, they should only affect admin times if they are solely to improve admin functionality, but that said, it would be worth checking it with direct observation. Regardless of how well a plugin author programs them, WordPress still does a run through of the plugins to read and see which should be running and which not at page load. Even a lot of inactive plugins being there can also affect load speed.
Screw It, I Don’t Have Time For All That
Move your site to an ISP that features dedicated WordPress hosting. WP Engine, Page.ly, Dreamhost, and others now feature special (read: more expensive) plans on servers that are fine-tuned for WordPress operations. Furthermore, they should handle the caching and security issues for you so you don’t need to install or configure any caching/magnification plugins at all.
Recommended tools like Firefox -> Firebug -> YSlow. They can tell you a lot. Your scores are low mainly due to the number of requests being made and the relatively large images you’re loading. There’s not a lot you can do about that other than to:
1) Cut down on what it loading on the front page
2) Be more aggressive about optimizing images
3) Invest time/effort in writing a better lazy loading script so the page will render a bit faster
4) Try a CDN, especially one that can defer JavaScript loading. As Lucas recommends, Cloud Flare can kinda/sort do it but you may want to look at MaxCDN or another company to get it a little better. Installing mod_pagespeed may also help
https://developers.google.com/speed/pagespeed/module
My recommendation: If you have no experience in website development/programing find and join the nearest WordPress and PHP users’ groups. Go in person, meet everyone you can, figure out who the local experts are, ask around until you can find the WordPress banana man and then hire him to get hands-on with your project.