Restaurant WordPress Website Slow Loading: Johannesburg Case Study

By Rabia • •11 min read

A Johannesburg restaurant's website loaded in 9 seconds on mobile, costing bookings. See how we diagnosed caching misconfigurations, oversized images, and database bloat—and restored performance to 1.8 seconds. Full breakdown inside.

Key Takeaways

  • A 9-second mobile load time at a Johannesburg fine-dining restaurant was caused by missing LiteSpeed caching, uncompressed images, and database queries—not hosting infrastructure.
  • After implementing Redis object caching, image optimization (WebP), and query tuning, the site loaded in 1.8 seconds, increasing mobile bookings by 34% within 4 weeks.
  • South African restaurants competing with global delivery platforms need sub-2-second load times to retain direct bookings—every 100ms delay costs ~2% of conversions.

When Thembi Naidoo contacted HostWP in March this year, her Johannesburg restaurant's WordPress site was loading in 9 seconds on mobile. Customers browsing menus on their phones during their commute were abandoning the site before the images even appeared. She was losing direct bookings to faster competitors and had no idea why her hosting provider—a generic cloud platform—couldn't help her.

What we found was textbook: no caching plugin active, hero images served at full 4K resolution to mobile users on 4G networks, and database queries running on every page load without optimization. The infrastructure itself wasn't the problem. The WordPress site configuration was.

This is the case study that changed how we audit restaurant websites across South Africa.

The Problem: 9 Seconds and Losing Bookings

Thembi runs a 120-seat upmarket restaurant in Sandton, Johannesburg, specializing in contemporary African cuisine. Her website was built by a local agency two years ago on WordPress—a solid choice—but had never been optimized for mobile performance. The site looked beautiful on desktop and had decent SEO rankings for local keywords like "fine dining Johannesburg" and "African restaurant Sandton."

The problem appeared the moment customers arrived on mobile. On 4G networks (the median connection speed across South Africa is around 18 Mbps for mobile, according to Ookla data), the homepage took 9.3 seconds to fully load. By the time the menu images appeared, 87% of visitors had already left.

Thembi's booking engine—a customized form linking directly to her reservation system—was below the fold on mobile. Most visitors never reached it. Her average weekly bookings dropped from 45 direct online reservations to 18 over six months. She was being undercut by competitors with faster sites and by third-party delivery platforms that offered seamless browsing experiences.

Rabia, Customer Success Manager at HostWP: "When Thembi first came to us, her instinct was to blame the hosting provider. But we see this pattern constantly with South African restaurants: the hosting is usually fine, but the WordPress configuration—caching, image optimization, and database queries—is causing the bottleneck. She was on a server with enough resources, but the site was written in a way that didn't leverage them."

Thembi had moved to a managed WordPress host recommended by her agency, but it was generic and didn't include the performance tuning needed for a media-heavy site like a restaurant. She was paying R799/month for hosting that wasn't solving her real problem.

How We Diagnosed the Issue

I conducted a free audit of Thembi's site using Google Lighthouse, WebPageTest, and manual inspection. The results were clear:

  • No caching plugin active. Every visitor request hit the database and regenerated the entire page. On a restaurant site with 200–300 daily visitors, this created unnecessary server load.
  • Hero images served at 3840×2560px (4K resolution) to all devices. A mobile visitor on 4G was downloading 2.8 MB images for a 375px-wide phone screen. The same images were never being converted to WebP, a 30% smaller format.
  • Database queries not optimized. The WordPress menu custom post type was running 12 queries per page load to fetch meal details, prices, and allergen information. This could have been reduced to 2–3 with proper caching and query tuning.
  • No Content Delivery Network (CDN) in place. Thembi's hosting provider didn't include a CDN. All assets were being served from the origin server in an undisclosed data centre, adding latency for visitors connecting from Cape Town or Durban.
  • Unused plugins adding bloat. The site had 11 plugins installed, but only 5 were actively used. Plugins like Yoast SEO and MonsterInsights were running on every page load even when not needed in the admin, adding 0.3 seconds of overhead.

The hosting infrastructure itself was adequate—a 2-core server with 4GB RAM. The problem was that the WordPress configuration wasn't using those resources efficiently. This is a pattern we've seen in over 60% of restaurant sites we've audited across South Africa since 2021.

The Technical Fix: Step by Step

Step 1: Enable LiteSpeed Caching + Redis Object Cache

Thembi migrated to HostWP's managed WordPress hosting in Johannesburg. This gave her immediate access to LiteSpeed caching (standard on all our plans) and Redis object caching—two technologies that transformed her load time. LiteSpeed caches the entire rendered HTML page, while Redis stores database queries and expensive computations in memory, making repeat requests instant.

We configured LiteSpeed to cache the homepage and menu pages for 24 hours, with automatic purging whenever Thembi updated menu items through the admin. Redis cached the custom post type queries, reducing database hits from 12 per page to 2.

Result: First page load went from 9.3 seconds to 4.1 seconds within minutes of migration.

Step 2: Image Optimization and Responsive Sizing

Next, I worked with Thembi to implement responsive image sizing. Using the Smush plugin (free tier), we:

  • Reduced hero image resolution from 3840×2560px to 1920×1280px for desktop and 768×512px for mobile.
  • Enabled automatic WebP conversion, reducing file sizes by 28–35%.
  • Set up lazy loading for below-the-fold menu images, so they only loaded when users scrolled to them.

This single change reduced the homepage payload from 4.2 MB to 1.1 MB on mobile. Thembi's team also re-exported menu photography in JPG rather than PNG, saving another 300 KB.

Step 3: Database Query Optimization

I reviewed Thembi's custom menu plugin and identified queries that were running N+1 style—fetching meal details one at a time instead of in bulk. Working with her developer, we rewrote the query to fetch all meals and allergen data in a single database call, then cached the result in Redis for 12 hours.

This reduced page generation time from 2.1 seconds to 0.4 seconds on the first uncached page load.

Step 4: Leverage Cloudflare CDN

HostWP includes Cloudflare CDN as standard on all plans (from R399/month). We enabled it for Thembi's site, which automatically cached and served images, CSS, and JavaScript from edge servers close to her visitors. A customer in Cape Town now fetches assets from Cloudflare's Cape Town edge node instead of from Johannesburg, reducing latency by 40 ms.

Step 5: Audit and Remove Unnecessary Plugins

We disabled and removed 6 unused plugins, keeping only: Smush (images), WP Super Cache (backup caching), Akismet (spam), and her booking plugin. This reduced the PHP execution time by 0.2 seconds on every page load.

Is your restaurant WordPress site costing you bookings? Our SA team diagnoses performance issues and implements fixes tailored to South Africa's infrastructure and load-shedding realities.

Get a free WordPress audit →

Results: 1.8 Seconds and 34% More Bookings

After these changes (implemented over 8 days), Thembi's homepage loaded in 1.8 seconds on 4G mobile networks. Desktop remained fast at 0.9 seconds. By week 2, mobile bookings had climbed 12%. By week 4, they were up 34% year-on-year.

MetricBeforeAfterImprovement
Mobile Load Time (4G)9.3 seconds1.8 seconds80.6% faster
Desktop Load Time3.2 seconds0.9 seconds71.9% faster
Page Payload (Mobile)4.2 MB1.1 MB73.8% smaller
Weekly Direct Bookings1824+33%
Bounce Rate (Mobile)68%31%54% lower
Hosting Cost (Monthly)R799R599R200 savings

Thembi's conversion rate (visitors to booking form completion) jumped from 1.2% to 1.8% by the end of month one. This doesn't sound huge, but on 250 daily mobile visitors, that's an extra 1.5 bookings per day—roughly 45 additional covers per month worth approximately R18,000 in additional revenue. Her ROI on switching to HostWP's optimized hosting was achieved in just over two weeks.

She also cut her hosting bill by R200/month because she no longer needed the oversized cloud server to handle the inefficient WordPress configuration. HostWP's Johannesburg infrastructure and LiteSpeed caching handled her traffic with a mid-tier plan.

Why This Matters for SA Restaurants

South African restaurants operate in a competitive landscape where delivery platforms like UberEats, Mr. Delivery, and Takealot Food are a click away. A customer deciding whether to order directly from your website or use a third-party platform will choose based on speed, ease of use, and trust. A 9-second website load on mobile breaks that trust in seconds.

Load shedding adds another layer of complexity. When grid outages hit Johannesburg or Pretoria, restaurants often run on backup power or generators. Internet connectivity becomes unstable. A site optimized for low-latency, low-bandwidth performance (like Thembi's after our fixes) still functions acceptably even when connectivity is degraded. A bloated, unoptimized site becomes unusable.

Thembi's experience is also a lesson in POPIA compliance—South Africa's Protection of Personal Information Act. By reducing page load times and optimizing database queries, we reduced the time her booking form stayed open and processing—meaning personal data (names, phone numbers, dates) spent less time in transit or in memory. This is good data practice alongside good performance.

Rabia, Customer Success Manager at HostWP: "At HostWP, we've migrated over 500 South African WordPress sites since 2021, and restaurants represent about 18% of our client base. The pattern is consistent: most performance issues aren't infrastructure problems—they're WordPress configuration problems. A restaurant in Cape Town running on the same unoptimized setup as Thembi could gain 30–40% more bookings just by tuning their caching and images. That's business revenue, not just vanity metrics."

Lessons for Your WordPress Restaurant Site

If you run a restaurant website in South Africa, here's what to audit today:

1. Check your real-world mobile load time. Don't rely on desktop metrics. Use Google Lighthouse or WebPageTest to test on actual 4G networks. If your site takes longer than 3 seconds on mobile, you're losing bookings.

2. Audit your images. Export your hero images at web-friendly resolutions (1920×1280px max for desktop, 768×512px for mobile). Enable WebP conversion. Use lazy loading for below-the-fold content. This alone can cut your page payload by 60–70%.

3. Enable caching. If you're on shared hosting or a generic WordPress host, you may not have LiteSpeed caching available. Switch to a managed provider like HostWP that includes caching as standard. This is the single biggest performance lever for restaurants.

4. Optimize your database queries. If you're using custom plugins for menus, specials, or reservations, work with your developer to ensure they're not running N+1 queries. Cache the results in Redis for 12–24 hours.

5. Use a CDN. Cloudflare is included with most managed WordPress hosts. Enable it. It's literally a 2-minute setup and reduces latency for visitors across South Africa by 30–50%.

6. Remove plugin bloat. Audit your plugin list monthly. Every plugin adds overhead. Keep only what you actively use.

Thembi didn't need a new website. She didn't need to move to a different platform. She needed the right hosting partner and someone who understood WordPress performance at a technical level. After the fix, her site became a competitive advantage rather than a liability.

Frequently Asked Questions

  • How much faster will my restaurant website load if I migrate to HostWP? That depends on your current setup. If you're on shared hosting or a generic cloud provider with no caching, you'll typically see 50–80% faster load times within 48 hours, as in Thembi's case. Managed WordPress hosting with LiteSpeed caching is a step-change improvement. We include daily backups, SSL certificates, and 24/7 South African support, so there's no risk in trying it.
  • Why does my WordPress restaurant site load slowly if my hosting provider has plenty of server resources? Resources alone don't guarantee speed. WordPress configuration matters more: if your caching plugin isn't active, your images aren't optimized, and your database queries aren't tuned, a powerful server will still feel slow. It's like having a powerful car engine but driving with the handbrake on. HostWP's hosting forces best practices like LiteSpeed and Redis, so you get performance out of the box.
  • How long does it take to fix a slow restaurant website? Basic fixes—enabling caching, optimizing images, and removing unused plugins—typically take 1–2 days and require minimal downtime. Database query tuning or custom plugin development can take 3–5 days if needed. Thembi's full fix took 8 days, but her site was live and serving customers throughout (we used staging for testing).
  • Will load shedding affect my website's performance? Load shedding affects your internet connection, not your website directly. However, a slow, unoptimized site will perform terribly on degraded connections. Thembi's optimized site (1.8 MB page payload) still functions during connectivity dips, while her old 4.2 MB site would have timed out. Optimization is your hedge against SA's power crisis.
  • Does moving to faster hosting void POPIA compliance? No—in fact, it helps. POPIA requires you to protect personal information in transit and at rest. A faster site with optimized database queries means customer data (names, phone numbers, email addresses) spends less time in memory and transit. Proper caching and database tuning are security best practices alongside performance improvements. We audit all customer sites for POPIA readiness during onboarding.

Sources