From 9 Seconds to 1.3 Seconds: How a Sandton Accounting Firm Fixed Their WordPress Site
A Sandton accounting practice's WordPress site loaded in 9.1 seconds — losing 74% of visitors. After migrating to HostWP, load time dropped to 1.3 seconds. Here's the full story.
Key Takeaways
- A Sandton accounting practice's WordPress site was loading in 9.1 seconds — causing 74% of visitors to abandon before the page loaded.
- Root causes: no caching, 61 active plugins, Revolution Slider on every page, 14.2MB of uncompressed images, and a UK server 9,100km from their clients.
- After migrating to HostWP Managed WordPress: load time dropped to 1.3 seconds, mobile PageSpeed rose from 14 to 91, and contact form submissions increased 34% within 60 days.
When Asif from our infrastructure team flagged this site during a competitor analysis sweep, the numbers were extraordinary. "I ran it through GTmetrix out of curiosity," he told me. "It scored an F. Load time of 9.1 seconds on desktop. On mobile it timed out." The site belonged to a well-established accounting and tax advisory practice in Sandton, Johannesburg — in business 11 years, strong local reputation, R45,000 invested in a professional website redesign 18 months prior. Their developer had delivered a visually polished site. What was underneath it was a performance disaster.
In This Article
The Initial Audit Results
Zahid ran a full baseline audit before touching anything. Here's what we found:
| Metric | Score | Good Threshold |
|---|---|---|
| GTmetrix Performance Score | F (23%) | A (90%+) |
| PageSpeed Mobile | 14/100 | 90+ |
| PageSpeed Desktop | 41/100 | 90+ |
| Time to First Byte (TTFB) | 2,340ms | Under 200ms |
| Largest Contentful Paint | 8.1s | Under 2.5s |
| Total Blocking Time | 4,200ms | Under 150ms |
| Total Page Size | 14.2MB | Under 2MB |
| HTTP Requests | 184 | Under 50 |
That 14.2MB page size included a single hero image at 4.1MB — uploaded directly from a DSLR camera. The TTFB of 2,340ms told us server-side issues were primary: hosting infrastructure and the complete absence of caching.
What Was Causing the 9-Second Load Time
UK Server, Johannesburg Clients
Faiq traced the server to Frankfurt, Germany — 9,100km from Sandton. Every request from a Johannesburg visitor made a round trip to Europe. At ~180ms latency per request and 184 HTTP requests, network travel alone was adding 2.5–3 seconds before the server responded.
No Caching
No caching plugin was active. Every page view triggered a full PHP execution cycle — WordPress bootstrapping, 47 database queries, template assembly, and all plugin hooks. On their resource-constrained shared plan, this was taking 2,100ms. Over 2 seconds just to generate the HTML, before a single asset loaded.
Revolution Slider on Every Page
The homepage used Revolution Slider — a plugin that loads its entire JavaScript and CSS library on every page, even pages with no slider. This meant 847KB of Revslider JavaScript was loading on the contact page, the services page, the team page.
Zahid, Senior WordPress Engineer at HostWP: "Revslider is the plugin we remove most often during audits. It was the right tool in 2015. On a South African site in 2025, it's deadweight — loading almost 1MB of JavaScript on pages where there's no slider element in sight. We rebuild the functionality using LiteSpeed-native solutions in under two hours, and the JavaScript savings alone are significant."
61 Active Plugins
Faiq's plugin audit found: 14 inactive but installed, 8 duplicating functionality of other plugins, 6 loading scripts site-wide rather than only on relevant pages, and 3 security plugins running simultaneously creating conflicts. Total JavaScript payload from plugins: 3.1MB, none deferred or minified.
14.2MB of Unoptimised Images
Every image was served at original uploaded format — JPEG and PNG, uncompressed, at full desktop resolution regardless of device. Hero banner: 4.1MB at 5400×3600px, displayed on a 1920px screen. Team photos: 6 images averaging 1.8MB each, displayed at 200×200px. No WebP, no srcset, no lazy loading.
Is your professional services website costing you clients? Get a free diagnostic from our team.
Request a free WordPress performance audit →The Migration Plan
Zahid drew up the plan. We agreed on a Saturday night window to minimise business disruption.
- Friday: Full backup. Staging environment set up on HostWP Johannesburg infrastructure. Plugin audit completed — 14 removed, 8 consolidated. Revslider replaced with LiteSpeed-native solution (2 hours). All images processed through Imagify — WebP converted, resized to display dimensions. Staging TTFB: 147ms.
- Saturday 11pm: Database migrated. Files migrated. SSL re-issued with HSTS. LiteSpeed Cache configured (page cache, Redis object cache, browser cache). Cloudflare CDN activated. DNS pointed to HostWP.
- Sunday morning: All 47 pages tested. 4 contact forms tested. WooCommerce CPD course checkout tested. Core Web Vitals re-run. SSL scan confirmed clean.
Total migration time: 18 hours. Zero downtime on the live site.
Before vs. After Results
Three days after migration, Zahid re-ran the full audit suite:
| Metric | Before | After | Change |
|---|---|---|---|
| GTmetrix Score | F (23%) | A (96%) | +73 points |
| PageSpeed Mobile | 14/100 | 91/100 | +77 points |
| PageSpeed Desktop | 41/100 | 98/100 | +57 points |
| TTFB | 2,340ms | 147ms | −94% |
| Largest Contentful Paint | 8.1s | 1.1s | −86% |
| Total Blocking Time | 4,200ms | 82ms | −98% |
| Total Page Size | 14.2MB | 1.8MB | −87% |
| HTTP Requests | 184 | 41 | −78% |
| Load Time | 9.1s | 1.3s | −86% |
Every Core Web Vital moved from Fail to Good.
Business Impact at 60 Days
Sixty days post-migration, Rabia checked in with the firm's practice manager. Organic sessions: +22%. Contact form submissions: +34%. Bounce rate: down from 78% to 41%. Mobile sessions — previously near-zero engagement — now matching desktop session durations.
After adding LocalBusiness and FAQPage schema, the practice began appearing in the Sandton "3-pack" local results for "accountant Sandton" and "tax advisor Johannesburg north."
Their monthly hosting cost changed from R480/month (UK shared hosting) to R599/month (HostWP Managed WordPress, Johannesburg). The difference: R119/month. The revenue impact: measured in tens of thousands of rands per month from the increase in qualified enquiries. View our WordPress hosting plans →
Frequently Asked Questions
How long does a WordPress migration to HostWP take?
Most migrations complete within 12–24 hours. Our team handles everything: files, database, DNS, SSL reconfiguration. We do all migration work on a staging environment first, so your live site stays online throughout the process. DNS is only flipped once we've confirmed everything works perfectly on staging. Most clients experience zero downtime.
Can you fix a slow WordPress site without changing hosting?
Some improvements — image optimisation, plugin cleanup, adding caching — can be made on any host. However, the server-level optimisations that produce the biggest gains (LiteSpeed Cache, Redis Object Cache, Johannesburg server location, Cloudflare CDN) are only available on infrastructure that supports them. If your TTFB is over 800ms, the bottleneck is almost always the server, not the WordPress installation.
Is a 9-second load time unusual for South African business sites?
Unfortunately, no. Based on our audits of SA business websites, the average load time for small business WordPress sites is between 5–9 seconds on mobile. The root causes are consistent: overseas hosting adding 2–4 seconds of network latency, no caching adding 1–2 seconds of server processing, and unoptimised images adding 3–6 seconds of download time. These three issues alone account for 80–90% of the load time on most SA sites we audit.
What happens to my existing plugins and theme during migration?
We migrate everything as-is initially. During the onboarding audit, we identify which plugins can be removed or consolidated — nothing is removed without your approval. Your theme, content, and URL structure remain identical. The changes are all infrastructure and technical: hosting environment, caching configuration, image optimisation, and schema markup.
How quickly do Google rankings improve after fixing site speed?
Google typically recrawls and re-evaluates Core Web Vitals within 2–4 weeks of significant improvements. In this case study, local pack ranking improvements were visible within 3 weeks. The full organic ranking benefit typically materialises over 4–8 weeks. The addition of LocalBusiness and FAQPage schema also contributes to visibility improvements, particularly in local search results.