« Speed Tips: Add Cache-Control HeadersUpdated robots.txt for WordPress »
Hack WP-Cache for Maximum Speed
March 11th, 2008
Contents
If you desire SPEED from your WordPress blog, the #1 speed improvement comes from using the WP-Cache Plugin. However, if you still desire even more speed after installing the Plugin, you can modify the WP-Cache Plugin code run even faster!
WP-Cache Speed Hack Results
WP-Cache Off
WP-Cache Default Settings
WP-Cache With wp-cache-phase1.php Hack
WP-Cache With Full Hack
These results came from the Cacheability Checker. Yslow for firefox is what you need today.
Manual Instructions for hacking wp-cache
First you should download and activate the WP-Cache Plugin, then enable it in your Options Configuration Panel for WP-Cache.
Open wp-cache-phase1.php
Find
/* No used to avoid problems with some PHP installations
$content_size += strlen($log);
header("Content-Length: $content_size");
*/
Replace with
// BEGIN AskApache WP-Cache hack
$content_size += strlen($log);
header("Content-Length: $content_size");
// END AskApache WP-Cache hack
Open wp-cache-phase2.php
Find
/* Not used because it gives problems with some
* PHP installations
if (!$response{'Content-Length'}) {
// WP does not set content size
$content_size = ob_get_length();
@header("Content-Length: $content_size");
array_push($wp_cache_meta_object->headers, "Content-Length: $content_size");
}
*/
Replace with
// BEGIN AskApache WP-Cache Hack
if (!$response{'Content-Length'}) {
$content_size = ob_get_length();
@header("Content-Length: $content_size");
array_push($wp_cache_meta_object->headers, "Content-Length: $content_size");
}
// END AskApache WP-Cache Hack
Find
if (!$response{'Content-Type'}) {
$value = "text/html; charset=\\"" . get_settings('blog_charset') . "\\"";
@header("Content-Type: $value");
array_push($wp_cache_meta_object->headers, "Content-Type: $value");
}
After Add
// BEGIN AskApache WP-Cache Hack
if (!$response{'Cache-Control'}) {
$value = "max-age=$cache_max_time, public";
@header("Cache-Control: $value");
array_push($wp_cache_meta_object->headers, "Cache-Control: $value");
}
// END AskApache WP-Cache Hack
Download the Modified WP-Cache Plugin
Just download and install as if it were the actual WP-Cache Plugin.wp-cache.zip | wp-cache.rar
Want More Speed?
Then check out the other speed articles on AskApache.
- Turn On Compression
- Add Future Expires Header
- Add Cache-Control Headers
- Turn Off ETags
- Remove Last-Modified Header
Or just add this to your blogs .htaccess file.
# HEADERS and CACHING # 1 YEAR <filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "public" Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT" Header unset Pragma Header unset Last-Modified Header unset ETag FileETag None </filesMatch> # 2 DAYS <filesMatch "\.(xml|txt)$"> Header set Cache-Control "max-age=172800, public, must-revalidate" Header unset Pragma Header unset Last-Modified Header unset ETag FileETag None </filesMatch> # 2 HOURS <filesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=7200, must-revalidate" Header unset Pragma Header unset ETag FileETag None </filesMatch> # COMPRESSION <filesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </filesMatch>
Reader Comments
-
Seems the Heade modifications doesnt work on my hosts apache server. too bad. If I modify the code as describet manual, the pages are shown as source html. and if i download your version i get this error: Fatal error: Class 'CacheMeta' not found in /www/public_html/w0098a5f/wp-content/plugins/wp-cache/wp-cache-phase2.php on line 39 I use WordPress 2.6 and PHP 5. Any time for suggestions how i can check if i can enable header stuff at my provider ? thank you
-
How does this work with the speedy cache plugin url=aciddrop.com ?
