Title: DadsFam Cache
Author: dadsfam
Published: <strong>September 1, 2026</strong>
Last modified: September 1, 2026

---

Search plugins

![](https://ps.w.org/dadsfam-cache/assets/banner-772x250.png?rev=3676543)

![](https://ps.w.org/dadsfam-cache/assets/icon-256x256.png?rev=3676543)

# DadsFam Cache

 By [dadsfam](https://profiles.wordpress.org/dadsfam/)

[Download](https://downloads.wordpress.org/plugin/dadsfam-cache.1.7.1.zip)

 * [Details](https://wordpress.org/plugins/dadsfam-cache/#description)
 * [Reviews](https://wordpress.org/plugins/dadsfam-cache/#reviews)
 *  [Installation](https://wordpress.org/plugins/dadsfam-cache/#installation)
 * [Development](https://wordpress.org/plugins/dadsfam-cache/#developers)

 [Support](https://wordpress.org/support/plugin/dadsfam-cache/)

## Description

DadsFam Cache is a straightforward, no-nonsense performance plugin. It saves ready-
made copies of your pages so repeat visitors skip PHP and the database entirely,
and it ships with a one-click setup that applies safe, sensible defaults for you.

It was built to be understandable by normal humans — every setting is written in
plain English with a short explanation of what it actually does.

#### What you get, free

 * Disk-based full-page caching (serves cached pages before WordPress even boots)
 * Gzip pre-compression of cached pages
 * Browser-cache and compression rules for Apache/LiteSpeed (.htaccess), with a 
   copy-paste NGINX snippet
 * Smart automatic clearing — edit a post and only the affected pages clear
 * Clears the cache automatically after plugin, theme or WordPress updates
 * Sensible exclusions out of the box (cart, checkout, my-account, logged-in users)
 * Ignores tracking parameters (utm_*, fbclid, gclid…) so shared links still hit
   cache
 * Optional separate cache for mobile
 * Cache preloading from your sitemap
 * A dashboard that answers one question first — is my site actually being served
   fast? — in a sentence, with a dial showing how much of your site is saved and
   ready
 * It measures the difference and shows you: your home page loaded twice, once built
   from scratch and once from cache, reported in milliseconds
 * A setup track with a “fix it” button next to anything still outstanding, and 
   a line explaining why each step matters
 * A Support tab with plain-English fixes for the things people actually write in
   about, and a one-line summary of your setup to paste into a support message
 * Runs from an AI assistant on WordPress 6.9+ — see below
 * Built-in cache test, stats and a copy-ready debug panel
 * Settings export/import

The free plugin never phones home. There is no licensing code in it at all.

#### Want more?

**DadsFam Cache Pro** is a separate add-on plugin that installs alongside this one
and adds its tabs to this same settings screen: minification, critical CSS, LCP 
and font optimisation, defer/delay JavaScript, lazy-loading, WebP conversion, CDN
rewriting, database cleanup, Heartbeat control and auto-preload. Grab it from https://
www.dadsfam.co.za/shop/

#### For developers

This plugin is built to be extended. The add-on API:

**Filters**

 * `dadsfam_cache_is_pro` — answer true to unlock Pro-flagged fields
 * `dadsfam_cache_has_addon` — answer true if an add-on is present
 * `dadsfam_cache_page_html` ( $html, $context ) — transform a page before it is
   cached
 * `dadsfam_cache_settings_defaults` ( $defaults ) — register extra settings
 * `dadsfam_cache_sanitize_settings` ( $clean, $raw ) — sanitize them on save
 * `dadsfam_cache_admin_tabs` ( $tabs ) — register settings panels
 * `dadsfam_cache_ajax_tasks` ( $tasks ) — register AJAX handlers (cap + nonce checked
   for you)
 * `dadsfam_cache_admin_localize` ( $data ) — add data for the admin JS
 * `dadsfam_cache_htaccess_rules_before` / `dadsfam_cache_htaccess_rules` / `dadsfam_cache_nginx_snippet`
 * `dadsfam_cache_speed_setup` ( array( $settings, $notes ) ) — contribute to One-
   Click Speed Setup
 * `dadsfam_cache_cache_this_request` ( bool ) — veto caching for the current request
 * `dadsfam_cache_purge_post_paths` ( $paths, $post_id ) — extra paths to clear
 * `dadsfam_cache_preload_urls` ( $urls ), `dadsfam_cache_auto_preload` ( bool )
 * `dadsfam_cache_footer_comment` ( $comment ) — return ” to leave cached pages 
   unmarked
 * `dadsfam_cache_debug_info` ( $rows ) — add rows to the support panel

**Actions**

 * `dadsfam_cache_loaded` ( $version ) — the plugin is wired and safe to extend
 * `dadsfam_cache_purged_all`, `dadsfam_cache_purged_everything`, `dadsfam_cache_purged_post`(
   $post_id, $paths )
 * `dadsfam_cache_settings_saved` ( $settings ), `dadsfam_cache_deactivated`
 * `dadsfam_cache_preload_settings` — print extra fields on the Preload tab

Add-ons should boot on `plugins_loaded` at priority 20 or later. WordPress sorts
active plugins alphabetically, so an add-on’s file may well be _included_ before
this one’s — never touch a `DadsFam_Cache_` class at include time.

Also useful: add `data-no-optimize` to any script or stylesheet tag to have Pro 
leave it alone, `data-no-lazy` on an image to keep it eager, and `define( 'DONOTCACHEPAGE',
true );` to skip caching a request.

#### Works with AI assistants

If you are on WordPress 6.9 or later and have an MCP plugin connected, this plugin
tells your assistant what it can do. You can ask things like “is caching actually
working on my site?”, “why is my change not showing up?”, “how much faster is the
cached version?” or “stop caching the members page”, and it will read the real state
of your site and act on it.

Every action needs the same permission as the settings screen, so an assistant can
never do more than you could. Reading is separated from changing, anything that 
edits a file or slows the site says so first, and removing the caching engine is
not offered at all.

#### A word about PRO

Right, let me be straight with you, because I hate being sold to as much as you 
do.

Everything above is free and it stays free. Caching your pages to disk, gzip, browser-
cache rules, clearing the cache automatically when you change something, preloading
and the one-click setup — none of those are premium features. Those are the things
a cache plugin should just do, and if I put them behind a paywall I would be taking
the mickey.

There is a PRO add-on. It exists because I am a dad in Cape Town, and this is one
of the things that puts food on the table at my house. That is the honest reason.
Not “unlock your potential”, not “supercharge your workflow”. Just: if this plugin
made your site quicker and you can spare it, PRO helps me keep building.

What PRO adds is the heavier optimisation you reach for once the basics are in place—
shrinking and combining your CSS and JavaScript, holding non-critical scripts back
until they are needed, lazy-loading images, serving WebP, pushing static files to
a CDN, and tidying up your database. That is extra speed and convenience. It is 
not the plugin working properly, because the plugin already works properly.

So if the free one does everything you need, brilliant. Genuinely. Use it, and I
hope it takes a load off your server and your visitors’ patience. If you get to 
the point where squeezing out the last few points would help, PRO is at plugins.
dadsfam.co.za.

Either way, thanks for using something I built. — Zak, DadsFam

PRO adds:

 * Minification of CSS, JavaScript and HTML
 * Critical CSS, LCP and font optimisation
 * Defer and delay JavaScript until it is needed
 * Lazy-loading for images and iframes
 * WebP image conversion
 * CDN rewriting
 * Database cleanup and Heartbeat control
 * Automatic preloading after a purge

## Screenshots

[⌊Open it and you know where you stand. One plain sentence tells you whether your
site is actually being served fast, a dial shows how much of it is saved and ready
to go out instantly, and the measured difference sits underneath — your own home
page built by WordPress versus served from cache, in milliseconds.⌉⌊Open it and 
you know where you stand. One plain sentence tells you whether your site is actually
being served fast, a dial shows how much of it is saved and ready to go out instantly,
and the measured difference sits underneath — your own home page built by WordPress
versus served from cache, in milliseconds.⌉[

Open it and you know where you stand. One plain sentence tells you whether your 
site is actually being served fast, a dial shows how much of it is saved and ready
to go out instantly, and the measured difference sits underneath — your own home
page built by WordPress versus served from cache, in milliseconds.

[⌊Every setting in plain English. Each switch says what it does and when you would
want it, not just what it is called.⌉⌊Every setting in plain English. Each switch
says what it does and when you would want it, not just what it is called.⌉[

Every setting in plain English. Each switch says what it does and when you would
want it, not just what it is called.

[⌊Exclusions: the pages that must never be saved. Carts, checkouts and logged-in
visitors are handled for you already — add anything else that is personal to one
visitor.⌉⌊Exclusions: the pages that must never be saved. Carts, checkouts and logged-
in visitors are handled for you already — add anything else that is personal to 
one visitor.⌉[

Exclusions: the pages that must never be saved. Carts, checkouts and logged-in visitors
are handled for you already — add anything else that is personal to one visitor.

[⌊Preloading: warm the cache yourself, so even the first visitor to a page gets 
a quick one.⌉⌊Preloading: warm the cache yourself, so even the first visitor to 
a page gets a quick one.⌉[

Preloading: warm the cache yourself, so even the first visitor to a page gets a 
quick one.

[⌊Tools: export and import your settings, reinstall the caching engine, and copy
a debug summary for support.⌉⌊Tools: export and import your settings, reinstall 
the caching engine, and copy a debug summary for support.⌉[

Tools: export and import your settings, reinstall the caching engine, and copy a
debug summary for support.

[⌊The Support tab: how to reach a real person, a one-line summary of your setup 
to paste into a message, and plain-English fixes for the four things people actually
write in about.⌉⌊The Support tab: how to reach a real person, a one-line summary
of your setup to paste into a message, and plain-English fixes for the four things
people actually write in about.⌉[

The Support tab: how to reach a real person, a one-line summary of your setup to
paste into a message, and plain-English fixes for the four things people actually
write in about.

[⌊The rest of the DadsFam range, the guide sites and hosting, all in one place.⌉⌊
The rest of the DadsFam range, the guide sites and hosting, all in one place.⌉[

The rest of the DadsFam range, the guide sites and hosting, all in one place.

## Installation

 1. Upload the plugin zip via Plugins  Add New  Upload Plugin, then activate it.
 2. If you already run another caching plugin, deactivate that one first — two cache
    plugins on one site causes conflicts. DadsFam Cache will warn you if it spots one.
 3. Go to **DF Cache** in the admin menu and click **One-Click Speed Setup**.
 4. (Optional) For Pro features, install the separate DadsFam Cache Pro plugin alongside
    this one and enter your key on the License tab.

## FAQ

### Will it work on NGINX?

Yes. The page cache works everywhere. Browser-cache rules are added to .htaccess
only on Apache/LiteSpeed; on NGINX the plugin gives you a snippet to paste into 
your server config.

### Does it work with WooCommerce?

Yes. The cart, checkout and account pages are never cached, anyone holding a cart
cookie always gets a live page, and shop/product pages clear automatically when 
stock changes.

### I was on 1.2.x with a license and my Pro features disappeared.

From 1.3.0 the Pro features live in a separate add-on plugin, DadsFam Cache Pro.
Download it from your account and install it alongside this one. Your license key
and every one of your settings are still saved — Pro switches straight back on.

### It says another caching plugin is active. What now?

Deactivate the other plugin first, then run One-Click Speed Setup. Running two page-
cache plugins at once will cause problems.

### Something looks wrong after a Pro feature.

Turn the relevant feature (minify CSS, defer/delay JS) back off, or add the problem
file to its exclusion box. Then clear the cache.

### Does it edit my wp-config.php?

Yes — it adds `define( 'WP_CACHE', true );`, which WordPress requires for page caching
to work at all. The line is marked with our name, written atomically, and removed
cleanly when you deactivate.

### Does this plugin contact any external services?

No third-party services at all. The only HTTP requests it makes go to your own website:
it visits your own pages to warm the cache (preloading), and it fetches one of your
own URLs twice to run a quick self-test that confirms a page is being served from
cache. Nothing is sent off-site, and no data leaves your server.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“DadsFam Cache” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ dadsfam ](https://profiles.wordpress.org/dadsfam/)

[Translate “DadsFam Cache” into your language.](https://translate.wordpress.org/projects/wp-plugins/dadsfam-cache)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/dadsfam-cache/), check
out the [SVN repository](https://plugins.svn.wordpress.org/dadsfam-cache/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/dadsfam-cache/) 
by [RSS](https://plugins.trac.wordpress.org/log/dadsfam-cache/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.7.1

 * Readme only — no code changed. The screenshot captions and the feature list still
   described the dashboard as it was before 1.6.0, so the listing undersold what
   you actually get: the plain-English verdict, the coverage dial, the measured 
   speed difference and the Support tab.

#### 1.7.0

 * You can now run this plugin by talking to an AI assistant. It registers sixteen
   abilities with WordPress (6.9 and up), so an assistant connected to your site—
   through Claude, ChatGPT or anything else that speaks MCP — can check whether 
   caching is actually working, work out why it is not, measure the speed difference,
   clear a page or the whole cache, change settings, manage the never-cache list
   and warm the cache up. No logging in to wp-admin required.
 * Every one of those actions needs the same permission as the settings screen, 
   so an assistant can only do what the logged-in user could already do. Read-only
   actions are marked as such, and anything that writes to a file or slows the site
   down tells the assistant to check with you first. Removing the caching engine
   is deliberately not offered.
 * On WordPress 6.8 and older nothing is registered and the plugin behaves exactly
   as before.

#### 1.6.0

 * The dashboard has been rebuilt. It now opens with one plain sentence telling 
   you whether your site is actually being served fast, and a dial showing how much
   of your site is saved and ready to go out instantly.
 * New: it measures the difference and shows you. The speed test now times your 
   own home page twice — once built from scratch, once served from cache — and reports
   both numbers in milliseconds, so you can see what your visitors get instead of
   taking my word for it.
 * The setup list is now a progress track with a “fix it” button next to anything
   still outstanding, and each step explains in one line why it matters.
 * Quick actions became proper tiles, each saying what it does and when you would
   want it.

#### 1.5.1

 * The section menu down the left has been rebuilt to match the rest of the screen:
   a dark rail with a marker showing where you are, and a small panel at the bottom
   telling you at a glance whether caching is on, how many pages are stored and 
   which version you are running. On a phone or a narrow window it becomes a single
   row you can swipe.
 * Appearance only — no change to caching, settings or your cached files.

#### 1.5.0

 * New Support tab: how to reach a real person, a one-line summary of your setup
   you can copy straight into a support message, and plain-English answers to the
   four things people actually write in about — changes not showing up, the site
   looking broken, carts and checkouts behaving oddly, and how to tell whether caching
   is doing anything at all. Each answer has a button that takes you to the screen
   you need.
 * The “More from DadsFam” list is now a proper set of cards showing the rest of
   the range, with links to the guides and to hosting.
 * No change to caching behaviour, your settings or your cached files.

#### 1.4.1

 * Hardening: every value read from the incoming request is now filtered before 
   use. In particular the server protocol is checked against a fixed list before
   it can reach a response header, so a malicious request cannot inject headers 
   of its own.
 * The page-capture output buffer is now closed explicitly at shutdown instead of
   being left for PHP to unwind, which keeps it aligned with buffers opened by other
   plugins or the theme.
 * No change to settings, cached files or behaviour.

#### 1.4.0

 * Housekeeping release, to meet the WordPress.org naming guidelines. Everything
   the plugin registers inside WordPress — its settings, its scheduled jobs, its
   hooks and its classes — now carries a full-length `dadsfam_cache` name instead
   of the old short `dfc` one, so it cannot collide with another plugin or theme
   on your site.
 * Your settings, licence, preload queue and dismissed notices are moved to the 
   new names automatically the first time the updated plugin loads. Nothing is lost,
   and no cached file is touched — the cache is simply rebuilt fresh. The drop-in
   and per-host config are refreshed to match.
 * Add-on hooks were renamed to match (for example `dfc_settings_saved` is now `
   dadsfam_cache_settings_saved`), so DadsFam Cache Pro must be updated to 1.4.0
   at the same time. If one is updated without the other, Pro simply shows a notice
   instead of loading — nothing breaks.
 * Added a plain-English “A word about PRO” note to the readme — what stays free,
   why the optional add-on exists, and what it does. No features were moved behind
   a paywall.
 * Housekeeping: the readme now lists the current WordPress and PHP versions it 
   is tested against.

#### 1.3.0

**The plugin is now free + Pro as two separate plugins.** This one is the free page
cache and never phones home. Pro features moved to the DadsFam Cache Pro add-on,
which installs alongside it and adds its tabs to the same settings screen. Your 
settings and license key are untouched by the update — install Pro and everything
switches back on exactly as it was.

Fixes and improvements in this release:

 * FIXED: cached pages are now served with an explicit `Cache-Control: public, max-
   age=0, must-revalidate`. Without it browsers guessed a freshness lifetime from
   Last-Modified, so a returning visitor could sit on a stale page for hours after
   you cleared the cache.
 * FIXED: the drop-in no longer sends a Content-Length when PHP’s `zlib.output_compression`
   is on. PHP rewrites the body in that case, so the length described the wrong 
   thing and browsers truncated the page.
 * FIXED: cached pages are served with your site’s actual charset instead of a hardcoded
   UTF-8.
 * FIXED: `Vary: User-Agent` is now sent when the separate mobile cache is on. Without
   it a proxy in front of the site could hand the desktop page to a phone.
 * FIXED: browser-cache rules spelled out `max-age` explicitly. The old `Header 
   set Cache-Control "public, immutable"` overwrote the max-age that mod_expires
   had just set, leaving assets with no freshness lifetime at all — the opposite
   of what browser caching is for.
 * FIXED: `immutable` is no longer applied to images. They carry no `?ver=` cache-
   buster, so re-uploading a photo under the same filename was invisible to returning
   visitors for six months.
 * FIXED: clearing a single page now works for URLs containing `[`, `]`, `*` or `?`.
   The old code used glob(), which silently matched nothing for those slugs.
 * FIXED: advanced-cache.php is written atomically. A visitor whose request landed
   mid-write could previously include a half-written file and fatal.
 * FIXED: minified assets are garbage-collected after 30 days. They are content-
   hashed, so nothing ever removed the old ones and the folder grew forever.
 * NEW: “Clear All Cache”, saving settings, and updates now clear generated assets
   as well as pages.
 * NEW: the generated drop-in config folder is protected from direct HTTP access.
 * NEW: a full add-on API (see the developer notes) — tabs, AJAX tasks, settings
   and the page pipeline are all extension points.
 * NEW: `dadsfam_cache_footer_comment` filter, and the signature comment no longer
   advertises the plugin version.
 * NEW: “Rewrite .htaccess rules” button on the Tools tab.
 * Site-wide purge hooks now go through an argument-safe wrapper, so a WordPress
   hook can never pass a stray value into a purge.
 * Widget changes now clear the cache.
 * Conflict detection covers NitroPack and WP-Optimize, understands multisite network-
   activated plugins, and no longer flags plugins that do not own advanced-cache.
   php.

#### 1.2.2

 * FIXED: The admin-bar “Clear all cache” / “Clear this page” links now return you
   to the exact page you were on. Previously they redirected to the HTTP referer,
   which broke when purging from action endpoints — e.g. clicking purge from the
   plugin-upload screen landed on update.php’s “Please select a file” error. The
   link now carries an explicit return URL, and the handler refuses to bounce back
   to form-target-only endpoints (update.php, admin-post.php, async-upload.php, 
   wp-login.php), falling back to the DF Cache settings page.

#### 1.2.1

 * Security fix: earlier versions saved a wp-config.php backup (wp-config.dfc-backup.
   php) in the web root when enabling caching, which could expose database credentials.
   That backup is no longer created, any existing copy is deleted automatically 
   on update, and wp-config.php is now edited with a safe atomic write that needs
   no backup.

#### 1.2.0

 * New Pro: WebP image conversion, with bulk conversion and auto-conversion of new
   uploads.
 * Added an Images tab with conversion progress, counts and quality control.
 * One-Click Speed Setup now enables WebP serving when the server supports it.

#### 1.1.0

 * New Pro: render-blocking CSS elimination, LCP image optimisation, font optimisation
   and link prefetching.
 * One-Click Speed Setup now enables the LCP, font and prefetch optimisations automatically.

#### 1.0.0

 * Initial release: disk page caching, gzip, browser-cache/.htaccess rules, smart
   purge, exclusions, preloading, stats and cache testing.

## Meta

 *  Version **1.7.1**
 *  Last updated **2 days ago**
 *  Active installations **20+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [cache](https://wordpress.org/plugins/tags/cache/)[caching](https://wordpress.org/plugins/tags/caching/)
   [page cache](https://wordpress.org/plugins/tags/page-cache/)[performance](https://wordpress.org/plugins/tags/performance/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/dadsfam-cache/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/dadsfam-cache/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/dadsfam-cache/reviews/)

## Contributors

 *   [ dadsfam ](https://profiles.wordpress.org/dadsfam/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/dadsfam-cache/)