How to optimize website speed in 2026?
Website speed in 2026 is about Core Web Vitals — LCP, INP, CLS. Here is the complete optimization checklist we use for client sites in India.
A 1-second delay in page load drops conversions by 7%. Indian users on 4G are even less patient — bounce rate spikes 32% past the 3-second mark. We\'ve audited 100+ Indian business websites for speed; the same patterns repeat. Here\'s the complete 2026 optimisation checklist, ordered by impact.
Quick answer — the 2026 priority order
- Compress & modernise images (40-60% of page weight typically)
- Enable Brotli/gzip compression on the server
- Use a CDN (Cloudflare free tier)
- Eliminate render-blocking JS/CSS
- Reduce third-party scripts (chat widgets, ads, analytics bloat)
- Lazy-load below-the-fold content
- Optimise web fonts (preload, swap, subset)
- Cache aggressively (browser + CDN + server)
- Minimise database queries (for dynamic sites)
- Code-split JS bundles
Understand the 3 Core Web Vitals first
| Metric | What it measures | Good target |
|---|---|---|
| LCP (Largest Contentful Paint) | How fast the biggest visible element loads | Under 2.5s |
| INP (Interaction to Next Paint) | How responsive the page feels to clicks/taps | Under 200ms |
| CLS (Cumulative Layout Shift) | How much elements jump around as page loads | Under 0.1 |
INP replaced FID in March 2024 and is now stricter. CLS is often the easiest to fix; INP is the hardest in 2026.
Step 1 — Image optimisation (biggest single lever)
Most Indian business websites use 800KB-2MB JPGs as hero images. Same content can be 50–150KB in WebP/AVIF.
- Convert to WebP/AVIF — 30-60% smaller than JPG at same visual quality
- Use responsive images:
<picture>with multiple sources for different viewports - Set explicit width/height attributes — prevents CLS
- Lazy-load below-the-fold images:
loading="lazy"attribute - Use proper compression: 80% quality JPG is visually identical to 100%, half the size
Tools: TinyPNG (free), Squoosh (free), sharp CLI for batch convert.
Step 2 — Server-side compression
Enable Brotli (best) or gzip (fallback) on your server. This compresses HTML/CSS/JS by 70-80% on the wire.
- Apache: enable
mod_brotli+mod_deflate - Nginx:
brotli on; brotli_types text/css application/javascript; - Hostinger / shared hosting: gzip is usually pre-enabled, Brotli requires activation
- Cloudflare: Brotli is automatic on free tier
Step 3 — Use a CDN (Cloudflare free works)
Indian internet routing is fragmented across ISPs. A Cloudflare CDN edge in Mumbai or Chennai cuts time-to-first-byte by 40–70% for users in tier-2/3 cities.
Benefits:
- Edge caching of static assets
- HTTP/3 + QUIC enabled
- Brotli automatic
- DDoS protection bonus
- Free tier covers 99% of SMB needs
Step 4 — Eliminate render-blocking resources
If your <head> has 6 CSS files and 12 JS files loading synchronously, the page can\'t render until all 18 finish downloading. Lighthouse will scream "render-blocking resources" — that\'s LCP murder.
Fixes:
- Inline critical CSS — extract above-the-fold CSS, inline in
<head> - Defer non-critical CSS:
<link rel="preload" as="style" onload="this.rel=\'stylesheet\'"> - Defer JS:
<script defer>for non-critical,asyncfor analytics - Bundle and minify: 6 CSS files → 1 minified file
Step 5 — Audit third-party scripts
Third-party scripts (chat widgets, analytics, ads, popups, Hotjar, Intercom) often add 1-3 seconds to load time. Audit ruthlessly:
- List every third-party script
- For each, ask: "Does this directly contribute to revenue?"
- Remove half of them — speed boost is immediate
- Defer the rest with
asyncordefer - Lazy-load chat widgets (Tawk.to, Intercom) — load only after user scrolls
Step 6 — Lazy-load below-the-fold
- Images:
loading="lazy"attribute (native browser support) - iframes (YouTube embeds, maps):
loading="lazy" - Heavy JavaScript components: dynamic
import() - Third-party widgets: load on scroll/interaction, not on load
Step 7 — Optimise web fonts
Web fonts are sneaky LCP killers. Common mistakes:
- Loading 4 weights when site uses 2
- Loading full Latin-Extended when site only uses Latin
- No
font-display: swap— invisible text until font loads - Loading from Google Fonts CDN without preconnect
Fixes:
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>- Self-host critical fonts
- Use
font-display: swapin @font-face - Subset fonts to only the characters you actually use
Step 8 — Cache aggressively
| Asset type | Cache duration |
|---|---|
| Static images, fonts | 1 year (immutable) |
| CSS/JS bundles (versioned filenames) | 1 year (immutable) |
| HTML | 5 minutes – 1 hour |
| API responses | 10 seconds – 5 minutes (varies) |
Set proper Cache-Control headers. Versioned filenames (app.a1b2c3.js) let you cache "forever" safely.
Step 9 — Database query optimisation (for dynamic sites)
WordPress, Laravel, custom PHP — most slow-down on queries:
- Profile slow queries (WordPress: Query Monitor plugin; Laravel: Telescope)
- Add indexes on frequently-filtered columns
- Use object cache (Redis / Memcached)
- Cache rendered pages (WP Rocket, NGINX FastCGI cache)
Step 10 — Code-splitting (for SPAs)
If you ship a single 800KB JS bundle, every user pays for code they don\'t need. Code-split by route:
- Next.js / React: dynamic
import()for heavy components - Vue: async components
- Result: 200KB initial bundle + lazy-load rest on demand
Common mistakes that destroy speed scores
- Using a "premium" WordPress theme bundled with 30 plugins
- Embedding raw YouTube videos (use lite YouTube embed instead)
- Loading 4 different analytics tools simultaneously
- Using PNG for photos (always JPG/WebP for photos)
- Inline base64-encoded large images in HTML
- Loading Bootstrap + Tailwind + custom CSS together
- Pop-ups that load before page is interactive
Pro tips for India-specific speed
- Test on a real 4G phone, not desktop. Real 4G in India = 2-8 Mbps with 100ms+ latency.
- Use WebPageTest with Mumbai test location, throttled 4G profile
- Track real user metrics via Google Search Console Core Web Vitals report
- Prioritise mobile — 75-85% of Indian traffic is mobile
- Avoid IPv6-only CDN endpoints — many Indian ISPs lag on IPv6
Conclusion
Website speed is the cheapest SEO upgrade you can make. Most Indian SMB sites can hit Lighthouse 90+ in 2 weeks with the 10-step checklist above. If you want our team to audit and implement, see Website development Mumbai or book a free 15-minute audit.
FAQs
Lighthouse score 90+ on mobile is fast. Real-world benchmarks: LCP under 2.5s, INP under 200ms, CLS under 0.1. Most Indian SMB sites score 30–55. There is huge room for improvement.
Yes — Google's Core Web Vitals are direct ranking signals since 2021, and weighting has increased. Sites with green CWV outrank sites with red CWV when other factors are equal.
Not necessarily. A well-optimised WordPress site (caching plugin + image optimisation + lightweight theme) outperforms a poorly built Next.js site. Switch only if your bottleneck is server-side capability.
Yes. Even for India-only audience, a CDN (Cloudflare free tier works) cuts latency 40–60%. India has fragmented ISP routing — CDN edges normalise it.
Free tools (PageSpeed Insights, WebPageTest) reveal 80% of issues. Professional audits with implementation plan: ₹15K–₹50K depending on site complexity.
Some quick wins yes — image compression, caching plugins, removing unused plugins. Deeper fixes (code splitting, server tuning, third-party script management) need a developer.