LiteSpeed Cache tried to purge the cache and your server replied with 403 Forbidden. That usually means one of three things: the LiteSpeed cache module is not allowed to run for this site. A security layer is blocking the purge request. Or the request is not reaching the LiteSpeed server at all. Let’s walk through how to confirm which one applies to you and how to fix it.
LiteSpeed Cache shows “X-LiteSpeed-Purge request failed (403 Forbidden)” when I purge the cache. How do I fix this?
What's happening:
The cache purge command is not getting through. LiteSpeed Cache is asking the server to clear cached pages, and the web server is replying with 403 Forbidden instead of accepting the purge.
LiteSpeed cache is controlled by special headers and rules. One of those is the X-LiteSpeed-Purge header. When the plugin sends it, LiteSpeed looks at the tags in that header and removes matching items from cache.
When you see X-LiteSpeed-Purge request failed (403 Forbidden), it means:
403 instead of processing it.Most of the time, that comes down to one of these issues:
X-LiteSpeed-Purge header.Before chasing 403s, make sure the server actually allows LiteSpeed cache and purge.
X-LiteSpeed-Cache, X-LiteSpeed-Cache-Control or X-LSADC-Cache.If you never see any LiteSpeed cache headers, the server may not be running LiteSpeed cache for this vhost.
LITESPEED_ON.LITESPEED_ON is true, the site is running on LiteSpeed and cache can work.NULL or empty, you are not on LiteSpeed Web Server. The plugin can still optimize HTML, but real server-level cache purge will not be available. In that case, this error usually points to a hosting mismatch, not a plugin bug.If the report also shows a warning that “LSCache Module is disabled at the server level”, your host needs to enable the cache module before purge will succeed.
Next, you want to see the full log line around the error. That tells you which URL or header is triggering 403.
X-LiteSpeed-Purge and 403 or “request failed”.Note the request path and query string. For example, it might be a call to /wp-admin/admin-ajax.php with a LSCWP_CTRL=PURGE_ALL parameter, or a front-end URL with cache control flags.
A very common cause is a security layer that thinks purge requests look suspicious and blocks them.
If purge works with security disabled but fails when you turn it back on, you have a rule to whitelist.
Once you know which rule is blocking things, you want to allow:
X-LiteSpeed-Purge response header, and/wp-admin/admin-ajax.php or /wp-admin/admin.php?page=litespeed-toolbox with LSCWP_CTRL in the query string.How you do this depends on the layer:
X-LiteSpeed-Purge appears in the response or when LSCWP_CTRL is on the URL.After whitelisting, purge again and confirm the 403 error no longer shows.
If no security layer is clearly blocking it, the 403 can come from local configuration.
.htaccess file in your site’s root.Deny from all, Require all denied, or rewrite rules with the [F] flag (that flag forces 403).wp-admin/admin-ajax.phpwp-admin/admin.php with LiteSpeed query stringsIf you see a rule that applies to these URLs, try commenting it out or adjusting it so it does not apply to LiteSpeed cache actions. Many security stacks provide example “skip” rules that let you bypass protection for specific query strings.
In your hosting file manager or over SFTP:
755 and files are 644 (or whatever your host recommends).lscache under your document root) is readable and writable by the web server user.If directories or files are too restrictive, LiteSpeed may not be able to read or write what it needs and can throw 403 instead of purging normally.
On more advanced setups, your WordPress installation may sit behind another LiteSpeed or proxy server on a different IP. In that case, the plugin generates purge headers, but they might not reach the LiteSpeed instance that actually holds the cache.
If hitting a simple PHP script that sends header('X-LiteSpeed-Purge: *'); works on the caching server, but pressing “Purge All” in WordPress fails with 403, that is a strong sign of a proxy or routing issue between WordPress and the LiteSpeed instance. Your host will need to align those.
At this point you have:
If the 403 persists, it is likely controlled by server-level settings you cannot see. In your ticket to the host, include:
X-LiteSpeed-Purge request failed (403 Forbidden).X-LiteSpeed-Purge and 403.Ask them to confirm that:
X-LiteSpeed-Purge headers or the Purge URLs.You're in good shape once all of the following are true:
X-LiteSpeed-Cache: hit for cached pages after the first load.Hit Continue Chat below and I’ll walk you through your logs, server environment, and security stack until we track down the exact rule that is causing the 403.
Scroll down to the contact form below. Enter your name, email, and WordPress needs. Atiba will get back to you as soon as possible.
WP Assistant is a free tool created by Atiba Software, a WordPress design and development company located in Nashville, TN. If you need more personalized WordPress assistance let us know, and we’ll get back to you ASAP!