I once had a web design client named Marie. She ran an eCommerce store selling fashionable, travel-friendly garments and handbags for women. One day, however, she came to me claiming we absolutely had to switch to a more expensive hosting plan. “My website is struggling,” she said. “Visits are up, but that’s led to nine-second load times and, as a result, decreasing conversion rates.”
Marie was right to be concerned; there was something wrong. It needed to be fixed, but before recommending she upgrade to a $200 per month hosting plan from her $20 per month VPS plan, I decided to do some research.
It turned out, her hosting plan actually offered more than enough resources for her current traffic. Like many speed problems I’ve encountered, it actually had more to do with bloat and unoptimized website elements.
-
Navigate This Article:
Why Your Web Hosting Might Not Be the Core Issue
Although some websites clearly need more resources because of significant increases in traffic or seasonal surges, most hosting companies provide more than enough server resources for the average website in their lower level plans. Shared hosting can often support anywhere from 25,000 to 300,000 visitors per month depending on the host and plan.
VPS (virtual private server) hosting shoots that number up to 1,500,000+ monthly visitors. That is, if your website is properly optimized. In my experience, someone with a shared or VPS hosting plan often just needs to find the real speed killers to take full advantage of their current hosting plan.
Here are the real speed killers I tend to encounter:
- Photos are too big: Heavyweight, unoptimized images are draining your server bandwidth.
- Too much data: Unoptimized or no caching forces your hosting server to reconstruct and resend every single webpage from scratch for each visitor.
- Using tools inefficiently: Lack of efficient content delivery makes content downloads much slower for those visitors geographically further from your server.
I’ve learned about these speed killers the hard way. With past clients, and my own websites, I blamed shared or VPS hosting plans, or the hosts themselves, for abysmal page load speeds. Yet, after some digging, I found that my servers rarely broke a sweat. I’d see numbers like 7% CPU usage and 11% RAM utilization. That’s nothing!
I wasn’t seeing any bottlenecks due to the computing power. It mainly had to do with these compounding factors. For example, visitors having to download massive images, often from far away places, and without any caching support.
My Four Pillars of Zero-Cost Website Speed Optimization
I’ve put together these four pillars of zero-cost website speed optimization to improve how I approach my own website optimization, but I also want to share them with you. I like to say that running a website without these pillars is like driving a car with the parking brake on: you have all the resources you need — you’re just not accessing them.
Pillar 1: Activate Multiple Types of Caching

I see caching as meal prepping for your server. Instead of forcing your server to build each webpage from scratch (for every visitor), you allow it to build and save some of the frequently visited parts long before they’re needed. This way, the server can simply have a webpage waiting in the batter’s box before a visitor shows up.
Since the server mustn’t rebuild entire webpages, you can decrease page load times by up to 70%, all without upgrading your hosting plan.
I recommend activating two types of caching:
Browser Caching
The simplest way I can explain browser caching is that it happens in the browser of your visitor, and it comes from your website to tell each browser that it should download certain files (those regularly visited by the user) locally. So, some of your website files get saved right on your visitors’ computers.
What’s great is that it only takes a few minutes to configure browser caching. These tools can help you with the process. After that, you never have to mess with it again. Here’s how:
- For WordPress sites: Install and configure a plugin like WP Rocket or W3 Total Cache.
- For a CDN: Turn on browser caching in your dashboard, like in Cloudflare’s online dashboard.
- For a non-WordPress site: Use one of the following bits of code.
Add this to .htaccess if using an Apache server:
ExpiresActive On
ExpiresByType image/jpg “access plus 1 year”
ExpiresByType image/jpeg “access plus 1 year”
ExpiresByType image/png “access plus 1 year”
ExpiresByType text/css “access plus 1 month”
ExpiresByType application/javascript “access plus 1 month”
Add this to your server config file (often in one of these: /etc/nginx/nginx.conf or /etc/nginx/sites-available/) if using an Nginx server:
location ~* \.(css|js)$ {
expires 1M;
add_header Cache-Control “public”;
}
location ~* \.(jpg|jpeg|png|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control “public”;
}
Server-side Caching
This form of caching complements browser caching with great success. Optimizing both ends of the data stream. Like the name suggests, server-side caching works by pushing the server itself to make pre-built HTML versions of your webpages, primarily its dynamic pages. This way, those pre-built versions go to the visitors instead of relying on a browser cache or for the server to build a file from scratch.
To activate server-side caching, you typically have to speak with your hosting provider. You may find it’s already turned on, or maybe you just have to click a button. A little investigating saves your sanity in the long run. You can also rely on plugins like W3 Total Cache and WP Rocket for server-side caching right from your WordPress website.
Pillar 2: Compress and Optimize All Images

I’ve seen so many websites where 4MB (megabytes) of images make up a 5MB homepage. Media elements, in fact, usually make up about 50-70% of any website’s entire weight. This directly affects loading times. The thing is, most images and videos don’t need to be that heavy to look crisp and clear online.
We’re not printing high-resolution photos or movie posters here. People are looking at your site on mobile screens and laptops. We can maintain quality detail and compress images, so no one can tell the difference, but everyone is happy with loading speed.
Here are my main methods for compressing and optimizing images:
- Automatically compress all your images: For some web hosting sites, this is becoming a built-in tool. Otherwise, this often involves installing a plugin or extension. It not only compresses any future uploads, but can also compress any media currently on your website. Consider “lossless” or “lossy” compression. Lossless offers lower file compression but maintains crisp image quality. Lossy compresses images into much smaller files but you may be able to notice a slight difference.
- Turn to modern image formats: You and I have been trained to use JPEGs and PNGS. Unfortunately, they’re not actually the best image formats anymore. WebP and AVIF are supported by most browsers and offer higher compression rates without losing quality. Many automated image converting plugins are available, like ShortPixel for Media.
- Activate lazy loading: Why load the 10 images you have on your homepage if a user only scrolls down far enough to see three? Lazy loading makes it so your website never unnecessarily loads an image until it’s within view for the visitor. WordPress version 5.5 images are lazy loaded by default using the HTML loading=lazy attribute.
Ideally, you use a quick, affordable tool to automatically optimize and compress your media elements. My favorites include ShortPixel, TinyPNG, and Squoosh.app.
Pillar 3: Turn on a Free CDN

You know how shipping companies like UPS and USPS have thousands of hubs spread across the world to efficiently make deliveries? That’s what a CDN (content delivery network) is, except for delivering your content to website visitors. Imagine if UPS only sent out all of its packages from one location.
That might be fine for people in Chicago if the one hub were in Chicago, but for everyone else, it makes things worse.
Your webpage content, particularly images, takes longer to get to visitors if it has a longer physical distance to travel. Yes, even the digital world is still limited to the laws of physics. A CDN, however, saves your content on a network of servers, spread out. So, when someone from Germany visits your website, the CDN would send them content from the German server instead of the US server.
CDNs are often free and easy to configure. For each of the options below, you can expect faster load times and improved experience.
My top five recommendations:
My favorite part about a CDN is that it can speed up your website dramatically without having to upgrade your plan. And CDNs work with any type of hosting plan.
Pillar 4: Clean Out All Code Bloat

Every image, webpage, hero banner, and button on your website is powered by code. That code is saved in a file, which then goes into a folder with hundreds of other files. Even the simplest of websites includes large collections of HTML, JavaScript, and CSS.
Unfortunately, it’s easy for code to become cluttered. Some files are redundant. Others come from poorly made plugins or themes. You may even find that many of your website’s old files just stay saved in your file directory instead of getting deleted, but there’s hope!
Stop these files from slowing down your website. Get rid of them with these methods:
- Minification: Mainly code consolidation. This process reduces your CSS and JavaScript files by up to 50% by getting rid of anything unnecessary: comments, spaces, characters, and line breaks. Developer tools are available.
- Removing unnecessary scripts and plugins: I’ve seen sites with dozens of JavaScript files that only use around five of them. You would be surprised how they stack up. The best way to get rid of unnecessary scripts is to remove non-essential plugins.
- Cleaning up render-blocking resources: A render-blocking resource is either a JavaScript or CSS file that only allows the entire page to load once it has completely loaded itself. So, a page will remain stagnant until these nuisance files come up, and don’t forget aboutlazy loading.
- Minimizing HTTP requests: Every image, CSS file, and JavaScript file requires a new request. That slows your website. Minimize requests by: using SVGs or icon fonts instead of several image files; going with CSS sprites for all small icons; combining CSS files when possible; putting CSS in HTML files when possible.
It’s good to be aware of your options, but I wouldn’t recommend cleaning up render-blocking resources yourself, unless you have a technical background. Ideally, you go with the WP Rocket plugin, which does most of the work.
Otherwise, you must either inline critical CSS or defer some non-essential JavaScript to load later. As for minification, my favorite tools for that include WP Rocket, Minifier.org, and Toptal.
Are There Times You Should Actually Upgrade Your Hosting Account?
Yes. Sometimes simply adding a caching plugin or deferring render-blocking resources isn’t enough to solve your speed issues. Sometimes you truly should upgrade your hosting plan. As features are continually being optimized and updated, the simplest option may be to upgrade!
Here’s the key signs it may be time to upgrade:
- Your server is exhausted: RAM and CPU are indicators. If you’re maxing out your processing power, you need a new plan.
- You experience bottlenecks with your database: Slow performance with timeouts, connections, and queries are signs. You may need stronger databasing resources if queries take more than three seconds. This often happens after your database grows to millions of rows.
- Regular downtime: If your server is struggling with normal traffic it may be time, especially if your website goes down during traffic increases.
Hot tip: During the upgrade process, seek out dedicated CPU cores, SSD storage, and a minimum of two gigabytes of RAM. You should also ensure your host supports the most recent version of PHP and has built-in CDN and caching options.
When It’s All Said and Done: Be Sure to Measure Your Results
Remember Marie from the beginning? She didn’t need to pay $200 per month for a new hosting plan. All she needed was a caching plugin, image optimization, and a better CDN. All these optimizations add up to fast speeds. As a result, we improved her page load times by up to 75%. And she saved money.
Look at your CPU and RAM. Save the results to compare. I encourage you to use numbers when making decisions. Are they maxed out? If so, you may need to upgrade your plan to meet your hosting needs.
If not, utilizing these optimization techniques on your website may do the trick, instead of paying more than you need.
After optimizing, you still want to compare the numbers. Use tools like GTmetrix, Pingdom Tools, and Google PageSpeed Insights to see if your efforts improved metrics like Total Page Size, First Contentful Paint, and Time To First Byte. If you see improvement, you’re on your way to a faster website, all without spending more on an upgraded plan.




