REST API Caching Plugin for WordPress

Fast REST API,
the way it should be.

FrostyCache caches WordPress REST API responses as static JSON files and serves them before the database even loads.

~14ms
Cache Hit Response
10-15×
Faster Than DB Caching
18+
Hooks & Filters
HTTP Response Headers
HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 X-FrostyCache: HIT ETag: “a3f2b8c91d4e7f05” Cache-Control: max-age=86400 X-Response-Time: 14ms

Skips the database entirely.

Most cache plugins store data in the database and still require WordPress to fully boot. FrostyCache intercepts requests at the earliest possible stage and serves JSON files before WordPress even connects to the database.

Request Lifecycle
1
Incoming REST API Request GET /wp-json/wp/v2/posts
2
Advanced Cache Intercept Before plugins, themes, or DB load
Cache Hit
Serve from disk ~14ms response
Cache Miss
Pass to WordPress Cache response for next time
4
ETag Validation 304 Not Modified if unchanged

Pre-Database Serving

Cached responses are served as static JSON files before WordPress even connects to MySQL. Zero database overhead on cache hits.

Automatic Cache Building

First request to any GET endpoint is served normally and cached. Subsequent requests are served from disk at filesystem speed.

Smart Invalidation

When a post is updated, only the cache files containing that post are deleted — not a broad flush. Tracked via post meta associations.

=

ETag & 304 Responses

Clients sending If-None-Match get a 304 with no body. Saves bandwidth for mobile apps and SPAs that poll endpoints.


Built for Headless WordPress.

Everything you need to make your REST API endpoints respond at edge-like speeds, with zero configuration required.

Pre-Database Speed

Responses are intercepted and served before WordPress boots. ~14ms response times on cache hits.

ETag Support

MD5-based ETags on every cached response. Clients get 304 Not Modified when content hasn’t changed — saving bandwidth and parsing time.

Smart Invalidation

Post meta tracks which cache files contain which posts. Updates only purge affected files, not the entire cache.

🔌

18+ Hooks & Filters

Full control over cache lifecycle, key generation, skip logic, custom headers, ETags, and per-route cache duration.

🚫

Logged-In Users Skipped

Respects WordPress no-cache headers. Authenticated requests bypass cache entirely — no stale user-specific data.

👁

Cache Observability

Every response includes X-FrostyCache: HIT|MISS|BYPASS. Verify behavior in DevTools or monitoring tools.


Works with your eCommerce stack.

Speed up your headless storefront with cached product catalogs, categories, and any public endpoints so your frontend loads instantly.

WooCommerce

Accelerate your storefront with instant product and catalog delivery.

Supported
CoCart

Lightning-fast headless cart and product API responses.

Supported
FluentCart

Accelerate your storefront with instant product and catalog delivery.

Supported
Easy Digital Downloads

Make download pages and product browsing feel instant.

Supported

There’s no competition at this layer.

WP REST Cache is the only direct competitor. Full-page cache plugins don’t understand REST API endpoints, JSON responses, or headless architectures.

Feature FrostyCache WP REST Cache
Cache hit speed~14ms (pre-database)~200ms+ (database)
StorageStatic JSON files on diskDatabase transients
ETag / 304 support Built-in None
Cache invalidationPrecise (meta-based)Broad flush (precise in Pro)
WooCommerce supportDedicated moduleGeneric
CoCart support Native None
Custom endpoint cachingAutomatic for any GETManual registration
Hooks & filters18+5
WP-CLI commandsflush, clear-post, status, cleanupflush
Multisite Per-site dirs Supported
PriceFrom $59.99/yrFree (Pro for advanced)

Filters, CLI, no admin UI required.

Configuration through code, not clicks. Built for developers building Headless WordPress applications with Next.js, Nuxt, React, or any frontend framework.

functions.php
// Custom cache duration for a specific route add_filter( ‘frostycache_cache_age’, function( $seconds, $route ) { if ( str_contains( $route, ‘/products’ ) ) { return 3600; // 1 hour for products } return $seconds; }, 10, 2 ); // Skip caching for a specific endpoint add_filter( ‘frostycache_skip_cache’, function( $skip, $uri ) { if ( str_contains( $uri, ‘/private’ ) ) { return true; } return $skip; }, 10, 2 );
$ wp frostycache flush

Purge the entire cache. All cached JSON files are deleted.

$ wp frostycache clear-post 42

Clear cache files associated with a specific post ID.

$ wp frostycache status

Show cache file count, total size, and cache directory path.

$ wp frostycache cleanup

Remove expired cache files based on their TTL settings.


Ready to freeze your API?

Start serving REST API responses at filesystem speed. From $59.99/year.