As you might have noticed, the title is between quotation marks, and that’s because I’m quoting a lot of people who are wrongfully complaining about WordPress being slow.
I’ve seen this many times, but recently, I’ve witnessed something a bit more irritating than usual, so I decided to write this post to clarify some things.
Someone was asking on Twitter why is WordPress so slow, since his internet speed was good.
First of all, I doubt that nowadays you can’t load a website in decent time because of your internet connection’s speed unless you’re still using those old 56 kb/s Dial-ups.
I know there are countries that offer poor internet connections, but I’m not talking about playing online games here, I’m talking about loading a 500 KB web page, or whatever page size it might have.
Even mobile data provides at least decent speed to load websites.
And even if an internet connection is really bad, then a lot of websites will load slowly, not just WordPress-based ones.
Secondly, WordPress is not slow. Poorly optimized WordPress websites can be slow, which is another story.
If WordPress would be slow, then 30% of today’s websites wouldn’t run on it.
Among those sites being big brands, such as BBC America, PlayStation Blog, UPS, and so on.
WordPress is just a small part of your website
There is a huge amount of people that when they think of a WordPress website, they just think about the platform itself.
And you can see that by visiting the WordPress support forum.
I believe that 95% of the issues there are related to web hosts, plugins, and themes (a lot of them being premium), not to WordPress itself.
And that’s because, when something goes wrong, people automatically think that WordPress is to blame, which is rarely the case.
Yes, WordPress has a few bugs from time to time, but it’s not the root of all evil.
WordPress is just the Content Management System (CMS), which means it’s just a platform where you add and manage content: plugins, themes, media, and so on.
In order to create a website, WordPress requires: web host -> theme -> plugins.
Each of those is created and maintained by different developers, in different ways, using different styles and techniques.
When it comes to a website’s loading time, WordPress itself, the core, is the last place you want to look.
It all starts with your web host
There are a ton of bad web hosts out there, like GoDaddy, for example.
GoDaddy was so bad that, when I used to do some freelancing on Fiverr, I literally stopped accepting clients that had domains on GoDaddy, because I could literally not work on them due to the loading time, especially on shared environments.
I believe that if you would have only uploaded a 20 KB image on a domain there, nothing else, it would have still taken 10 seconds to load.
Note: I haven’t worked on a GoDaddy hosting for several years, I think. I heard they have improved things, so they might have become a decent hosting company – I don’t really know. I suggest doing some research on your own.
So, make sure that you pick a good hosting company first! Below are the ones that I recommend.
For low budgets:
- Siteground (here’s a detailed SiteGround hosting review for WordPress);
- HostGator (here’s how to purchase a HostGator WordPress hosting plan).
A bit more pricey:
- WP Engine (by using this link, you’ll get 10% OFF + 1 additional free month);
- Kinsta (they’ve put together a huge WordPress speed optimization guide).
You have no reason to look somewhere else, in my opinion. Sorry other web hosts! :(
It continues with your WordPress theme
If you picked a good web host, then make sure you don’t pick a bad theme next, which is poorly coded, poorly maintained, and so on.
I recommend going for premium themes because they are being updated and optimized better (usually) since it’s in the developers’ financial interest to do so. There are several freemium themes that have good free versions, though.
This doesn’t mean that all premium themes are good, because not all web developers are good or willing to create a high-quality theme, which takes more time and effort.
Here are some good places where you can find WordPress themes:
- StudioPress (WP Engine customers get all StudioPress themes for free);
- GeneratePress (review);
- Elegant Themes;
And here are some things to look out for when choosing a WordPress theme:
- Has the theme been recently updated? Yes? Good!
- Is the theme compatible with the latest WordPress version? Yes? Good!
- Is the theme using valid, up to date coding? Yes? Good!
- Is the theme using a lot of 3rd party plugins for its features? Yes? Bad!
- Is the theme causing a lot of HTTP requests? Yes? Bad!
- Are the CSS and JS files combined? Yes? Good!
- Are the theme files minified? Yes? Good!
- Is the size of the coding files too big? Yes? Bad!
Of course, you can’t find a perfect WordPress theme, but you can find a good one if you do some digging around.
You can also use a few plugins that can make a theme better.
Verifying if a theme is good or bad is not an easy task. You have to know what you’re looking for, use quite a few tools and interpret their results correctly.
Here come the plugins
So, you picked a good web host and a good theme. Nice!
But that can go down the drain if you’re choosing poorly developed plugins, or you’re starting to collect them like Pokémons. The fewer plugins you have, the better!
The guys at WPMU DEV found 637 plugins on a member’s website!
It takes like, 10 minutes just to count to 637, not to mention installing and configuring so many plugins.
By some miracle, his site seemed to be fine, but sometimes it only takes one “heavy” or poorly developed plugin to slow down your WordPress website.
Plugins are created and function in the same way as themes, basically. They can have a good or bad code, they can make few or many requests, and so on.
So, bad plugins are another factor that can cause your WordPress website to be slow.
Don’t forget about the content
Poorly optimized content can also slow down your WordPress website.
If you add 4k images with a resolution of 2122 x 1416 and a size of 9 MB per image, don’t expect anything good out of it.
For videos and GIFs is better if you’d use 3rd party platforms to upload them, and then embed them into your website.
It will also be best if you’d use services like Amazon S3, MaxCDN, or Cloudflare.
And it all ends with external requests
There are some things that some of us must have, like Google Analytics, Facebook Pixel, Google AdSense, Facebook widget, and who knows what else.
These come at a price, though – a lot of external requests and redirects.
The number of requests, both internal and external, are the ones that can really slow your WordPress website down. The more you have, the slower your website can become.
The bad news about external requests is that you have no power over them. You can’t cache them, minify them, combine them, and so on.
Why? Because they’re external files from 3rd party websites. They are not part of your website’s files.
Let’s see how I stand with external requests on my website, using an awesome online tool called Web Page Test.
No, I’m not going to use Pingdom, because this tool breaks down the data much better and provides more useful details.
But, before we proceed, please note that speed tools like this one, including Pingdom, measure the time it takes for every resource on the page to load, not how much it takes until the user actually starts to see content. Quoting from their website:
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).
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.
So, when you see a loading time of 5 seconds, for example, it doesn’t mean that a user actually waits 5 seconds with a blank, white browser page in front of him, waiting for something to load.
The time when the website starts to render (content starts to appear) is the more important part.
Now let’s get back to our example.
I’ll start with my homepage, on which I don’t run AdSense ads.
As you can see, it has 68 requests, which is a decent amount, although I have a pretty “heavy” homepage.
My theme also has its JS and CSS files combined, which is good.
Below are the requests.
Note: External requests are the ones that don’t start with https://themeskills.com.
Now let’s check one of my posts, on which I have ads.
Now I have 130 requests! How? Well, take a look at how many external requests containing “google” (“doubleclick” links included) appeared:
I don’t even want to count.
Those yellow links return 302 and 307 status codes, meaning that they are redirects, which can further add to the loading time.
Let’s take an example from one of Google’s posts.
As you can see, their amount of requests is very low, just 24, but they don’t run ads, or have Facebook Pixel added, and stuff like that. And, of course, they also have good web developers, which work on the same project, collaborate between them to provide better results, and so on.
They only have 4 external requests which are a bit lazy.
I had way, way more, but the speed was still good.
I got a B grade for Cache static content, and they got a D, but that’s mainly because of external files as well.
Also, note that the number of requests can differ. When testing my post at different times, I also got 98 requests, 110, and so on.
I don’t quite know why they vary so much, to be honest. If there’s a web developer reading this, please feel free to drop a comment and explain for us.
Anyway, the bottom line is that they are still way too many for my liking, and I can’t do anything about them unless I remove the AdSense ads since they are the main generator of external requests and redirects.
But, since the actual loading time is good, and it doesn’t affect SEO or user experience, I won’t panic. In the end, that’s what matters – the actual loading time of your website.
You can get grade D all over the place, and have 200 requests. If your website is still loading fast, then that’s the only thing that matters, for both search engines and users.
I just wanted to show you how easy it is to end up with a lot of requests, which might negatively impact your loading time.
What can WordPress be blamed for then?
I don’t know, really. Probably for the way it was designed, if you will; to have all these parts made by different developers, which you have to put together in order to create a website.
But that’s WordPress, that’s its purpose, and that’s the beauty of it.
I like having the freedom to add whatever I want, however I want it, on my WordPress website. It’s like using Android, not iOS. :D
But, of course, that freedom can come at a price, if I don’t know what I’m doing.
There’s always WordPress.com, for those of you that wish a more controlled environment.
Let’s make a quick summary of the most important things that were said in this post:
- WordPress is not slow. Poorly optimized WordPress websites can be slow;
- Make sure you don’t choose a crappy web host;
- Make sure you don’t choose a crappy theme;
- Make sure you don’t choose crappy plugins and don’t start a collecting them either. The fewer, the better;
- Make sure your content is well optimized;
- Make sure you have as few requests as possible, especially external ones from ads, all sorts of analytics, plugins, widgets, etc.
Also, here’s an interesting and helpful article that shares 22 tips to speed up your WordPress website. You should check it out.
That’s a wrap
Hope the post was comprehensive enough, and that I managed to clarify some things.
Don’t forget to share it with your friends!
If you want to start your own WordPress blog, or need a website for your business, my WordPress installation service is at your disposal!