Hack WP-Cache for Maximum Speed

FREE THOUGHT · FREE SOFTWARE · FREE WORLD

Hack WP-Cache for Maximum Speed

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 Off

WP-Cache Default Settings
WP-Cache On Defaults

WP-Cache With wp-cache-phase1.php Hack
WP-Cache With wp-cache-phase1.php Hack

WP-Cache With Full Hack
WP-Cache with Full AskApache 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.

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>
Share and Enjoy:
  • Twitter
  • StumbleUpon
  • Digg
  • del.icio.us
  • LinkedIn
  • Slashdot
  • Technorati

«
»

Skip to Comments

Add Your Opinion

Reader Comments

  1. cekay ~

    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/htdocs/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

  2. milo ~

    How does this work with the speedy cache plugin url=aciddrop.com ?


It's very simple - you read the protocol and write the code. -Bill Joy

HTML | DCMI | GRDDL | XOXO | XDMP | XFN | DOM | XML | XHTML 1.1 Strict | CSS 2.1 | W3C | TLDP | WAI | DISA | ICSI | GIAC | SANS RR | GHOST | DEFCON | NIST | DHS CYBER | NIST

↑ TOPExcept where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, just credit with a link.
This site is not supported or endorsed by The Apache Software Foundation (ASF). All software and documentation produced by The ASF is licensed. "Apache" is a trademark of The ASF. HTTPD based on NCSA HTTPd

Site Map | Contact Webmaster | Email AskApache | Glossary | License and Disclaimer | Terms of Service