2026-10-07 08:10:26 +00:00
|
|
|
# Nolimit Cache
|
|
|
|
|
|
|
|
|
|
A page cache and front-end optimiser for WordPress and WooCommerce. It answers
|
|
|
|
|
a visitor's request from a file on disk before WordPress boots, and it knows
|
|
|
|
|
enough about WooCommerce not to do that to a customer holding a basket.
|
|
|
|
|
|
|
|
|
|
It is one of a family of Nolimit plugins that share an admin menu and a
|
|
|
|
|
dashboard. [Hooks and integration](CONTRACT.md) lists what it offers to the
|
|
|
|
|
others, and to your own code.
|
|
|
|
|
|
|
|
|
|
## What it does
|
|
|
|
|
|
|
|
|
|
- **Page cache.** An `advanced-cache.php` drop-in serves a stored copy of a
|
|
|
|
|
page. This runs before the theme, the plugins and most of WordPress, which
|
|
|
|
|
is where the speed comes from and also why it has to be careful.
|
|
|
|
|
- **Object cache.** An optional `object-cache.php` drop-in backed by Redis.
|
|
|
|
|
- **Front-end optimisation.** Defers scripts, drops WordPress's emoji and
|
|
|
|
|
oEmbed machinery, and can rewrite asset URLs to a CDN.
|
|
|
|
|
- **Images.** Writes WebP (and optionally AVIF) copies beside JPEG and PNG
|
|
|
|
|
files and offers them with `<picture>`, so the page cache stays correct for
|
|
|
|
|
every browser. Originals are never touched.
|
|
|
|
|
- **Preloading.** Walks a queue of URLs on a five-minute cron so the first
|
|
|
|
|
real visitor does not pay for the first render.
|
|
|
|
|
- **Purging.** Clears the right pages when a post, a term, a comment or a
|
|
|
|
|
WooCommerce product or order changes.
|
|
|
|
|
- **Health checks and an assistant.** A set of signals about whether the cache
|
|
|
|
|
is actually working, and an ask-box on the admin screens.
|
|
|
|
|
|
|
|
|
|
## What it deliberately does not do
|
|
|
|
|
|
|
|
|
|
- **No minification or concatenation.** Those break themes in ways that are
|
|
|
|
|
expensive to debug and are better handled by a build step.
|
|
|
|
|
- **No CSS "critical path" extraction.** Same reason.
|
|
|
|
|
- **No telemetry of any kind.** Nothing is reported anywhere. The only
|
|
|
|
|
outbound requests are the update check against gitea.nolimit.dk and an AI
|
|
|
|
|
provider if, and only if, one has been configured with a key.
|
|
|
|
|
- **No account, no licence check, no phone-home.**
|
|
|
|
|
|
|
|
|
|
## Where things are
|
|
|
|
|
|
|
|
|
|
| | |
|
|
|
|
|
|---|---|
|
|
|
|
|
| Admin screen | **Nolimit → Cache** |
|
|
|
|
|
| Settings | one option, `nlcac_settings` |
|
|
|
|
|
| Engine config | `wp-content/cache/nolimit/config.php`, written from the settings |
|
|
|
|
|
| Drop-ins | `wp-content/advanced-cache.php`, `wp-content/object-cache.php` |
|
|
|
|
|
| REST namespace | `nlcac/v1` |
|
|
|
|
|
| Requires | WordPress 6.0, PHP 7.4. WooCommerce optional |
|
2026-10-08 16:57:33 +00:00
|
|
|
| Version | 0.3.2 |
|
2026-10-07 08:10:26 +00:00
|
|
|
|
|
|
|
|
## Reading order
|
|
|
|
|
|
|
|
|
|
1. [Installing it, and telling whether it works](SETUP.md)
|
|
|
|
|
2. [Hooks and integration](CONTRACT.md), for developers
|