Why is my website slow? A practical speed checklist
Short answer: most slow sites have the same few problems: images that are too big, too much JavaScript (often from plugins, chat widgets and trackers), slow hosting or no caching, and web fonts that block the page. Measure first with PageSpeed Insights, then fix the largest problem first. Usually that's the images.
Step 1: measure
Run your page through Google's PageSpeed Insights or Lighthouse in Chrome. Look at the three Core Web Vitals:
| Metric | What it measures | Good |
|---|---|---|
| LCP (Largest Contentful Paint) | How long until the main content appears | 2.5 s or less |
| INP (Interaction to Next Paint) | How quickly the page responds to taps and clicks | 200 ms or less |
| CLS (Cumulative Layout Shift) | How much the page jumps while loading | 0.1 or less |
Test on mobile, not just desktop. Phones are slower and are what most visitors use.
Step 2: fix the images (biggest win on most sites)
- Resize photos to the size they're shown at with the image resizer. A 4000-pixel photo in a 1200-pixel space is waste.
- Compress them with the image compressor.
- Use WebP or AVIF. See AVIF vs WebP.
- Serve responsive sizes with
srcset. The SEO image pack writes the HTML for you. Background: responsive images with srcset. - Add width and height to every image so the layout doesn't jump (CLS).
- Lazy-load images below the fold, but never the main image at the top. That one should load as early as possible.
Step 3: cut the JavaScript
Every plugin, widget, tracker and pop-up adds scripts the phone must download and run. That's the main cause of a poor INP.
- Remove plugins and apps you don't use.
- Load chat widgets and embeds only when someone clicks them.
- Keep one analytics tool, not three.
- Defer scripts that aren't needed for the first screen.
Step 4: hosting and caching
- Page caching serves ready-made pages instead of building each one again. Most hosts and WordPress cache plugins include it.
- A CDN serves files from a location near the visitor.
- Server response time (TTFB) over about 0.8 s on a cached page usually means the hosting plan is too small or the database queries are too slow.
- Use current software, such as a supported PHP version or Node.js runtime.
Step 5: fonts
- Use one or two font families, and only the weights you need.
- Host fonts yourself or preload them, and use
font-display: swapso text shows immediately. - Use WOFF2 files.
Step 6: check again
Re-test after each change, so you know what helped. Field data in PageSpeed Insights, from real Chrome users, can take up to 28 days to update. The lab score changes immediately.
Questions
What's a good PageSpeed score?
90+ is great, and 50–89 needs work. The score is a lab estimate, though. What counts for Google is passing Core Web Vitals for real users.
Does a slow site hurt SEO?
Page experience is one ranking factor among many, so content still matters most. A slow site does lose visitors, and slow mobile pages lose the most.
My site is slow only in the admin area. Why?
Admin pages aren't cached and often run heavy plugin code. Check your plugins and the hosting resources rather than the front-end tips above.