A slow website quietly costs you money. Visitors tap away before your hero image appears, paid campaigns get pricier and Google is less inclined to rank you. Many businesses assume the only cure is a rebuild. In our experience, most sluggish sites suffer from the same few problems, and fixing them takes days rather than months. Here are the six we tackle first.
Measure before you fix anything
Run your homepage and a key landing page through Google PageSpeed Insights, and test on a real mid-range Android phone over mobile data. Focus on the three Core Web Vitals: Largest Contentful Paint under 2.5 seconds, Interaction to Next Paint under 200 milliseconds and Cumulative Layout Shift under 0.1. Write the numbers down so you can see what each fix actually achieved.
Check a few templates rather than only the homepage, because a blog post, a product page and a contact page often have very different problems. Where it is available, look at the field data in PageSpeed Insights, which reflects real visitors’ experience over the past month, rather than relying only on the lab test, which simulates a single visit.
The six fixes, in the order we try them
1. Shrink and resize your images
Oversized images are the most common culprit we find. A 4,000-pixel photo straight from a camera or stock site can weigh several megabytes, yet it displays at a fraction of that width. Resize images to the largest size they actually appear, convert them to WebP or AVIF, and use responsive srcset attributes so phones download smaller versions than desktops do.
If your site runs on WordPress or Shopify, plugins and built-in tools can convert existing images automatically, so nobody needs to re-upload hundreds of files by hand. Set a simple rule for your content team as well: no image over roughly 200 KB without a good reason, and always resize before uploading.
2. Lazy-load, but not your hero
Images and videos below the fold should load only as visitors scroll towards them, which modern browsers support with a simple loading attribute. The exception is the main hero image: lazy-loading it delays your Largest Contentful Paint. Load it straight away, give it a high fetch priority and set fixed dimensions so the layout does not jump around as it arrives.
3. Cut the third-party scripts
Chat widgets, heatmaps, several ad pixels, a cookie banner and an old A/B testing tool can easily outweigh your own code. Open Google Tag Manager and list every tag with an owner and a purpose. Remove anything nobody can justify, delay non-essential scripts until after the page loads and replace heavy embeds, such as YouTube players, with a lightweight preview that loads on click.
Every script on your page is a guest. Make sure each one was actually invited.
4. Tame your web fonts
Bilingual sites often load two or three font families in several weights each, and Arabic font files are noticeably larger than Latin ones. Limit yourself to the weights you really use, host fonts on your own domain, subset them to the characters you need and use font-display: swap so text appears immediately in a fallback font instead of staying invisible.
5. Turn on caching and a CDN
A content delivery network stores copies of your files close to visitors. Cloudflare and Amazon CloudFront both have edge locations in the Gulf, so a customer in Dubai or Riyadh no longer waits for files to travel from a server in Europe or the United States. Combine this with sensible browser caching headers and a page cache, and returning visitors will barely touch your server.
6. Fix slow server responses
If the server takes more than about 600 milliseconds to send the first byte, no front-end trick will save you. Cheap shared hosting, an outdated PHP version and a database bloated with years of revisions and spam comments are the usual causes. Moving to managed hosting in a nearby region, upgrading PHP and cleaning the database are routine jobs that often pay off dramatically.
On WordPress, a caching plugin such as WP Rocket, or the caching built into your managed host, makes a big difference to server response, because pages are served from a stored copy instead of being rebuilt for every visitor. Just make sure only one caching layer is in charge, as two competing plugins can cause odd, hard-to-trace problems.
When quick fixes are not enough
Sometimes the problem is structural. A heavy page builder that outputs thousands of nested elements, a theme loading every script on every page, or a custom site built on an abandoned framework will only improve so far. If you have worked through all six fixes and your mobile scores are still poor, that is a strong sign a leaner rebuild will be cheaper than continued patching.
- Mobile Largest Contentful Paint stays above four seconds after optimisation.
- Every new feature makes the site noticeably slower again.
- Your developers are afraid to update the theme or plugins.
The bottom line
Measure first, then work through images, lazy-loading, third-party scripts, fonts, caching and hosting in that order. Most sites become dramatically faster within a week or two of focused work. Re-test after each change, keep a short performance budget for new content and check your Core Web Vitals every month, so the site stays quick long after the fixes go live.
