Updated 6 September 2026 · 9 min read
Why is my website so slow?
We run speed diagnoses on small-business websites all week. The sites are built on different platforms by different people, and yet the reasons they are slow repeat with boring regularity. Here they are, from most common to least, with how to confirm each one on your own site and what the fix looks like.
One thing first. When we say "slow", we mean slow on a mid-range phone on a mobile connection, because that is where most of your visitors are and that is what Google measures. A site that feels fine on your office laptop can be painful on a ₹12,000 Android on a train. Test with PageSpeed Insights on the Mobile tab, or use our free tester, which runs the same engine and translates the output into plain English.
1. Your images are too big
This is the number one cause, and it is the one most owners can fix themselves. Someone uploads a 4 MB photo straight from a phone camera, the page builder displays it at 400 pixels wide, and every visitor downloads the full 4 MB anyway.
How to confirm: in PageSpeed Insights look for "Properly size images", "Efficiently encode images" or "Serve images in next-gen formats". If the page weight is over 2 MB, images are almost certainly why.
The fix: resize to the largest size actually displayed, compress, and serve WebP or AVIF. On WordPress a plugin such as ShortPixel or Imagify does this in bulk. On Shopify the platform already converts formats, so the issue is usually oversized uploads in theme sections. Lazy-load anything below the first screen.
2. Scripts and stylesheets block the page from painting
Browsers will not draw anything until they have downloaded and parsed the CSS and the synchronous JavaScript in the head of the page. Page builders, theme frameworks and plugins each add their own files, and they all load before your visitor sees a single word.
How to confirm: "Eliminate render-blocking resources" in the report, with a list of files and the seconds each one costs.
The fix: inline the small amount of CSS needed for the first screen, load the rest asynchronously, and defer every script that is not needed for the initial render. This is fiddly by hand. Tools such as WP Rocket or Perfmatters on WordPress do a decent job. On custom sites it means changing how the build bundles CSS.
3. Your hosting is slow to respond
Time to first byte is how long the server takes to begin sending the page. On cheap shared hosting with a heavy CMS and no caching, we routinely see 1.5 to 3 seconds before anything happens at all. Nothing you do on the page can recover that time.
How to confirm: "Reduce initial server response time" in the report. Anything above 600 ms is a problem. Above 1 s and hosting is your biggest issue.
The fix: page caching first, because it turns a database-driven page into a static file and often cuts response time by 80 percent. Then a CDN such as Cloudflare so the cached page is served from a location near the visitor. If it is still slow, move host. A managed WordPress host or a small VPS costs more than a ₹150-a-month shared plan and pays for itself quickly.
4. Nothing is cached
Caching happens in two places: on the server, covered above, and in the visitor's browser. Without browser cache headers, a returning visitor re-downloads your logo, fonts and scripts on every page view.
How to confirm: "Serve static assets with an efficient cache policy" and "Enable text compression".
The fix: set long cache lifetimes on static files and turn on Gzip or Brotli compression at the server or CDN. Both are configuration changes, not code changes, and take minutes once you have access.
5. Third-party widgets are eating the main thread
Live chat, the Facebook pixel, Google Tag Manager containers full of old tags, embedded maps, Instagram feeds, review widgets, heat-map recorders. Each one seems harmless. Together they often add more JavaScript than the site itself, and they run on the visitor's phone, not on your server.
How to confirm: "Reduce the impact of third-party code" lists them with the blocking time each one causes. Total Blocking Time above 300 ms usually means this is a factor.
The fix: remove what you do not use, which is normally half of it. Load chat and social embeds only after the visitor interacts or scrolls. Replace an embedded Google Map with a static image that links to Maps. Clean out Tag Manager.
6. Too much JavaScript, most of it unused
Modern themes and builders ship one large bundle for every page, whether the page needs a carousel, a form validator and a lightbox or not. A mid-range phone can spend two or three seconds just executing code that does nothing on this page.
How to confirm: "Reduce unused JavaScript", "Reduce JavaScript execution time" and "Minimize main-thread work".
The fix: on WordPress, disable plugin assets per page with a tool such as Asset CleanUp. On React or Next.js sites, split the bundle by route and lazy-load heavy components. On Shopify, audit installed apps: uninstalled apps often leave script tags behind in the theme.
7. Redirect chains and layout shifts
Two smaller causes that are cheap to fix. A redirect chain such as http → https → www → trailing slash adds a full round trip per hop before the page even starts loading. And layout shift, where images and ads without reserved space push content down as they load, does not slow the page down but makes it feel broken and is scored by Google as part of Core Web Vitals.
The fix: one redirect straight to the final URL. Width and height attributes on every image. Reserved space for ads and embeds.
Which one is my problem?
| What you see in the report | Likely cause | Typical fix time |
|---|---|---|
| Page weight over 2 MB | Images (1) | 1 to 2 hours |
| Server response over 600 ms | Hosting and caching (3, 4) | 1 to 4 hours, or a host move |
| Blocking time over 300 ms | Third-party scripts and JavaScript (5, 6) | Half a day to 2 days |
| Largest paint over 4 s with a light page | Render-blocking CSS and JS (2) | Half a day to 1 day |
| Layout shift over 0.1 | Missing image dimensions (7) | 1 hour |
What slow actually costs
Google's own research found that as mobile load time goes from 1 second to 3 seconds, the probability of a visitor leaving rises by 32 percent. Retail studies going back to Amazon's early tests put the cost of every extra 100 milliseconds at roughly 1 percent of sales. For a small business, a site that takes 6 seconds instead of 2 is quietly losing a meaningful share of every rupee or dollar spent bringing people to it. Our free tester includes a calculator so you can put your own numbers in.
Can I fix this myself?
Causes 1, 4 and 7 usually yes, with a couple of plugins and an afternoon. Causes 2, 3, 5 and 6 depend on how comfortable you are inside your theme code and hosting panel. The risk of breaking a live site is real, which is why we always work on a staging copy first.
Find out which of the seven applies to your site
Free, 60 seconds, no signup. If you want it fixed, we do it in 7 days and invoice only when the score improves.
Diagnose my siteFrequently asked
Why is my website slow on mobile but fast on desktop? Desktop machines have fast CPUs and wired connections, so heavy JavaScript and large images are hidden. Phones expose them. Google ranks on the mobile result.
Why is my WordPress site so slow? Usually a combination of shared hosting, no page caching, and a stack of plugins each loading their own scripts and styles on every page. Fixing caching and pruning plugins recovers most of it.
Why is my Shopify store so slow? Almost always apps. Each app injects scripts, and uninstalled apps often leave code behind in the theme. Audit the theme's layout file and remove anything that no longer has a purpose.
Does a slow website affect Google ranking? Yes, through Core Web Vitals, which are part of the page-experience signals. It is not the biggest ranking factor, but a fast site also converts better, which matters more than the ranking effect.