Title: Warm Cache
Author: ramon fincken
Published: <strong>November 20, 2010</strong>
Last modified: December 2, 2024

---

Search plugins

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

# Warm Cache

 By [ramon fincken](https://profiles.wordpress.org/ramon-fincken/)

[Download](https://downloads.wordpress.org/plugin/warm-cache.4.1.1.zip)

 * [Details](https://li.wordpress.org/plugins/warm-cache/#description)
 * [Reviews](https://li.wordpress.org/plugins/warm-cache/#reviews)
 *  [Installation](https://li.wordpress.org/plugins/warm-cache/#installation)
 * [Development](https://li.wordpress.org/plugins/warm-cache/#developers)

 [Support](https://wordpress.org/support/plugin/warm-cache/)

## Description

Crawls your website-pages based on any XML sitemap. If you have a caching plugin
this will keep your cache warm.
 Speeds up your site. Compatible with following 
elements: < sitemap > < url > All urls in your sitemap will be visited by the plugin
to keep the cache up to date. Will show average page load times and pages visited.

Needs google XML sitemap to read the generated XML file.
 Needs a cronjob (wget 
or curl) to call the plugin. You need to setup the cronjob yourself! (Or ask your
sysadmin to help you). * Coding by: [MijnPress.nl](https://www.mijnpress.nl) [Mastodon profile](https://mastodon.social/@ramonfincken)
[More plugins](https://profiles.wordpress.org/ramon-fincken/) * Crawl script idea
by [http://blogs.tech-recipes.com/johnny/2006/09/17/handling-the-digg-effect-with-wordpress-caching/](http://blogs.tech-recipes.com/johnny/2006/09/17/handling-the-digg-effect-with-wordpress-caching/)

## Screenshots

 * [[
 * Details [Fullscreen Screenshot 1](https://s.w.org/extend/plugins/warm-cache/screenshot-1.png)
 * [[
 * Overview [Fullscreen Screenshot 2](https://s.w.org/extend/plugins/warm-cache/screenshot-2.png)

## Installation

 1. Upload directory `warm-cache` to the `/wp-content/plugins/` directory
 2. Activate the plugin through the ‘Plugins’ menu in WordPress.
 3. Visit Plugins menu to view your Warm cache options.
 4. Run a cronjob. See the menu for the cronjob URL.
    Run it as often as you like, preferably
    more often then your page cache expiration time. Example: Page cache expiration
    = 1 hour, so set your cronjob at 30 minutes. Set it higher when you have lots of
    pages

## FAQ

### I have a BIG sitemap that takes over 5 seconds to load

> use a filter called ‘http_request_timeout’

### I have multiple (language / domain) sitemaps, but I can only add one sitemap!

> Use a sitemap index, pointing to all your (custom/sub)-sitemaps. Only add the 
> sitemap main index file to the plugin. Do NOT have this in the custom file name:
> 
> warmcache-sitemap.xml OR warmcache. Use this for example: supersitemap.xml or 
> my_cache_sitemap.xml

### How to disable logging completely (for very large sites)?

> Set a define in your wp-config (at the top, newline, after <?php ) with name MP_WARM_CACHE_NO_LOGGING_AT_ALL
> and value “yes”
>  Example Please check https://plugins.trac.wordpress.org/browser/
> warm-cache/trunk/readme.txt#L38 DO not copy directly below due to the “curly quotes”
> define(‘MP_WARM_CACHE_NO_LOGGING_AT_ALL’, ‘yes’);

### How to run a cronjob?

> Ask your webhost how to set up a get call using wget or curl. See Installation
> for instructions howmany times you should call the cronjob.

### The plugin shows an error, it cannot read the XML sitemap

> The fact that you are able to “see” the XML in your browser does not guarantee
> that PHP is able to read it too.
>   Consult your host about this, if that fails.
> https://wordpress.org/support/topic/error-with-google-xml-sitemaps/

### Sucuri / Audit log notifies about new posts beeing created

> We use the hidden post type warmcache to store statistics. We also remove them
> upon each crawl.
>  Feel free to ignore creation of posts with warmcache. See https://
> wordpress.org/support/topic/29-september-2016-update-causing-constant-post-update-
> notifications-from-secur/

### I have set up the cronjob but the stats table on the plugin page remains empty.

> @see The plugin shows an error, it cannot read the XML sitemap

### How to override the 20 pages crawl limit

> Set a define in your wp-config (at the top, newline, after <?php ) with name MP_WARM_CACHE_FILTER_LIMIT
> and value INTEGER
>  Example Please check https://plugins.trac.wordpress.org/browser/
> warm-cache/trunk/readme.txt#L58 DO not copy directly below due to the “curly quotes”
> define(‘MP_WARM_CACHE_FILTER_LIMIT’, 25);

### I have a lot of questions and I want support where can I go?

The support forums over here, drop me a toot to notify me of your support topic 
over here.
 I always check my toots, so mention my name with https://mastodon.social/
@ramonfincken and your problem.

## Reviews

![](https://secure.gravatar.com/avatar/ea65f6a01833eb6605bbefd64efbe82c87b0f2c018a5e0e39c4965fe89af62dc?
s=60&d=retro&r=g)

### 󠀁[Works as it should. Great work!](https://wordpress.org/support/topic/works-as-it-should-great-work/)󠁿

 [Marasligil](https://profiles.wordpress.org/marasligil/) June 15, 2023

5 Stars

![](https://secure.gravatar.com/avatar/99bdc5c929a4048fafb3c6e0518931a448341c9e7238610b977be00d443b1f2b?
s=60&d=retro&r=g)

### 󠀁[Works!](https://wordpress.org/support/topic/works-2071/)󠁿

 [mapdi](https://profiles.wordpress.org/mapdi/) November 2, 2022

Works very well. Thanks a lot!

![](https://secure.gravatar.com/avatar/5bce1078ac31462351e5fb98155965b14a1381c579e020f8753f1d056ad77c8c?
s=60&d=retro&r=g)

### 󠀁[Completely unreliable!](https://wordpress.org/support/topic/completely-unreliable/)󠁿

 [leomp203](https://profiles.wordpress.org/leomp203/) December 1, 2021

Cannot do anything with it! Don’t waste your time! The idea is very good, unfortunately
it is very underdeveloped and full of bugs.

![](https://secure.gravatar.com/avatar/3099fedbf9ac7e1f03a1f8fffb36647f1b6fdc691b998c0a48b544d2f6b09e52?
s=60&d=retro&r=g)

### 󠀁[Not for LSCache plugin](https://wordpress.org/support/topic/not-for-lscache-plugin/)󠁿

 [egocefalo](https://profiles.wordpress.org/egocefalo/) September 15, 2021

Litespeed cache plugin has it’s own crawler but a2hosting shared disable litespeed
crawlers, this plugin it’s still working and the log states it visits all urls on
the sitemap by batches of 20 pages. But anyway LSCache still give misses on the 
Warm Cache crawled urls/pages, so it’s not good for that cache plugin. It’s not 
warm cache plugin’s fault since it surely do what it says it does, it crawls. Thank
you!

![](https://secure.gravatar.com/avatar/f8f86e365eaec18ac8118ab34a3a5fa53dcb2fd28b092d281645d240d4b0aad2?
s=60&d=retro&r=g)

### 󠀁[Very Handy](https://wordpress.org/support/topic/very-handy-200/)󠁿

 [cunnningstunts](https://profiles.wordpress.org/cunnningstunts/) August 24, 2019

My cache plugin has a crawler built in, but it can’t be enabled on our server for
reasons. So this plugin is a great alternative. Thank you!

![](https://secure.gravatar.com/avatar/27a48363a37175aee89ee73a9af62c8a2f5ef6137d6de113660e059a7bc3d8bb?
s=60&d=retro&r=g)

### 󠀁[Working](https://wordpress.org/support/topic/working-171/)󠁿

 [Anonymous User 16833488](https://profiles.wordpress.org/anonymized-16833488/) 
June 9, 2019

Work great with cache enabler, but its possible to add only one sitemap, if it were
possible to add others would be much better

 [ Read all 19 reviews ](https://wordpress.org/support/plugin/warm-cache/reviews/)

## Contributors & Developers

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

Contributors

 *   [ ramon fincken ](https://profiles.wordpress.org/ramon-fincken/)

[Translate “Warm Cache” into your language.](https://translate.wordpress.org/projects/wp-plugins/warm-cache)

### Interested in development?

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

## Changelog

#### 4.1.1

Bugfix: PHP fatal for _ vs __

#### 4.1.0

Added: merge 3.1.0 and 4.0.0 to account for the PHP fatal countable

#### 4.0.0

Bugfix: PHP fatal on countable in the crawler

#### 3.1.0

Added: Tranlations
 Added: Link to autowarmcache.com

#### 3.0.0

Bugfix: PHP static notice

#### 2.2.3

Added: Complete rewrite of the crawler, better compatibility with W3TC (permalink)

Bugfix: Statistics Bugfix: PHP static notice

#### 2.2.2

Bugfix: Fixed skipping the first item in sitemap(s). Thanks Jeff (@upekshapriya)
for reporting
 Added: simplexml_load_string function check

#### 2.2.1

Bugfix: PHP notices

#### 2.2

Added: Option to disable logging completely (for very large sites) see FAQ how to
do so

#### 2.1

Bugfix: No gzip compression in ob_start filter
 Bugfix: Devision by zero fixed in
wp-admin statistics page Changed: Added lock transient to prevent multiple warm 
cache calls. You can now call the warm cache every minute 🙂 Added: Override of 
20 pages crawl limit via define. See the FAQ on WordPress.org how to do that.

#### 2.0.1

Bugfix: The crawl key was re-set on every view of the admin page
 Changed: Caching
of results of XML sitemap check is now active

#### 2.0

Added: Staggered crawl, so if you have thousands of posts, the crawl will walk/slide
over those posts in groups of 20 each
 Changed: Deleted all transient options, in
favour of custom post type warmcache storage

#### 1.9.4

Added: Debug notices when a sitemap is incorrect

#### 1.9.3

Needs re-work: Bugfix: Transients without expiration (if you have no external non-
persistant storage your options table will grow), Props M. Bastian

#### 1.9.2

Added: Toggle flush settings

#### 1.9.1

Added: Transient check for correct syntax of sitemap
 Added: Admin notices when 
sitemap is not present or currupt

#### 1.9

Changed: Better handling of pre-checks
 Changed: Changed API key change message

#### 1.8.1

Added: Flush to prevent loadbalancer/proxy timeout see https://wordpress.org/support/
topic/needs-flush-to-write-buffers-to-prevent-timeouts

#### 1.8

Added: Sitemap url override
 Changed: Info txt in plugin Changed: Refresh random
token Added: Cron service link

#### 1.7

Bugfix: Extra if/else for zero pages to fix x/0 errors. Thanks to khromov https://
wordpress.org/support/topic/division-by-zero-2 https://wordpress.org/support/profile/
khromov

#### 1.6

Added: Support for sub-sitemaps using < sitemap > format (as used in Beta of Google
XML sitemaps). Thanks to Pascal90.de!

#### 1.1.2

Changed: Random password call as mentioned by swanzai https://wordpress.org/support/
topic/plugin-warm-cache-how-to-call-this-plugin-correctly

#### 1.1

First release

## Meta

 *  Version **4.1.1**
 *  Last updated **1 year ago**
 *  Active installations **300+**
 *  WordPress version ** 3.5 or higher **
 *  Tested up to **6.7.5**
 *  Language
 * [English (US)](https://wordpress.org/plugins/warm-cache/)
 * Tags
 * [cache](https://li.wordpress.org/plugins/tags/cache/)[keep](https://li.wordpress.org/plugins/tags/keep/)
   [sitemap](https://li.wordpress.org/plugins/tags/sitemap/)[xml](https://li.wordpress.org/plugins/tags/xml/)
 *  [Advanced View](https://li.wordpress.org/plugins/warm-cache/advanced/)

## Ratings

 4.3 out of 5 stars.

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

[Your review](https://wordpress.org/support/plugin/warm-cache/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/warm-cache/reviews/)

## Contributors

 *   [ ramon fincken ](https://profiles.wordpress.org/ramon-fincken/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/warm-cache/)