Simple Page Cache
by peterarends on WordPress.org
Simple, blazing fast static page cache for WordPress. Caches HTML for non-logged-in users with intelligent cache clearing for e-commerce sites.
Simple Page Cache is an extremely simple, super-fast page cache for WordPress. The plugin stores full HTML pages on disk for non-logged-in visitors. The cache is automatically cleared when content is updated, ensuring visitors always see fresh content. Ideal for small to medium-sized sites and webshops that want maximum speed without complex settings.
Main features:
– Caching for non-logged-in users (GET requests only)
– Path-based cache structure for nginx direct serving (/host/path/index.html)
– Cache files are stored in /wp-content/uploads/simple-page-cache/
– Drop-in (advanced-cache.php) for maximum speed before WordPress loads
– Nginx configuration generation for direct cache serving
– Automatic cache clearing when posts/pages are updated
– E-commerce integration with intelligent cache clearing for:
– WooCommerce (orders, stock updates, product changes)
– Easy Digital Downloads (purchases, download updates)
– BigCommerce for WordPress (product updates)
– Generic e-commerce plugins (product post types)
– Automatic detection of dynamic pages (cart, checkout, account, wishlist) for:
– WooCommerce
– BigCommerce for WordPress
– Easy Digital Downloads
– iThemes Exchange
– Jigoshop
– WP-Shop
– Detected dynamic pages are automatically excluded from caching
– Manual cache clearing via admin bar button
– Nginx config regeneration via admin bar button
– Performance comments in cached HTML files
– No complex settings, no database writes
Nginx Configuration
For maximum performance, you can configure nginx to serve cached files directly without PHP processing:
- Copy the nginx configuration from
/wp-content/uploads/simple-page-cache/nginx.conf - Add the configuration to your nginx server block for your domain
- Test nginx configuration:
sudo nginx -t - Reload nginx:
sudo systemctl reload nginx
The nginx configuration includes:
– Internal location block for serving cached files
– Automatic cache bypass for logged-in users
– Automatic cache bypass for requests with query strings
– Debug headers to identify cache hits
Benefits of nginx direct serving:
– Faster response times (no PHP processing)
– Lower server load
– Better scalability
– Direct file serving from disk
How it works
- For every non-logged-in visitor and every GET request, a static HTML file is created and served.
- Path-based cache structure: Cache files are organized as
/host/path/index.htmlfor direct nginx serving. - Pages with characteristics of dynamic e-commerce pages (such as cart, checkout, account, wishlist) are automatically detected and excluded from caching. The plugin recognizes WooCommerce, BigCommerce, Easy Digital Downloads, iThemes Exchange, Jigoshop, and WP-Shop.
- The list of excluded pages is automatically maintained in a file in the cache directory.
- Automatic cache clearing: When posts or pages are updated, the plugin efficiently clears cache using the new path-based structure and scans for related content.
- E-commerce integration: For WooCommerce, when orders are placed or product stock is updated, the plugin automatically clears cache for the affected products and related pages (categories, tags, shop pages, homepage).
- Performance comments: Each cached HTML file includes a comment with timestamp and host information for debugging and transparency.
- Nginx integration: Generated nginx configuration allows direct serving of cached files without PHP processing for maximum performance.
Clearing the cache
- Click the “Clear Page Cache” button in the admin bar (visible to administrators only) to remove all cache files.
- Click the “Regenerate nginx.conf” button in the admin bar to regenerate the nginx configuration file.
Deactivation
- When deactivating the plugin:
- The drop-in
advanced-cache.phpis removed. - The
define('WP_CACHE', true);line (if placed by this plugin) is removed fromwp-config.php.
- The drop-in