Every second your website takes to load costs you customers. Research from Google shows that 53% of mobile users abandon a page if it takes longer than 3 seconds to load. On South African mobile data, where latency runs higher and connections are less reliable, this problem bites even harder.
The good news is that most slow websites share the same fixable problems. In this guide, we cover the 8 most common speed killers and exactly how to fix each one, often without needing a developer at all.
Why Website Speed Matters More Than You Think
Speed isn't just a user experience issue. It directly affects your revenue and your Google rankings:
- Google ranking factor: Since 2021, Core Web Vitals have been an official ranking signal. A slow site gets actively penalised in search results.
- Bounce rate: A 1-second delay in page load time can cut conversions by up to 7%. A 3-second delay pushes bounce rate up by 32%.
- Mobile users: In South Africa, over 70% of traffic is mobile. Mobile users on 4G data tend to be more impatient, not less.
- Ad quality score: If you run Google Ads, page speed directly affects your Quality Score and your cost-per-click.
Test your site right now: Go to pagespeed.web.dev, enter your website URL, and run the test. A score below 50 on mobile is a serious problem. Below 70 needs attention. Above 90 is excellent.
Speed Killer 1: Unoptimised Images
Images typically make up 60 to 80% of a web page's total file size. An unoptimised image that could be 80KB often gets uploaded at 4MB instead. That's 50 times larger than it needs to be, and 50 times slower to download.
How to Fix It
- Compress before uploading: Use TinyPNG (free, online) or Squoosh (free, Google tool) to compress images before uploading to your site.
- Use WebP format: WebP images run 25 to 35% smaller than JPEGs at the same quality. Most modern browsers and CMS platforms support it.
- Resize to display size: If an image displays at 800px wide, upload it at 800 to 1200px wide, not 4000px.
- Add loading="lazy": This HTML attribute tells the browser to only load images once the user scrolls to them, which cuts the initial page load dramatically.
Expected improvement: Fixing images alone typically improves load time by 1 to 3 seconds on most sites.
Speed Killer 2: Too Many Plugins or Third-Party Scripts
Every plugin, chat widget, tracking script, and social media button adds JavaScript that has to be downloaded and run before your page becomes fully interactive. A site with 25 plugins and 10 tracking scripts can easily be loading 3 to 5MB of JavaScript before anything actually works.
How to Fix It
- Audit every plugin and script. Do you actually use it? Deactivate and delete the ones you don't.
- Replace heavy plugins with lightweight alternatives. For example, swap a full page builder for clean HTML and CSS.
- Load third-party scripts asynchronously or deferred so they don't block rendering.
- Consider removing live chat widgets if your conversion data doesn't justify them. They're often surprisingly heavy.
Speed Killer 3: No Browser Caching
Without caching, every visitor downloads your entire website from scratch on each visit, even if nothing has changed. With caching turned on, returning visitors load your site almost instantly from their local browser cache.
How to Fix It
- WordPress: Install a caching plugin like WP Rocket, W3 Total Cache, or the free LiteSpeed Cache if your host uses LiteSpeed servers.
- Static sites: Set Cache-Control headers on your server. For Apache, add this to your .htaccess; for Nginx, add to your server config.
- CDN: Using a Content Delivery Network (Cloudflare's free tier is excellent) adds automatic caching globally.
Speed Killer 4: Cheap Shared Hosting
Shared hosting means your website shares a server with hundreds or thousands of other websites. When any one of them gets a traffic spike, everyone slows down. For a South African business site, cheap shared hosting is often the single biggest speed bottleneck.
How to Fix It
- Upgrade to a VPS (Virtual Private Server) or cloud hosting. Hetzner SA, Afrihost, and Linode all offer solid SA-hosted VPS plans from R150 to R500 a month.
- Use a SA-based host if your audience is mostly local. A server in Johannesburg loads noticeably faster for SA visitors than one in the UK.
- Consider managed WordPress hosting (Kinsta, WP Engine) for larger WordPress sites.
Speed Killer 5: Render-Blocking CSS and JavaScript
When a browser hits a CSS or JavaScript file in the <head> of your page, it stops rendering everything else until that file is fully downloaded and processed. This is called "render-blocking," and it can significantly delay when users see anything on your page at all.
How to Fix It
- Add defer or async to script tags:
<script src="app.js" defer></script>. Defer waits until the HTML is parsed; async downloads while parsing continues. - Inline critical CSS: Put the CSS needed to render above-the-fold content directly in your <head> and load the rest asynchronously.
- Minify CSS and JS: Strip out whitespace and comments. WordPress plugins like Autoptimize handle this automatically.
Speed Killer 6: No Content Delivery Network (CDN)
Without a CDN, all your website's files get served from a single location. A visitor in Cape Town loading a site hosted in Johannesburg adds extra network hops. A visitor in London loading that same site adds hundreds of milliseconds of latency on top.
How to Fix It
- Cloudflare (free tier): Add Cloudflare in front of your site. It caches your static assets on servers around the world and serves them from whichever location is closest. Setup takes 15 minutes and costs nothing.
- Cloudflare also throws in HTTPS, DDoS protection, and performance analytics, all for free.
Speed Killer 7: Bloated Web Fonts
Google Fonts and custom web fonts can add 200 to 500KB to your page weight and cause a Flash of Unstyled Text (FOUT). Many sites load 4 to 6 font weights they never actually use.
How to Fix It
- Only load the font weights you actually use. Most sites only need Regular (400), Semi-Bold (600), and Bold (700).
- Add
display=swapto your Google Fonts URL so text shows up immediately in the fallback font while the custom font loads. - Use
rel="preconnect"for Google Fonts domains to establish connections early. - Consider system fonts (sans-serif, -apple-system) for body text. They load instantly and look perfectly fine on every device.
Speed Killer 8: No GZIP or Brotli Compression
Text-based files (HTML, CSS, JavaScript) compress extremely well, typically by 70 to 80%. Without server-side compression turned on, your server sends 200KB of JavaScript when it could send 40KB instead. Most hosting providers support GZIP compression but don't switch it on by default.
How to Fix It
- Ask your host to enable GZIP or Brotli compression, or add it yourself via .htaccess (Apache) or nginx.conf (Nginx).
- WordPress plugins like WP Rocket and Autoptimize handle this automatically.
- Check if it's enabled: use giftofspeed.com/gzip-test and enter your URL.
How to Diagnose Your Speed Problems
Two free tools give you everything you need:
- Google PageSpeed Insights: Shows your Core Web Vitals score, flags specific issues, and ranks fixes by impact. This is the most important tool because it's built on real Chrome user data.
- GTmetrix: A more detailed waterfall view showing exactly which files are slowing you down and by how much. Use the SA server location when testing.
Run both tests, note the top 3 recommendations, and fix those first. The biggest gains usually come in this order: images, then hosting, then caching.
Quick Wins You Can Do This Weekend
If you want to improve your speed without hiring a developer, work through these in order:
- Compress all images with TinyPNG and re-upload them
- Sign up for Cloudflare (free) and point your domain to it
- Install a caching plugin if you use WordPress
- Remove plugins or widgets you don't actually use
- Reduce Google Fonts to only the weights you use
These 5 steps alone can take a site from a PageSpeed score of 40 up to 75 or higher, without touching a single line of code.
When You Need a Developer
Some speed issues need technical intervention:
- Core Web Vitals failures (LCP, CLS, FID) that stick around after the quick wins above
- Migrating from shared to VPS hosting
- Database query optimisation (common on large WooCommerce stores)
- Rebuilding a page builder-based site with clean code
- Implementing advanced performance techniques like resource hints, service workers, or server-side caching
Our team has optimised 100+ South African websites for speed. If your PageSpeed score is below 60 on mobile, contact us for a free performance audit and we'll tell you exactly what's holding you back.