UnderHost
Knowledgebase Docs

CDN Integration for WordPress: Speed Up Content Delivery

Integrate CDN with WordPress. Cloudflare, BunnyCDN, MaxCDN setup, cache purging, SSL configuration, performance gains, cost management.

On this page

A Content Delivery Network (CDN) caches your website's static files (images, CSS, JavaScript) on servers worldwide. When a visitor requests a file, they get it from the nearest server instead of your main server. Result: 50-80% faster load times globally, reduced server load, lower bandwidth costs. Essential for WordPress sites serving international audiences.

CDN Basics

How CDN works:**

  1. Visitor requests yourdomain.com/image.jpg from Tokyo
  2. CDN checks nearest edge server (Hong Kong, Singapore, Tokyo)
  3. If cached, serve from edge server (~20ms)
  4. If not cached, fetch from origin server, cache, serve
  5. Next request from Tokyo served instantly from cache

What gets cached:**

  • ✅ Images (jpg, png, webp, gif)
  • ✅ CSS stylesheets
  • ✅ JavaScript files
  • ✅ Fonts (Google Fonts, custom fonts)
  • ✅ PDF documents
  • ❌ HTML pages (usually, dynamic content)
  • ❌ Database queries (no caching at CDN level)

Popular CDN Providers

ProviderCostSetupBest For
CloudflareFree-$20/moVery EasyMost WordPress sites (recommended)
BunnyCDN$0.01/GBEasyHigh-volume sites, cost-sensitive
MaxCDN$9/mo+MediumMedium to large sites
AWS CloudFrontVariableComplexAWS-integrated sites
Google Cloud CDNVariableComplexGoogle Cloud users

Cloudflare Setup (Recommended)

Step 1: Sign up for free account**

  1. Visit cloudflare.com
  2. Sign up for free plan
  3. Add your domain

Step 2: Update nameservers**

  1. Your domain registrar (GoDaddy, Namecheap, etc.) → DNS settings
  2. Replace nameservers with Cloudflare's nameservers
  3. Wait 24-48 hours for propagation

Step 3: Configure Cloudflare**

  • Cloudflare → Dashboard → Your Domain
  • Caching Level: "Cache Everything"
  • Browser Cache TTL: "1 month"
  • Enable Gzip compression
  • Enable HTTP/2
  • Enable Minify (CSS, JavaScript)

Step 4: SSL/TLS**

  • Cloudflare → SSL/TLS → Full
  • Automatic HTTPS rewrite enabled
  • Your site now accessible via https://

WordPress CDN Plugins

Use plugin to automatically rewrite URLs:**

Option 1: Cloudflare (native integration):**

  • Install "Cloudflare" plugin from WordPress.org
  • Authenticate with Cloudflare account
  • Plugin automatically handles cache purging

Option 2: W3 Total Cache:**

  • Install "W3 Total Cache" plugin
  • Configure → CDN → Select provider (Cloudflare, MaxCDN, etc.)
  • Enter API credentials
  • Saves time with automatic integration

Manual (no plugin):**

// In functions.php
define('CDN_URL', 'https://cdn.yourcdn.com');

// Rewrite image URLs
function rewrite_cdn_urls($content) {
    return str_replace(
        get_site_url() . '/wp-content/',
        CDN_URL . '/wp-content/',
        $content
    );
}
add_filter('the_content', 'rewrite_cdn_urls');

Image Optimization

Reduce image file sizes for faster CDN delivery:**

  • Use WebP format:**
  • Install "Imagify" or "ShortPixel" plugin
  • Auto-converts to WebP (25-35% smaller)
  • Fallback to JPG for older browsers

Lazy load images (don't load until visible):**

  • Install "Lazy Load by WP Rocket" plugin
  • Images load only when user scrolls to them
  • Faster initial page load

Cache Purging

When to purge CDN cache:**

  • After publishing new post (clear article image cache)
  • After updating CSS/JS files
  • After plugin updates
  • After WordPress core update

How to purge:**

# Cloudflare (via WordPress plugin)
Cloudflare plugin → Purge Cache → Purge Everything

# Manual via Cloudflare API
curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone_id}/purge_cache" \
  -H "Authorization: Bearer {api_token}" \
  -d '{"files":["https://example.com/image.jpg"]}'

Measure Performance Gains

Before and after CDN:**

# Test with Google PageSpeed Insights
https://pagespeed.web.dev/

# Before CDN: 45 points, 3-4 second load time
# After CDN: 75+ points, 1-2 second load time

# Test with GTmetrix
https://gtmetrix.com/

Typical improvements:**

  • Page load time: -50 to -70%
  • Time to First Byte: -30 to -50%
  • Largest Contentful Paint: -40 to -60%
  • Server bandwidth: -60 to -80%

Troubleshooting

Images showing as broken or 404:**

  • Check CDN URL rewriting is enabled
  • Verify origin server URLs are correct
  • Purge CDN cache and reload
  • Check plugin configurations

Old images still showing (not updating):**

  • Purge entire CDN cache
  • Clear browser cache (Ctrl+Shift+Del)
  • Wait for cache TTL to expire (usually 1 month)

HTTPS mixed content warnings:**

  • Ensure CDN URLs use https:// (not http://)
  • Cloudflare Auto HTTPS should handle this
  • Check WordPress Address and Site URL are https://
CDN is essential for global WordPress performance

Cloudflare free tier alone provides 50% faster load times for most sites. Combined with caching, compression, and image optimization, you're looking at 2-3x speed improvement globally.

Related: WordPress caching plugins-speed up your site | WordPress SEO basics-Yoast, Rank Math, sitemaps, and speed | Site slow or timing out? | Cloudflare setup and configuration

Was this article helpful?

Need managed WordPress hosting?

Run WordPress on UnderHost managed hosting with performance tuning, SSL, backups, security guidance, and expert support.

Related articles

Back to WordPress