A slow website is one of the most expensive problems a small business can have, and most owners don't even know it's costing them. You can't see the people who landed on your site, waited two seconds, and left before reading a word. But they're there. Research consistently puts mobile abandonment rates above 50% for pages that take longer than three seconds to load. And because Google uses page speed as a ranking signal, a slow site doesn't just lose visitors -- it loses its position in search results too.
The good news is that the biggest speed problems are almost always caused by a handful of fixable things, not by some deep technical failure. Here are six of them, starting with the one that will have the most immediate impact.
1. Compress your images before uploading them
Images are responsible for more slow websites than any other single cause. A photo taken on a modern phone is typically 4 to 8 megabytes. A well-optimized image for the web should be under 200 kilobytes -- sometimes under 100. That's a 20x to 40x difference in file size, and it has an enormous impact on how fast your pages load.
The fix is straightforward: compress every image before putting it on your site. Squoosh is free, works in your browser, and gives you a side-by-side quality comparison so you can see exactly what you're getting before you save. For most website images, WebP format at around 75% quality hits the sweet spot between file size and visual quality. If you're on WordPress, a plugin like ShortPixel can compress images automatically as you upload them.
2. Choose the right image dimensions for the context
Compression alone isn't enough if the image is also sized wrong. Uploading a 4000px-wide photo and then using CSS to display it at 600px wide means the browser downloads four times more pixels than it will ever show. That wasted data slows down your page and drains your visitors' mobile data for no reason.
Before uploading, resize the image to roughly the dimensions it will actually display at. A hero background image might need to be 1400px wide. A team headshot used in a card layout might only need 400px. A thumbnail might need 200px. Getting these numbers roughly right, combined with compression, will cut your image payload dramatically.
3. Remove plugins and scripts you're not using
Every plugin on a WordPress site, and every third-party script on any site, adds load time. Some add a little. Some add a lot. A chat widget, a social share plugin, an outdated contact form plugin that hasn't been updated in two years -- each one is loading scripts and stylesheets that the browser has to download before your page can fully appear.
Go through your active plugins and ask one question for each: is this actually delivering value right now? If the answer is no, deactivate it. For non-WordPress sites, look at your page source for third-party scripts (Google Tag Manager tags firing on every page, old analytics snippets, social embeds) and remove anything you're not actively using. Even one or two removals can make a meaningful difference.
4. Check your hosting plan
Budget shared hosting is built to pack thousands of websites onto a single server. When traffic spikes on any of them, everyone on that server slows down. If your site is on a plan that costs a few dollars a month from a discount host, the server itself may be your bottleneck -- no amount of image compression will fix a server that takes two seconds just to respond to a request before it sends any content.
A mid-tier plan from a reputable host (SiteGround, Kinsta, WP Engine, or Cloudflare Pages for static sites) typically costs between $20 and $40 per month and makes a noticeable difference in raw server response time. If your PageSpeed Insights score shows a high "Time to First Byte," your server is the problem.
5. Enable browser caching and a CDN if your platform supports it
Browser caching tells a visitor's browser to save a copy of your site's files locally after the first visit, so repeat visits load almost instantly. A content delivery network (CDN) stores copies of your site's assets on servers around the world, so visitors load files from a server close to them rather than wherever your host is located.
On WordPress, a plugin like WP Rocket or even the free W3 Total Cache handles both. If your site is hosted on a modern platform like Netlify, Vercel, or Cloudflare Pages, CDN caching is built in and automatic. On older or custom setups you may need to add a few settings, but the payoff in load time is significant, especially for visitors who come back to your site more than once.
6. Check your score and focus on the mobile number
Go to PageSpeed Insights and run your site. You'll get a score from 0 to 100 for both desktop and mobile. Most people are surprised by how much lower the mobile score is. Desktop scores above 85 are common even for poorly optimized sites because desktops have fast CPUs and wired connections. Mobile scores are harder to game, and they're the ones that actually matter for your customers and for Google's ranking algorithm.
Under the score, you'll see a breakdown of specific issues. Ignore the ones marked "Passed" and focus on the ones in the "Opportunities" section. They're listed in order of estimated time savings. Fix the biggest opportunities first and retest. You don't need a perfect score: getting from a 35 to a 65 will have a more meaningful real-world impact than going from an 85 to a 100.
The fixes above work well for sites built on platforms like WordPress, Squarespace, or Wix. But if your site is slow because it was built on an outdated platform, uses an overly complex theme, or was assembled without performance in mind from the start, there's a ceiling to what you can fix without rebuilding. A site built clean from the ground up will always outperform a patched-together one.
How to know if the fixes are working
Run PageSpeed Insights before and after each change. Keep a simple log: what you changed, what the score was before, what it is after. This lets you see which fixes actually moved the needle on your specific site rather than guessing. Not every fix makes the same difference on every site -- compression matters most on image-heavy sites, hosting matters most on sites with slow server response times, and plugin removal matters most on WordPress sites with a long list of active plugins.
If you've worked through the list and your mobile score is still under 50, the issue is likely architectural: a page builder generating bloated code, a theme loading dozens of stylesheets, or a hosting environment that can't deliver content quickly regardless of what else you do. At that point, the most effective fix is usually a rebuild rather than more patching. See what a speed-focused build looks like or read what separates a well-built site from one that just exists.
