Free plugin

Features

Quick and easy installation/configuration.

Cached files are stored in HTML files, and organized in directories emulating the urls (if "safe_mode" isn't enabled), so it's easy displaying the content of the files and organize them (for instance deleting the cache for a given entry, for all categories, for all searches, for all posts from a given date, etc.)

If "safe_mode" is enabled, the plugin still works, creating all the files in the cache directory.

Management of HTTP headers, that are saved in .txt files after being conveniently modified, for full cached responses.

Option to remove all cache files (or just the expired ones) from the WordPress panel.

Expiration time for cached files.

Rejected and accepted strings in order to control exactly the urls to cache.

Rejected User Agents in order to avoid over-caching from search engines.

If the plugin is going to return the same cache (from the same date) to a user, it returns a 304 header instead.

Even with a different cache, if the content to return is the same (checked through a Etag header with a hash), a 304 header is also returned.

Only GET requests are cached.

Browser super-reload (Ctrl+F5) avoids cached urls.

Compatible with Gzip compression.

Support for dynamic code (mfunc and mclude comments) as in Staticize Reloaded (and later in WP-Cache).

Changelog

Version 2.0.4

Support for WordPress 2.6 cookies (fixes problems with users not being logged-in).

Version 2.0.3

Support for WordPress 2.5 cookies (fixes problems with users not being logged-in).

Version 2.0.2

Now the plugin works with secured sites (HTTPS).

Fixed the bug where the plugin didn't work if "WordPress address" and "Blog address" were different.

Version 2.0.1

Fixed an error that prevented commenters from being cached individually.

Version 2.0

Use of WordPress advanced-cache. The plugin runs before WordPress is fully loaded (less execution time and specially less memory use).

Management of HTTP headers, that are saved in .txt files after being conveniently modified, for full cached responses.

Support for dynamic code (mfunc and mclude comments) as in Staticize Reloaded (and later in WP-Cache).

If Gzip compression is enabled, compressed content is saved in .gz files so it's only compressed once (less execution time and less CPU use). If dynamic code is used, that code is run and only if the final content is different from the already saved it's compressed again for the response.

If you have Gzip compression enabled and you are not using dynamic code, you can set the constant OBC_LOOK_FOR_DYNAMIC_CODE to false in order ro avoid this check.