A slow site costs you visitors. Google penalizes slow pages in search rankings, and users leave after 3 seconds. Here’s how to find and fix the bottleneck.

Step 1: Measure First

Don’t guess. Test:

These tools tell you exactly what’s slow: server response time, large images, render-blocking scripts, etc.

Step 2: Check Server Response Time (TTFB)

Time to First Byte (TTFB) measures how fast your server handles a request. Test it:

  curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" https://yourdomain.com
  
TTFBRatingWhat to Do
< 200msExcellentNothing to fix
200–600msAcceptableRoom for improvement
600ms–1sSlowCheck server resources and database
> 1sUnacceptableServer or application problem

If TTFB Is Slow

Shared hosting:

  • Check MetricsResource Usage in cPanel. Are you hitting CPU or memory limits?
  • Your plan might be too small for your traffic. Consider upgrading or choosing a VPS plan

VPS:

  • Check server resources: htop, free -h, df -h
  • Is the database server slow? Check MySQL/MariaDB performance

Step 3: Optimize Your Application

WordPress-Specific Fixes

  1. Install a caching plugin: LiteSpeed Cache (if on LiteSpeed) or WP Super Cache
  2. Reduce plugins: deactivate and delete every plugin you’re not actively using. Each plugin adds overhead
  3. Update PHP version: cPanel → MultiPHP Manager → set to PHP 8.2 or 8.3
  4. Optimize your database: install WP-Optimize and run cleanup

For All Sites

OptimizationImpactHow
Enable GZIP compressionHighAdd to .htaccess or Nginx config
Browser cachingHighSet Cache-Control and Expires headers
Lazy load imagesMediumUse loading="lazy" on <img> tags
Minify CSS/JSMediumUse a build tool or WordPress plugin
Use a CDNHighCloudflare free plan or similar
Reduce image sizesHighCompress with Squoosh before uploading
Reduce HTTP requestsMediumCombine CSS files, remove unused scripts

GZIP Compression

Check if it’s enabled:

  curl -H "Accept-Encoding: gzip" -I https://yourdomain.com 2>&1 | grep -i encoding
  

If you don’t see content-encoding: gzip, enable it:

Apache (.htaccess):

  <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/json
</IfModule>
  

Nginx:

  gzip on;
gzip_types text/css application/javascript application/json text/plain;
gzip_min_length 1000;
  

Step 4: Optimize Images

Images are usually the biggest culprit. A single unoptimized header image can be 5MB.

  • Resize before uploading: a 4000x3000 photo displayed in a 800px container wastes bandwidth
  • Use WebP format: 25-30% smaller than JPEG at the same quality
  • Compress: use Squoosh, TinyPNG, or the ShortPixel WordPress plugin

Target total page size under 2MB for a good user experience.

Step 5: Use a CDN

A Content Delivery Network serves your static files from edge servers around the world. This reduces latency for visitors far from your server.

Cloudflare (free plan):

  1. Sign up at cloudflare.com
  2. Add your domain
  3. Update your nameservers to Cloudflare’s

Performance Checklist

  • TTFB under 600ms
  • Total page size under 2MB
  • GZIP compression enabled
  • Images optimized and using WebP where possible
  • Browser caching headers set
  • Unused plugins/scripts removed
  • PHP version is 8.2+
  • Database optimized

What to Do Next

Last updated 05 Apr 2026, 00:00 +0200. history

Was this page helpful?