Title: Batcache
Author: Automattic
Published: <strong>June 20, 2008</strong>
Last modified: March 28, 2020

---

Search plugins

![](https://ps.w.org/batcache/assets/banner-772x250.png?rev=630208)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://s.w.org/plugins/geopattern-icon/batcache_e96e10.svg)

# Batcache

 By [Automattic](https://profiles.wordpress.org/automattic/)

[Download](https://downloads.wordpress.org/plugin/batcache.1.5.zip)

 * [Details](https://pcd.wordpress.org/plugins/batcache/#description)
 * [Reviews](https://pcd.wordpress.org/plugins/batcache/#reviews)
 *  [Installation](https://pcd.wordpress.org/plugins/batcache/#installation)
 * [Development](https://pcd.wordpress.org/plugins/batcache/#developers)

 [Support](https://wordpress.org/support/plugin/batcache/)

## Description

Batcache uses Memcached to store and serve rendered pages. It can also optionally
cache redirects. It’s not as fast as Donncha’s WP-Super-Cache but it can be used
where file-based caching is not practical or not desired. For instance, any site
that is run on more than one server should use Batcache because it allows all servers
to use the same storage.

Development testing showed a 40x reduction in page generation times: pages generated
in 200ms were served from the cache in 5ms. Traffic simulations with Siege demonstrate
that WordPress can handle up to twenty times more traffic with Batcache installed.

Batcache is aimed at preventing a flood of traffic from breaking your site. It does
this by serving old pages to new users. This reduces the demand on the web server
CPU and the database. It also means some people may see a page that is a few minutes
old. However this only applies to people who have not interacted with your web site
before. Once they have logged in or left a comment they will always get fresh pages.

Possible future features:

 * Comments, edits, and new posts will trigger cache regeneration
 * Online installation assistance
 * Configuration page
 * Stats

## Installation

 1. Get the Memcached backend working. See below.
 2. Upload `advanced-cache.php` to the `/wp-content/` directory
 3. Add this line the top of `wp-config.php` to activate Batcache:
 4. define(‘WP_CACHE’, true);
 5. Test by reloading a page in your browser several times and then viewing the source.
    Just above the `</head>` closing tag you should see some Batcache stats.
 6. Tweak the options near the top of `advanced-cache.php`
 7. _Optional_ Upload `batcache.php` to the `/wp-content/plugins/` directory.

#### Memcached backend

 1. Install [memcached](http://danga.com/memcached) on at least one server. Note the
    connection info. The default is `127.0.0.1:11211`.
 2. Install the [PECL memcached extension](http://pecl.php.net/package/memcache) and
    [Ryan’s Memcached backend 2.0](http://svn.wp-plugins.org/memcached/trunk/). Use
    the [1.0 branch](http://svn.wp-plugins.org/memcached/branches/1.0/) if you don’t
    have or can’t install the PECL extension.

## FAQ

  Should I use this?

Batcache can be used anywhere Memcached is available. WP-Super-Cache is preferred
for most blogs. If you have more than one web server, try Batcache.

  Why was this written?

Batcache was written to help WordPress.com cope with the massive and prolonged traffic
spike on Gizmodo’s live blog during Apple events. Live blogs were famous for failing
under the load of traffic. Gizmodo’s live blog stays up because of Batcache.

Actually all of WordPress.com stays up during Apple events because of Batcache. 
The traffic is twice the average during Apple events. But the web servers and databases
barely feel the difference.

  What does it have to do with bats?

Batcache was named “supercache” when it was written. (It’s still called that on 
WordPress.com.) A few months later, while “supercache” was still private, Donncha
released the WP-Super-Cache plugin. It wouldn’t be fun to dispute the name or create
confusion for users so a name change seemed best. The move from “Super” to “Bat”
was inspired by comic book heroes. It has nothing to do with the fact that the author’s
city is home to the [world’s largest urban bat colony](http://www.batcon.org/our-work/regions/usa-canada/protect-mega-populations/cab-intro).

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Batcache” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ Automattic ](https://profiles.wordpress.org/automattic/)
 *   [ Andy Skelton ](https://profiles.wordpress.org/andy/)
 *   [ orensol ](https://profiles.wordpress.org/orensol/)
 *   [ Mark Jaquith ](https://profiles.wordpress.org/markjaquith/)
 *   [ vnsavage ](https://profiles.wordpress.org/vnsavage/)
 *   [ Mohammad Jangda ](https://profiles.wordpress.org/batmoo/)
 *   [ Yoav Farhi ](https://profiles.wordpress.org/yoavf/)

[Translate “Batcache” into your language.](https://translate.wordpress.org/projects/wp-plugins/batcache)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/batcache/), check out
the [SVN repository](https://plugins.svn.wordpress.org/batcache/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/batcache/) by [RSS](https://plugins.trac.wordpress.org/log/batcache/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5

 * Add stats for cache hits
 * PHP 4 constructors are deprecated in PHP7
 * Removed “HTTP_RAW_POST_DATA” variable replaced with input stream check
 * Use Plugins API rather than the global variable
 * Set page gen time to request start if possible
 * Don’t use get_post() when cleaning post cache, use already passed $post object
 * Only cache GET or HEAD
 * Add Opt-in CORS GET request cache.

#### 1.4

 * Misc updates

#### 1.3

 * Code cleanup, multi-dc support improvements

#### 1.2

 * Add REQUEST_METHOD to the cache keys. Prevents GET requests receiving bodyless
   HEAD responses. This change invalidates the entire cache at upgrade time.

#### 1.1

 * Many bugfixes and updates from trunk

## Meta

 *  Version **1.5**
 *  Last updated **6 years ago**
 *  Active installations **800+**
 *  WordPress version ** 3.2 or higher **
 *  Tested up to **5.3.21**
 *  Language
 * [English (US)](https://wordpress.org/plugins/batcache/)
 * Tags
 * [cache](https://pcd.wordpress.org/plugins/tags/cache/)[memcache](https://pcd.wordpress.org/plugins/tags/memcache/)
   [memcached](https://pcd.wordpress.org/plugins/tags/memcached/)[performance](https://pcd.wordpress.org/plugins/tags/performance/)
   [speed](https://pcd.wordpress.org/plugins/tags/speed/)
 *  [Advanced View](https://pcd.wordpress.org/plugins/batcache/advanced/)

## Ratings

 4.5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/batcache/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/batcache/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/batcache/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/batcache/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/batcache/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/batcache/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/batcache/reviews/)

## Contributors

 *   [ Automattic ](https://profiles.wordpress.org/automattic/)
 *   [ Andy Skelton ](https://profiles.wordpress.org/andy/)
 *   [ orensol ](https://profiles.wordpress.org/orensol/)
 *   [ Mark Jaquith ](https://profiles.wordpress.org/markjaquith/)
 *   [ vnsavage ](https://profiles.wordpress.org/vnsavage/)
 *   [ Mohammad Jangda ](https://profiles.wordpress.org/batmoo/)
 *   [ Yoav Farhi ](https://profiles.wordpress.org/yoavf/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/batcache/)