{"id":1080,"date":"2025-08-30T08:31:16","date_gmt":"2025-08-30T08:31:16","guid":{"rendered":"https:\/\/www.woodcentral.com\/-\/peter\/?p=1080"},"modified":"2026-05-24T11:28:10","modified_gmt":"2026-05-24T11:28:10","slug":"wordpress-litespeed-cloudflare-quic-cloud-cdn","status":"publish","type":"post","link":"https:\/\/www.woodcentral.com\/-\/peter\/wordpress-litespeed-cloudflare-quic-cloud-cdn\/","title":{"rendered":"WordPress + LiteSpeed + Cloudflare + QUIC.cloud CDN"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">1. <strong>LiteSpeed Cache Plugin (LSCWP) Settings<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install &amp; activate <strong>LiteSpeed Cache<\/strong> plugin.<\/li>\n\n\n\n<li>In <strong>Cache \u2192 Cache<\/strong>, enable:\n<ul class=\"wp-block-list\">\n<li><code>Enable Cache: ON<\/code><\/li>\n\n\n\n<li><code>Cache Logged-in Users: OFF<\/code> (unless you run a membership site)<\/li>\n\n\n\n<li><code>Cache Mobile: ON<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>In <strong>Cache \u2192 Purge<\/strong>, keep defaults. LiteSpeed will purge local cache when you update posts\/pages.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. <strong>Turn Off QUIC.cloud CDN<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>LSCWP \u2192 General<\/strong>, set <strong>Use QUIC.cloud CDN \u2192 OFF<\/strong>.<\/li>\n\n\n\n<li>That way, you\u2019re not routing traffic through both Cloudflare and QUIC.cloud (which can break things).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. <strong>Still Use QUIC.cloud for Optimization (Optional, Recommended)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Even if you don\u2019t use its CDN, you can still use QUIC.cloud for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Image Optimization<\/strong> (compresses images in background, WebP\/AVIF support).<\/li>\n\n\n\n<li><strong>Critical CSS &amp; LQIP<\/strong> (improves Core Web Vitals).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To do this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>LiteSpeed Cache \u2192 General \u2192 Server IP<\/strong> \u2192 set it.<\/li>\n\n\n\n<li>Then in <strong>LiteSpeed Cache \u2192 Image Optimization<\/strong>, request a QUIC.cloud API key.<\/li>\n\n\n\n<li>Make sure <strong>General \u2192 Domain Key<\/strong> is active.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a1 Important: This won\u2019t interfere with Cloudflare, since it only processes resources, not live traffic.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. <strong>Cloudflare Settings (the right way)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>Cloudflare DNS<\/strong>, keep your domain <strong>orange-clouded (proxied)<\/strong> \u2192 you get CDN, security, SSL.<\/li>\n\n\n\n<li>In <strong>Cloudflare Caching \u2192 Configuration<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Set <strong>Caching Level \u2192 Standard<\/strong>.<\/li>\n\n\n\n<li><strong>Browser Cache TTL \u2192 Respect Existing Headers<\/strong>.<\/li>\n\n\n\n<li><strong>Page Rule<\/strong> (optional, but recommended): <code>*example.com\/wp-admin\/* Cache Level: Bypass<\/code> (Prevents Cloudflare from caching your WordPress dashboard.)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>In <strong>Cloudflare Speed \u2192 Optimization<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Turn <strong>Rocket Loader OFF<\/strong> (it breaks WordPress\/LiteSpeed sometimes).<\/li>\n\n\n\n<li>Don\u2019t use Cloudflare\u2019s \u201cAuto Minify\u201d if you already use LSCWP\u2019s minify. Let one system handle it.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. <strong>LiteSpeed Cache + Cloudflare Sync<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>LiteSpeed Cache \u2192 CDN<\/strong>, enable <strong>Cloudflare API<\/strong>.<\/li>\n\n\n\n<li>Enter your Cloudflare API token (with \u201cZone: Cache Purge\u201d permission).<\/li>\n\n\n\n<li>This way, when LiteSpeed purges a page, Cloudflare will also purge it. \u2705 No stale content.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\ude80 Final Result<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>LiteSpeed Cache:<\/strong> Handles smart WordPress page caching on your server.<\/li>\n\n\n\n<li><strong>QUIC.cloud (partial use):<\/strong> Optional for image optimization + CSS only.<\/li>\n\n\n\n<li><strong>Cloudflare:<\/strong> CDN, SSL, DDoS protection, global cache.<\/li>\n\n\n\n<li><strong>No double-CDN conflicts<\/strong> (QUIC.cloud CDN is off).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s how to set up <strong>Cloudflare + LiteSpeed Cache plugin (LSCWP)<\/strong> so they sync perfectly:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udd27 Step 1: Create a Cloudflare API Token for LiteSpeed Cache<\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to Cloudflare dashboard.<\/li>\n\n\n\n<li>Go to <strong>My Profile \u2192 API Tokens \u2192 Create Token<\/strong>.<\/li>\n\n\n\n<li>Use the <strong>&#8220;Custom Token&#8221;<\/strong> option.<\/li>\n\n\n\n<li>Permissions to grant:\n<ul class=\"wp-block-list\">\n<li><strong>Zone \u2192 Cache Purge \u2192 Edit<\/strong><\/li>\n\n\n\n<li>(Optional but useful) <strong>Zone \u2192 Settings \u2192 Read<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Zone Resources:\n<ul class=\"wp-block-list\">\n<li>Select <strong>Include \u2192 Specific Zone \u2192 [yourdomain.com]<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Save the token \u2014 copy it (you won\u2019t see it again).<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udd27 Step 2: Add Cloudflare Token to LiteSpeed Cache<\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In WordPress admin, go to <strong>LiteSpeed Cache \u2192 CDN<\/strong>.<\/li>\n\n\n\n<li>Enable <strong>Cloudflare API<\/strong>.<\/li>\n\n\n\n<li>Enter:\n<ul class=\"wp-block-list\">\n<li><strong>Email Address<\/strong>: your Cloudflare account email.<\/li>\n\n\n\n<li><strong>Global API Key<\/strong> (not recommended) OR <strong>API Token<\/strong> (recommended).<\/li>\n\n\n\n<li><strong>Domain<\/strong>: yourdomain.com<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Save settings.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Now, when LiteSpeed purges a page\/post, Cloudflare will <strong>instantly purge the cached copy too<\/strong> \u2014 no more stale content stuck at Cloudflare\u2019s edge. \u2705<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udd27 Step 3: Cloudflare Page Rules (Prevent WP Admin Caching)<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In Cloudflare, go to <strong>Rules \u2192 Page Rules \u2192 Create Page Rule<\/strong>. Add these:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>For WordPress Dashboard: <code>*example.com\/wp-admin\/*<\/code>\n<ul class=\"wp-block-list\">\n<li><strong>Cache Level: Bypass<\/strong><\/li>\n\n\n\n<li><strong>Disable Performance<\/strong> (optional)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>For Login Page: <code>*example.com\/wp-login.php*<\/code>\n<ul class=\"wp-block-list\">\n<li><strong>Cache Level: Bypass<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">This ensures Cloudflare doesn\u2019t try to cache your admin area or login page.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udd27 Step 4: Cloudflare Cache Settings<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Caching \u2192 Configuration<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Caching Level: <strong>Standard<\/strong><\/li>\n\n\n\n<li>Browser Cache TTL: <strong>Respect Existing Headers<\/strong><\/li>\n\n\n\n<li>Always Online: optional<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Speed \u2192 Optimization<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Rocket Loader \u2192 OFF<\/strong> (can break JS-heavy plugins)<\/li>\n\n\n\n<li><strong>Auto Minify \u2192 OFF<\/strong> if you already let LiteSpeed Cache handle minify. (Choose one system, not both.)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\ude80 Summary<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LSCWP does smart page caching.<\/li>\n\n\n\n<li>Cloudflare delivers global CDN + security.<\/li>\n\n\n\n<li>Cloudflare API token lets LSCWP clear Cloudflare cache automatically.<\/li>\n\n\n\n<li>Page rules stop Cloudflare from messing with admin or login.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s a <strong>tested LiteSpeed Cache (LSCWP) setup<\/strong> that works best with Cloudflare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019ll break it down by plugin sections.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udd27 <strong>LiteSpeed Cache Plugin Settings (Cloudflare setup)<\/strong><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. General<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Domain Key<\/strong>: Request &amp; activate (needed for QUIC.cloud services if you want Image Optimization, CSS).<\/li>\n\n\n\n<li><strong>Server IP<\/strong>: Fill it in (your hosting IP). Helps QUIC.cloud talk to your server.<\/li>\n\n\n\n<li><strong>Guest Mode \/ Guest Optimization<\/strong>: Leave <strong>ON<\/strong> (improves first-time visits).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Cache<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable Cache<\/strong>: \u2705 ON<\/li>\n\n\n\n<li><strong>Cache Logged-in Users<\/strong>: \u274c OFF (unless membership site \/ forum).<\/li>\n\n\n\n<li><strong>Cache Commenters<\/strong>: \u274c OFF (can confuse users after posting).<\/li>\n\n\n\n<li><strong>Cache REST API<\/strong>: \u2705 ON (faster WP API, Gutenberg).<\/li>\n\n\n\n<li><strong>Cache Login Page<\/strong>: \u274c OFF.<\/li>\n\n\n\n<li><strong>Cache Mobile<\/strong>: \u2705 ON (use &#8220;Adaptive&#8221; if theme serves different mobile content).<\/li>\n\n\n\n<li><strong>Cache TTL (Time To Live)<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Default Public Cache TTL: <code>604800<\/code> (7 days)<\/li>\n\n\n\n<li>Front Page TTL: <code>604800<\/code> (7 days)<\/li>\n\n\n\n<li>Feeds TTL: <code>0<\/code> (disable caching feeds to avoid issues).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Purge<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Auto Purge Rules for Publish\/Update<\/strong>: \u2705 (Front Page, Home, Post, Categories, Tags).<\/li>\n\n\n\n<li><strong>Serve Stale<\/strong>: \u2705 ON (serves stale content while fetching new).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Excludes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add:\n<ul class=\"wp-block-list\">\n<li><code>\/wp-admin\/*<\/code><\/li>\n\n\n\n<li><code>\/wp-login.php<\/code><br>(Matches your Cloudflare bypass rules, so both layers skip admin).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Optimize<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CSS Minify \/ Combine<\/strong>: \u2705 ON<\/li>\n\n\n\n<li><strong>JS Minify<\/strong>: \u2705 ON<\/li>\n\n\n\n<li><strong>JS Combine<\/strong>: \u274c OFF (can break sites, test carefully).<\/li>\n\n\n\n<li><strong>Load CSS Asynchronously<\/strong>: \u2705 ON (with Critical CSS from QUIC.cloud).<\/li>\n\n\n\n<li><strong>Generate Critical CSS<\/strong>: \u2705 ON (needs Domain Key).<\/li>\n\n\n\n<li><strong>HTML Minify<\/strong>: \u2705 ON<\/li>\n\n\n\n<li><strong>Remove Query Strings<\/strong>: \u2705 ON<\/li>\n\n\n\n<li><strong>Load JS Deferred<\/strong>: \u2705 ON (except for jQuery if needed).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 Turn OFF <strong>Cloudflare\u2019s Auto Minify<\/strong> to avoid double-processing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Media<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lazy Load Images<\/strong>: \u2705 ON<\/li>\n\n\n\n<li><strong>Lazy Load Iframes<\/strong>: \u2705 ON (good for YouTube embeds).<\/li>\n\n\n\n<li><strong>Generate WebP Versions<\/strong>: \u2705 ON (needs QUIC.cloud API).<\/li>\n\n\n\n<li><strong>Image WebP Replacement<\/strong>: \u2705 ON<\/li>\n\n\n\n<li><strong>Image Optimization<\/strong>: Use QUIC.cloud (background processing).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. CDN<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cloudflare API<\/strong>: \u2705 ON (with your API token).<\/li>\n\n\n\n<li><strong>QUIC.cloud CDN<\/strong>: \u274c OFF (since Cloudflare is your CDN).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Advanced<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Instant Click<\/strong>: optional (preloads links on hover).<\/li>\n\n\n\n<li><strong>Heartbeat Control<\/strong>: \u2705 Reduce activity (saves server resources).<\/li>\n\n\n\n<li><strong>Browser Cache<\/strong>: \u2705 ON<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udd27 Cloudflare Matching Settings<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Minify<\/strong>: OFF (let LSCWP handle).<\/li>\n\n\n\n<li><strong>Rocket Loader<\/strong>: OFF.<\/li>\n\n\n\n<li><strong>Page Rules<\/strong>: Bypass for <code>\/wp-admin\/*<\/code> and <code>\/wp-login.php*<\/code>.<\/li>\n\n\n\n<li><strong>Cache TTL<\/strong>: \u201cRespect Existing Headers\u201d.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\ude80 Result<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LiteSpeed handles <strong>smart WordPress page caching + optimization<\/strong>.<\/li>\n\n\n\n<li>QUIC.cloud (optional) handles <strong>image optimization &amp; critical CSS only<\/strong>.<\/li>\n\n\n\n<li>Cloudflare handles <strong>global CDN, SSL, security, DDoS<\/strong>.<\/li>\n\n\n\n<li>No duplicate caching, no broken pages.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s a <strong>step-by-step checklist<\/strong> you can literally follow in order to set up <strong>WordPress + LiteSpeed Cache + Cloudflare<\/strong> the clean way.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2705 WordPress + LiteSpeed + Cloudflare Setup Checklist<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 1: Install &amp; Prepare<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install and activate <strong>LiteSpeed Cache (LSCWP)<\/strong> plugin in WordPress.<\/li>\n\n\n\n<li>Update WordPress, plugins, and themes.<\/li>\n\n\n\n<li>Confirm your host is running <strong>LiteSpeed server<\/strong> (most do if they gave you LSCWP).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 2: General Settings<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>LiteSpeed Cache \u2192 General<\/strong>, click <strong>Request Domain Key<\/strong> \u2192 wait for email confirmation.<\/li>\n\n\n\n<li>Set <strong>Server IP<\/strong> (ask your host if unsure).<\/li>\n\n\n\n<li>Enable <strong>Guest Mode<\/strong> and <strong>Guest Optimization<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 3: Cache Settings<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable Cache = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Cache Logged-in Users = <strong>OFF<\/strong> (unless membership site).<\/li>\n\n\n\n<li>Cache REST API = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Cache Mobile = <strong>ON<\/strong> (Adaptive if theme differs on mobile).<\/li>\n\n\n\n<li>Default TTL = <code>604800<\/code> (7 days).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 4: Purge Rules<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Auto Purge: <strong>Front Page, Home, Post, Categories, Tags<\/strong>.<\/li>\n\n\n\n<li>Serve Stale = <strong>ON<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 5: Excludes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add to <strong>Do Not Cache URIs<\/strong>: <code>\/wp-admin\/* \/wp-login.php<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 6: Optimization<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CSS Minify \/ Combine = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>JS Minify = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>JS Combine = <strong>OFF<\/strong> (test carefully if you try it).<\/li>\n\n\n\n<li>Load CSS Asynchronously = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Generate Critical CSS = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>HTML Minify = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Remove Query Strings = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Load JS Deferred = <strong>ON<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f Make sure <strong>Cloudflare\u2019s Auto Minify = OFF<\/strong> (avoid conflicts).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 7: Media<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lazy Load Images = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Lazy Load Iframes = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Generate WebP Versions = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>WebP Replacement = <strong>ON<\/strong>.<\/li>\n\n\n\n<li>Enable <strong>Image Optimization<\/strong> (uses QUIC.cloud background processing).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 8: CDN<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>QUIC.cloud CDN = OFF<\/strong> (we\u2019re using Cloudflare).<\/li>\n\n\n\n<li>Enable <strong>Cloudflare API<\/strong> \u2192 enter:\n<ul class=\"wp-block-list\">\n<li>Email (Cloudflare account)<\/li>\n\n\n\n<li>API Token (with Cache Purge permissions)<\/li>\n\n\n\n<li>Domain name<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 9: Advanced<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Instant Click = optional.<\/li>\n\n\n\n<li>Heartbeat Control = <strong>Reduce frequency<\/strong>.<\/li>\n\n\n\n<li>Browser Cache = <strong>ON<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Step 10: Cloudflare Dashboard<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>Caching \u2192 Configuration<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Caching Level = <strong>Standard<\/strong>.<\/li>\n\n\n\n<li>Browser Cache TTL = <strong>Respect Existing Headers<\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>In <strong>Speed \u2192 Optimization<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Rocket Loader = <strong>OFF<\/strong>.<\/li>\n\n\n\n<li>Auto Minify = <strong>OFF<\/strong> (since LSCWP does it).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Create Page Rules: <code>*example.com\/wp-admin\/* \u2192 Cache Level: Bypass \u2192 Disable Performance<\/code> <code>*example.com\/wp-login.php* \u2192 Cache Level: Bypass \u2192 Disable Performance<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Done!<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now you have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>LiteSpeed Cache<\/strong> handling WordPress page caching &amp; optimizations.<\/li>\n\n\n\n<li><strong>Cloudflare<\/strong> providing global CDN, SSL, security.<\/li>\n\n\n\n<li><strong>QUIC.cloud (optional)<\/strong> only for image optimization &amp; CSS generation.<\/li>\n\n\n\n<li><strong>Automatic cache purging<\/strong> synced between LiteSpeed and Cloudflare.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s a <strong>one-page printable checklist<\/strong> version you can keep handy:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2705 WordPress + LiteSpeed Cache + Cloudflare Setup Checklist<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 General<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Request Domain Key (LiteSpeed Cache \u2192 General)<\/li>\n\n\n\n<li>Set Server IP<\/li>\n\n\n\n<li>Enable Guest Mode + Guest Optimization<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Cache<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable Cache = ON<\/li>\n\n\n\n<li>Cache Logged-in Users = OFF<\/li>\n\n\n\n<li>Cache REST API = ON<\/li>\n\n\n\n<li>Cache Mobile = ON (Adaptive if needed)<\/li>\n\n\n\n<li>Default TTL = 604800 (7 days)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Purge<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Auto Purge: Front Page, Home, Post, Categories, Tags<\/li>\n\n\n\n<li>Serve Stale = ON<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Excludes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do Not Cache URIs: <code>\/wp-admin\/* \/wp-login.php<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Optimize<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CSS Minify \/ Combine = ON<\/li>\n\n\n\n<li>JS Minify = ON<\/li>\n\n\n\n<li>JS Combine = OFF<\/li>\n\n\n\n<li>Load CSS Asynchronously = ON<\/li>\n\n\n\n<li>Generate Critical CSS = ON<\/li>\n\n\n\n<li>HTML Minify = ON<\/li>\n\n\n\n<li>Remove Query Strings = ON<\/li>\n\n\n\n<li>Load JS Deferred = ON<\/li>\n\n\n\n<li>Cloudflare Auto Minify = OFF<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Media<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lazy Load Images = ON<\/li>\n\n\n\n<li>Lazy Load Iframes = ON<\/li>\n\n\n\n<li>Generate WebP Versions = ON<\/li>\n\n\n\n<li>WebP Replacement = ON<\/li>\n\n\n\n<li>Image Optimization = ON (QUIC.cloud)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 CDN<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>QUIC.cloud CDN = OFF<\/li>\n\n\n\n<li>Cloudflare API = ON \u2192 Enter Email, API Token, Domain<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Advanced<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Instant Click = optional<\/li>\n\n\n\n<li>Heartbeat Control = Reduce frequency<\/li>\n\n\n\n<li>Browser Cache = ON<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Cloudflare<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Caching Level = Standard<\/li>\n\n\n\n<li>Browser Cache TTL = Respect Existing Headers<\/li>\n\n\n\n<li>Rocket Loader = OFF<\/li>\n\n\n\n<li>Auto Minify = OFF<\/li>\n\n\n\n<li>Page Rule 1: <code>*example.com\/wp-admin\/* Cache Level: Bypass Disable Performance<\/code><\/li>\n\n\n\n<li>Page Rule 2: <code>*example.com\/wp-login.php* Cache Level: Bypass Disable Performance<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/www.woodcentral.com\/-\/peter\/wp-content\/uploads\/sites\/9\/2025\/08\/LiteSpeed_Cloudflare_Checklist.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Embed of LiteSpeed_Cloudflare_Checklist.\"><\/object><a id=\"wp-block-file--media-c4e88f59-bbc0-45c9-8cd4-cad45fd701b4\" href=\"https:\/\/www.woodcentral.com\/-\/peter\/wp-content\/uploads\/sites\/9\/2025\/08\/LiteSpeed_Cloudflare_Checklist.pdf\">LiteSpeed_Cloudflare_Checklist<\/a><a href=\"https:\/\/www.woodcentral.com\/-\/peter\/wp-content\/uploads\/sites\/9\/2025\/08\/LiteSpeed_Cloudflare_Checklist.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-c4e88f59-bbc0-45c9-8cd4-cad45fd701b4\">Download<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>How to configure LiteSpeed + Cloudflare + QUIC.cloud CDN to avoid conflicts.<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1080","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts\/1080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/comments?post=1080"}],"version-history":[{"count":0,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/posts\/1080\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/media?parent=1080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/categories?post=1080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.woodcentral.com\/-\/peter\/wp-json\/wp\/v2\/tags?post=1080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}