Plan storage without automatic garbage collection
POM Cache does not run a timer that deletes generated HTML or JSON just because a file is old. Cache files remain reusable until a supported invalidation or manual clear removes them.
What this design means
There is no built-in:
- age-based expiration of origin HTML files;
- age-based expiration of progressive JSON files;
- scheduled garbage-collection sweep;
- automatic preload after deletion;
- directory-wide storage quota.
This is separate from HTTP freshness. A browser or CDN can consider a response stale after max-age, while the origin file remains available for POM Cache to serve on the next request.
How files are removed
Generated files leave the active current-site tree through:
- Delete Cache in HTML tools;
- Delete Progressive JSON Cache in JSON tools;
- the administration-bar shortcut for both;
- enabled post invalidation;
- enabled term invalidation;
- enabled JSON translation invalidation;
- a supported public integration that requests a purge.
If none of those occurs, an old route can remain on disk even when visitors no longer request it.
Common causes of abandoned files
Storage can accumulate after:
- changing a post or term slug while automatic purges are disabled;
- deleting public content outside normal WordPress events;
- changing progressive archive context or items per page;
- removing a language or locale prefix;
- changing a mapped domain or subsite path;
- deploying new templates that produce new JSON context hashes;
- retiring deep archive routes;
- running imports that bypass normal invalidation.
These files do not necessarily affect visitors, but they consume storage and make the status count less representative of the active working set.
Build a monitoring baseline
Under POM Cache → General, record:
- Cache Contents page count and size;
- Progressive JSON Cache Contents file count and size.
Measure after:
- A clean clear;
- Normal traffic has warmed the site;
- A typical editorial cycle;
- A major import, translation batch, or template deployment.
Compare growth with actual route and language changes. A stable large cache can be healthy; unbounded growth without corresponding public demand needs investigation.
Choose a maintenance cadence
A practical cadence is event-based rather than age-based:
- clear after a route or slug migration;
- clear after changing archive structure or batch size;
- clear once at the end of a bulk content operation;
- clear after removing a locale or domain mapping;
- review storage before backups or disk-capacity maintenance;
- perform a controlled clear when obsolete contexts dominate the JSON tree.
Do not clear routinely every hour merely because files exist. Frequent deletion throws away useful warm responses and forces WordPress to regenerate them.
Preserve a coherent final state
For a multi-step migration:
- Complete all source and routing changes;
- Confirm WordPress resolves the new public URLs;
- Clear the affected HTML and JSON stores;
- Request representative origin routes;
- Verify new cache entries and no stale old-route behavior;
- Update server rewrite mappings if the host/path changed;
- Invalidate the CDN's old and new viewer paths as required.
Clearing halfway through can create files from an incomplete intermediate state.
Storage pressure response
If the cache directory approaches a hosting limit:
- Identify whether HTML, JSON, or another application owns the growth;
- Record current POM Cache counts and sizes;
- Use the supported current-site clear for the affected store;
- Repeat per site on multisite rather than deleting the shared root;
- Allow real traffic to rebuild the active set;
- Compare the steady-state size;
- Investigate archive dimensions, payload size, and abandoned route contexts if growth returns.
Do not point a broad operating-system deletion at an unresolved cache root. Current-site tools enforce the product's intended scope.
Plan capacity, not expiry
For JSON, estimate:
active route combinations × average batch size
For HTML, consider the number of eligible canonical page paths visitors reach. Add headroom for a new context or site path to warm before the old one is cleared.
Use Monitor JSON cache size for the JSON dimensions and Understand static HTML cache files for the HTML layout.
The absence of garbage collection is deliberate: POM Cache avoids periodically deleting valid static work. The corresponding responsibility is to make invalidation and storage review part of publishing and migration workflows.