Why Site Speed is Critical for SEO
Since 2021, Google officially considers Core Web Vitals for ranking — these are speed and usability metrics measured in real conditions on actual user devices. Sites that pass the Core Web Vitals threshold receive a slight ranking boost.
But the indirect impact is more important: slow site → higher bounce rate → less time on page → worse behavioral signals → lower rankings. Additionally, Google allocates a smaller crawl budget to slow sites.
Core Web Vitals: Three Key Metrics
LCP — Largest Contentful Paint
Time until the largest visible element (usually a hero image or heading) appears. Shows when the user sees the main content.
- Good: up to 2.5 seconds
- Needs improvement: 2.5–4 s
- Poor: over 4 seconds
Main causes of poor LCP: large uncompressed images, slow server, render-blocking resources (JS, CSS), lack of CDN.
INP — Interaction to Next Paint
Response time to a user interaction (click, tap, input). Replaced FID in March 2024.
- Good: up to 200 ms
- Needs improvement: 200–500 ms
- Poor: over 500 ms
CLS — Cumulative Layout Shift
Total shift of elements during loading. Content "jumps" when images or ads are loaded.
- Good: up to 0.1
- Needs improvement: 0.1–0.25
- Poor: over 0.25
pagespeed.web.dev — enter the URL and get a detailed report on all three metrics for mobile and desktop. Also, check Search Console → Core Web Vitals for real-world device data.
Image Optimization — The Quickest Win
Images are the main reason for a slow LCP. A few rules:
- WebP format — 25–35% smaller than JPEG at the same quality
- Lazy loading —
loading="lazy"for images below the fold - Dimensions in HTML — always specify width and height to avoid CLS
- Preload LCP image — add
<link rel="preload" as="image">for the hero image - CDN for images — Cloudflare Images or an equivalent for global delivery
Server Speed and TTFB
TTFB (Time to First Byte) — time to the first byte of the server response. Google considers a TTFB up to 800ms to be good.
- Caching — pages should be returned from the cache, not generated every time
- Hosting — VPS or cloud hosting is much faster than shared
- CDN — Cloudflare reduces TTFB for visitors from different countries for free
- Databases — slow SQL queries are the most frequent cause of bad TTFB
JavaScript and CSS Optimization
The browser cannot render the page while render-blocking resources are being downloaded and executed:
- Move JS to the end of the body or add
defer/async - Extract critical CSS (above-the-fold) and inline it in the head
- Minify and compress JS and CSS files
- Remove unused CSS (Coverage tab in DevTools)
- Split large JS into chunks and load them lazily
Google Analytics, Facebook Pixel, chats, ad networks — every third-party script adds 100–500ms to the load time. Auditing third-party scripts via the Lighthouse Network tab is a mandatory step.
Fonts and Speed
- Use
font-display: swap— text is visible immediately, font loads in the background - Preconnect to fonts.googleapis.com and fonts.gstatic.com
- Limit font variants — only those weights that are actually used
- Consider system fonts for critical text (zero load time)
Fast Site — Fast Indexing
After improving speed, trigger a reindex of the updated pages via IndexFast. Google will see the Core Web Vitals improvements and update its data faster.
Try for free →Mobile Optimization
Google uses Mobile-First Indexing — it indexes the mobile version of the site as the primary one. Therefore, mobile speed is more important than desktop.
- Check mobile PageSpeed separately from desktop
- Test on real devices, not just in DevTools
- Buttons minimum 48x48px for easy tapping
- Avoid horizontal scrolling
- Popups should not obscure main content (penalty for intrusive interstitials)
Site Speed Checklist
- LCP under 2.5 seconds on mobile
- INP under 200ms
- CLS under 0.1
- All images in WebP format
- lazy loading for images below the fold
- CDN connected (Cloudflare or equivalent)
- JS moved to the end or defer added
- Server caching configured
- TTFB under 800ms
- font-display: swap for custom fonts
- Third-party script audit completed