WP Super Cache Not Deleting Expired Pages? How to Fix It (2026)
Is WP Super Cache not deleting expired pages, so visitors still see old versions of your posts or theme? It happened to us in 2008: after a template change, the WP Super Cache admin panel was stuck showing 1,183 expired files, and many pages kept showing the old design no matter which delete button we pressed. The plugin has improved a lot since then, but stale cached pages are still one of the most common WP Super Cache problems. Here’s why it happens and how to fix it in 2026.

Quick answer: WP Super Cache deletes expired pages through garbage collection, which runs on WP-Cron. If WP-Cron doesn’t run (low traffic, or DISABLE_WP_CRON without a real cron job), expired files pile up. Fix it by setting a cache timeout and timer under Settings > WP Super Cache > Advanced > Expiry Time & Garbage Collection, making sure WP-Cron runs, clicking Delete Cache, and then clearing any CDN or browser cache.
Table of Contents
Why WP Super Cache is not deleting expired pages
- WP-Cron isn’t running: garbage collection is a scheduled task. On quiet sites, or when cron is disabled in
wp-config.php, it may never fire. - Cache timeout set to 0: a timeout of 0 means pages never expire, so nothing is cleaned up automatically.
- File permission problems: if the web server can’t delete files in
wp-content/cache/, expired pages stay. Our 2008 cache had folders with odd names (with triple backslashes) that couldn’t be deleted by FTP. - A broken advanced-cache.php: leftover files from another caching plugin can stop WP Super Cache from managing the cache properly.
- A CDN or browser cache: sometimes WP Super Cache did delete the page, but Cloudflare, your host’s CDN or the visitor’s browser still serves an old copy.
How to fix WP Super Cache not deleting expired pages
1. Set expiry time and garbage collection
Go to Settings > WP Super Cache > Advanced. Under Expiry Time & Garbage Collection, set a Cache Timeout (for example 3600 seconds for a busy blog, or 86400 for a site that rarely changes), choose a Timer interval for garbage collection, and save. Also tick Clear all cache files when a post or page is published or updated on the same page.
2. Make sure WP-Cron runs
Open Tools > Site Health and check for scheduled event warnings. If your wp-config.php contains define( 'DISABLE_WP_CRON', true );, add a real server cron job that calls wp-cron.php every 5 to 15 minutes, for example in cPanel’s Cron Jobs:
*/10 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&13. Delete the cache manually
On the Easy tab, click Delete Cache, or use Delete Cache in the admin toolbar. If the counter of expired pages doesn’t drop, delete the contents of wp-content/cache/supercache/ using your host’s File Manager or SSH (rm -rf), which can remove folders that FTP clients refuse to delete.
4. Fix permissions and advanced-cache.php
- The
wp-content/cachefolder should be writable by the web server (usually 755 folders, 644 files). Never leavewp-contentat 777. - Deactivate WP Super Cache, delete
wp-content/advanced-cache.phpand any leftover cache folders from other plugins, then reactivate. WP Super Cache recreates the file and addsdefine( 'WP_CACHE', true );towp-config.php. This was the fix that finally worked for us in 2008.
5. Update the plugin, don’t roll back
In 2008 we temporarily went back to an older version from the WordPress plugin archive. Today, it’s safer to update to the latest version of WP Super Cache (external site), which Automattic still maintains, because old versions may have security issues.
6. Purge your CDN and browser cache
If you use Cloudflare, a host CDN or Amazon CloudFront, purge it after clearing WP Super Cache. See how to clear CloudFront cache. Then test in a private browser window.
Use preload to avoid stale pages
On the Preload tab, WP Super Cache can rebuild the cache for all posts on a schedule. With preload on, pages are refreshed regularly instead of waiting for visitors, which keeps the cache fresh after theme changes. Preloading thousands of pages uses server resources, so set a sensible interval on shared hosting.
Our experience with WP Super Cache
WP Super Cache helped QOT survive traffic spikes on shared hosting for years, and we listed it among our most essential WordPress plugins. We also wrote about our earlier WP Super Cache errors and fixes. Today our site runs on a LiteSpeed server with LiteSpeed Cache, but the same rule applies to any caching plugin: when pages look outdated, check expiry settings, cron and your CDN.
Frequently asked questions
How often does WP Super Cache delete expired pages?
As often as the garbage collection timer you set, provided WP-Cron runs. Without traffic or a server cron job, it can be delayed.
Is it safe to delete the wp-content/cache folder?
Yes. It only contains cached copies of pages. WP Super Cache rebuilds them as visitors arrive or during preload.
Why do I still see the old page after deleting the cache?
Your browser or a CDN is probably serving an older copy. Purge the CDN and do a hard refresh.
Should I use WP Super Cache in 2026?
It’s still a good free option on Apache or Nginx hosting. If your host runs LiteSpeed, LiteSpeed Cache is usually faster.
Stuck on a gift? Try our free Gift Idea GeneratorIdeas for anyone by age, job, interests and budget, with Amazon.com and Amazon.in linksFind gifts →Get our free weekly email: new tech guides and tools, no spam.
New and updated tech guides, a free tool worth bookmarking and one useful pick, once a week. No spam, unsubscribe anytime.
One email a week. Unsubscribe anytime. See our privacy policy.







I had some caching issues with WP-Cache and reinstalling solved the issue.
Works fine here on my blog. Maybe double check again the htaccess file and ask SuperCache to regenerate it?
QOT – hopefully we can get to the bottom of this problem. Did you notice anything in your logs?
@Baz – Did you change your directory structure recently? Stick the blog in a different folder? Switched hosting or accounts? – None of that.
@Donncha – its great to see the plugin author drop by and take feedback so seriously. You have created an incedible plugin and we cant thank you enough.
hmm thanx :)
I did have recent issue with WP-SuperCache but that was because I had recently switched hosting. The symlink file: advanced-cache.php had my old path in it and that was causing issues (similar to yours).
Did you change your directory structure recently? Stick the blog in a different folder? Switched hosting or accounts?
Check your access logs for that url – is there an entry with odd characters at the end? AFAIR, the plugin should remove those characters, but I’ll check that code again. Thanks for digging deeper into the problem!
Hey, I am using WP-Cache From and that works without any problems. You should try it out i suppose
I did install it once but delete after a while as it make my tweaks slower. I have no idea about this