How to Fix a Slow Website: 6 Fixes That Improve SEO Fast
Page speed affects rankings, bounce rate, and conversion rate simultaneously. Here is the complete fix.
“Every second of load time costs you users, rankings, and revenue — simultaneously.”
Page speed is the only ranking factor that simultaneously affects your Google position, your bounce rate, and your conversion rate. A 1-second improvement in load time increases conversions by an average of 7%. A page that loads in 4 seconds gets ranked below a comparable page that loads in 2 seconds.
Here is the complete guide — diagnosis first, then fixes in priority order.
Step 1: Diagnose the Problem
Before fixing anything, measure baseline. Use these free tools:
Google PageSpeed Insights (pagespeed.web.dev) Shows your Core Web Vitals scores for both mobile and desktop. The "Opportunities" section lists specific fixes with estimated impact. This is your primary diagnostic tool.
Google Search Console → Core Web Vitals Shows real-user data (field data) rather than lab measurements. If your CWV report shows "Poor URLs," those pages have real users experiencing slow load times.
WebPageTest (webpagetest.org) Advanced diagnostics — shows a waterfall of every resource that loads on your page. Useful for identifying specific bottlenecks.
What to look for: - LCP (Largest Contentful Paint): under 2.5s is good, over 4s is poor - INP (Interaction to Next Paint): under 200ms is good - CLS (Cumulative Layout Shift): under 0.1 is good - TTFB (Time to First Byte): under 600ms
Step 2: Fix LCP (Biggest Ranking Impact)
LCP is the single most impactful Core Web Vital for search rankings.
Identify your LCP element: Run PageSpeed Insights and look for "LCP element" in the diagnostics. It is usually your hero image or hero text.
If LCP is an image:
1. Add a preload hint in your <head>: <link rel="preload" as="image" href="/hero.webp">
2. Convert the image to WebP (25–35% smaller)
3. Ensure the image is not lazy-loaded (remove loading="lazy" from your LCP image)
4. Serve the image from a CDN (Cloudflare free tier takes 15 minutes to set up)
If LCP is text: 1. Check TTFB — if over 800ms, your server is the bottleneck 2. Use font-display: swap or font-display: optional to prevent render-blocking fonts 3. Move critical CSS inline rather than loading from an external file
Step 3: Fix Render-Blocking Resources
Scripts and stylesheets that load in your <head> block the browser from rendering anything until they finish.
Check for render-blocking resources: PageSpeed Insights → "Eliminate render-blocking resources" opportunity.
Fix:
- Add defer attribute to non-critical JavaScript: <script src="app.js" defer>
- Add async to independent scripts (analytics, chat widgets)
- Inline critical CSS (the CSS needed to render above-the-fold content) directly in the <head>
- Move non-critical CSS to load after the page paints
Step 4: Optimize Images
Images are typically 60–80% of a page's total weight.
Quick wins:
- Convert all images to WebP (use Cloudflare, Squoosh.app, or your CMS plugin)
- Add loading="lazy" to all images below the fold
- Set explicit width and height on all images (prevents CLS)
- Use responsive images with srcset to serve smaller images to smaller screens
Step 5: Reduce Server Response Time
If your TTFB is over 600ms, your server is slowing everything downstream.
Common causes and fixes: - No server-side caching: implement Redis or page-level caching - Slow database queries: add indexes to frequently-queried columns - Unoptimized server location: use a CDN or choose a server region closer to your primary audience - Shared hosting: upgrade to a VPS or managed platform (Vercel, Netlify, Railway)
Step 6: Set Cache Headers
Tell browsers to cache your assets so repeat visitors load pages instantly.
Add to your server configuration:
``
Cache-Control: public, max-age=31536000, immutable
``
For CSS, JS, and image files (1-year cache — use content hashing in filenames to invalidate when files change).
Verify Your Fixes
After implementing each change: 1. Run PageSpeed Insights three times and average the scores 2. Check Google Search Console CWV report after 28 days for real-user improvement 3. Monitor bounce rate in your analytics — speed improvements usually reduce it within days
Run a free RankyPulse audit to check your Core Web Vitals alongside all other technical SEO issues in one pass.
Related reading: - Your LCP is 4.2 seconds. Here's how to fix it in an afternoon. - 5 page speed fixes you can ship before lunch - See speed performance in action: Vercel SEO Audit