To make your website fast for South African visitors, fix the things that cost the most time first: host close to your audience, shrink your images, cache aggressively and cut unnecessary JavaScript. Most slow small-business sites are slow because of a few oversized images, too many plugins and a server on the wrong continent, not because of anything exotic.
This guide shows you how to measure your speed, which fixes matter most, and how to prioritise them.
Measure first - Core Web Vitals
Google's Core Web Vitals are the standard way to describe how fast a page feels. They are also used as a signal in search ranking. The three metrics:
| Metric | What it measures | "Good" threshold |
|---|---|---|
| LCP (Largest Contentful Paint) | How long until the main content appears | 2.5 seconds or less |
| INP (Interaction to Next Paint) | How quickly the page responds to taps and clicks | 200 milliseconds or less |
| CLS (Cumulative Layout Shift) | How much the layout jumps around while loading | 0.1 or less |
Free tools to measure them:
- PageSpeed Insights shows both lab results and real-user data (where Google has enough visitors to report on).
- Chrome DevTools Lighthouse for local testing. The Network tab lets you throttle to a slower connection, which is useful for simulating mobile data.
- Google Search Console reports Core Web Vitals across your whole site over time.
Test on a mobile profile. Many South African visitors browse on mid-range phones over mobile data, and that experience is what you should optimise for. The MDN performance guides are a good technical reference.
1. Host close to your visitors
Every request travels from the visitor's device to your server and back. If your audience is in South Africa and your server is in Europe or the US, each round trip crosses an undersea cable. A page needs many round trips (DNS lookup, TLS handshake, HTML, then CSS, scripts and images), so distance adds up, especially on the first visit.
Hosting in South Africa shortens every one of those trips for local visitors. A content delivery network (CDN) can also help by caching static files closer to users. For more on the trade-offs, see hosting in South Africa vs overseas.
2. Fix your images
Images are usually the heaviest part of a page and the most common cause of a slow LCP.
- Resize images to the size they're displayed at. A 4000-pixel photo from a phone does not belong in a 600-pixel slot.
- Use modern formats. WebP and AVIF are much smaller than JPEG and PNG for the same visual quality, and all modern browsers support them.
- Serve responsive sizes with
srcset, so phones download smaller files:
<img
src="/img/team-800.webp"
srcset="/img/team-400.webp 400w, /img/team-800.webp 800w, /img/team-1600.webp 1600w"
sizes="(max-width: 600px) 100vw, 800px"
width="800" height="533"
alt="Our team at the Johannesburg office"
loading="lazy">
- Lazy-load images below the fold with
loading="lazy", but not your hero image, which should load immediately. - Always set width and height so the browser reserves space and the layout doesn't jump (this fixes a lot of CLS).
On WordPress, an image optimisation plugin can handle conversion and resizing. In Next.js, the built-in <Image> component does most of this for you.
3. Cache everything you can
Caching avoids doing the same work twice.
Browser caching
Tell browsers to keep static files (CSS, JS, images, fonts) for a long time. If your file names include a version hash, you can cache them for a year:
Cache-Control: public, max-age=31536000, immutable
Page caching
For WordPress and other PHP sites, a page cache stores the finished HTML so the server doesn't rebuild it with PHP and database queries on every visit. This is often the single biggest server-side improvement for a content site.
Application caching
Frameworks such as Next.js can render pages at build time or cache them and regenerate in the background, so most visitors get a ready-made page.
4. Cut the JavaScript and plugins
Heavy JavaScript hurts INP on mid-range phones, because the phone's processor must download, parse and run it all.
- Remove plugins and scripts you no longer use. Each chat widget, slider and tracking tag has a cost.
- Load third-party scripts (analytics, chat, ads) with
deferorasync, or after the page is interactive. - Avoid page builders that add large amounts of code to every page if a simpler theme will do.
- Audit with the Coverage panel in Chrome DevTools to see how much loaded code is actually used.
5. Get the server basics right
- Use a current PHP or Node.js version. Newer versions are typically faster and remain supported with security fixes.
- Enable compression (Gzip or Brotli) for text files. Most hosts do this by default.
- Use HTTP/2 or HTTP/3, which require HTTPS. Free SSL from Let's Encrypt makes this a given.
- Keep the database tidy. Old revisions, spam comments and expired transients slow WordPress queries.
- Choose enough resources. A site that exceeds its plan's memory will slow down or restart. On app hosting, check your memory usage before and after traffic peaks.
6. Fonts and layout stability
Web fonts can delay text rendering and cause layout shifts. Limit yourself to two font families and a few weights, self-host them where possible, and use font-display: swap so text shows immediately in a fallback font.
A priority order that works
If you only have an afternoon, do these in order:
- Run PageSpeed Insights on your home page and top landing page.
- Compress and resize the hero image and any images over a few hundred kilobytes.
- Enable page caching (WordPress) or confirm static rendering (apps).
- Remove unused plugins and third-party scripts.
- Add width and height to images to fix layout shifts.
- Re-test and compare.
If your server response time is still slow after all that, it's time to look at your hosting.
Frequently asked questions
Does server location really affect speed in South Africa?
Yes. Distance adds time to every round trip between a visitor and the server, and a page load involves many of them. For a mainly South African audience, a local server or a CDN with local presence gives visitors a faster first load.
Does website speed affect SEO?
Google uses Core Web Vitals as part of its page experience signals. Speed alone won't outrank better content, but a slow site loses visitors before they read anything, which hurts conversions regardless of rankings.
Why is my site fast on my computer but slow for customers?
Your computer probably has a fast connection, a powerful processor and a warm cache. Customers on mid-range phones and mobile data experience the full weight of your images and scripts. Test with a throttled mobile profile to see what they see.
Will a CDN fix a slow website?
A CDN speeds up delivery of static files and can reduce distance to visitors, but it won't fix a slow database, heavy JavaScript or oversized images. Treat it as one layer, not the whole solution.
How often should I check my website speed?
Check after any significant change (new theme, plugins, redesign) and review Search Console's Core Web Vitals report monthly.
Want a fast base to build on? NewHost hosts on servers in Johannesburg, with classic web hosting for WordPress and PHP sites and NVMe-backed Next.js hosting for apps. Compare options on our pricing page, and read about WordPress hosting in South Africa if that's your platform.