WP Super Cache Scheduler and Admin Bar Link

I made a few changes to WP Super Cache over the last week. The garbage collection user interface received an overhaul and it’s now possible to schedule the those jobs using a timer or a clock. It can also send you an email each time it runs!

Another major change was the addition of a “Delete Cache” link on the admin bar for logged in users. This may seem strange, but it will only show if you have disabled caching for known users. Unfortunately this is needed because of the security measures required. It only deletes the supercache file(s) for the current page, not any legacy files associated with it.

If you’re feeling adventurous go download the development version from this page and give it a whirl. I really need feedback that this works well so please leave a comment if you try it.

The version number won’t change and when the next release comes out you’ll still get the upgrade notification!

Bye Bye Digg, Hello Stephen Fry!

Last week The Hibbs Lupus Trust posted a tweet thanking various people after their site was mentioned in a tweet by Stephen Fry. Lupus is a horrible condition and the Trust aims to help raise awareness of it, support sufferers and help GPs diagnose it.

Lupus causes the body’s immune system to go into overdrive and starts to attack itself. It is believed that over 50,000 people throughout the UK suffer with Lupus of whom 90% are female. The symptoms are many and varied, and the condition often seems to mimic other diseases. This gives rise to difficulty in diagnosis and the condition can be overlooked for years, unless the GP or consultant is alert to the possibility of lupus.

The Trust’s website must have experienced a torrent of traffic because Mr Fry is followed by gazillions of people and the tweet was retweeted by over 100 of his followers. The website stayed up and I’m glad that WP Super Cache played a part in helping them.

I wanted to mark the occasion of a website getting a Frying and surviving so I changed the “Digg proof” message in the plugin to “Stephen Fry Proof”. Download the development version from this page if you want a look. The link in the admin page goes to the Trust’s tweet so I hope I can play a small part in spreading the word.

Of course, just because you’re using this plugin is no guarantee that your site will survive a mention by Mr Fry or any other celebrity on Twitter (especially if your hosting is simply too limited) but With WP Super Cache at least it has a fighting chance!

BONUS: In case you didn’t see it, here’s Stephen Fry ag caint as Gaeilge (talking in Irish) as he appeared on an Irish language tv programme a while back:

Preload categories and custom post content

The never ending journey to WP Super Cache 1.0 continues. Go grab the development version of the plugin on the download page as there have been a few changes since my last post (where I announced support for mixed https sites among other things).

Some of the changes:

  • The cache preloader will now preload tags and categories pages (and whatever other taxonomy you want by using the wp_cache_preload_taxonomies filter). It should also preload pages with custom post types, but I haven’t tested that yet as I don’t have any such pages here. I hope Adam does at least!
  • You should be able to delete files from the cache file listing again.
  • You can make “known users” anonymous so they’re served Supercache cache files. Logged in users will appear logged out and users who leave comments won’t have the comment form filled in however.
  • And quite a few more bugfixes.

Only thing is, I need your help. The development version is running on this multisite install of WordPress and it’s working fine but I really need feedback, especially before 1.0 comes out.

So, if you’re comfortable with WordPress please go visit the download page and install the development version. Thanks!

Get a sneak preview of WP Super Cache before 1.0!

WP Super Cache 1.0 will be out soon(ish) but I need testers to bang on the development version available on the download page.

This version should be significantly faster if you have a lot of mobile visitors, plus it adds support for https secure pages. The speed came about by saving those files as static files in the supercache directories rather than the old “legacy caching” of WP Cache. You’ll see files like index-mobile.html(.gz) and index-https.html(.gz) in those directories. Be aware that if you use a flat permalink structure the plugin opens the root supercache directory for reading to find the index* files. This may or may not be an issue with directories containing a very large number of directories (10,000+ for example).

HTTPS support is built into the mod_rewrite rules so those files are served by the web server directly, but PHP serves the mobile clients. Only now you’ll be able to cache many times more mobile pages than before. There’s negligible speed difference between PHP and mod_rewrite modes anyway in normal operation.

There’s also a handy little “donotcachepage” GET parameter now. Add that, giving it the value of a secret key from the Advanced settings page and the current page will not be cached in any way.

There is lots of new code in the plugin. It’s running fine here, and a few other people have had no problems but I need more feedback. If you have a development server please give this a go, and if it works ok I believe it’s good enough to go live, under supervision. Don’t go install it on a Friday afternoon…

With the upgrade to WordPress 3.2 I moved this site and my photoblog to a Multisite install so I’ve been looking at making Supercache work better in that environment too.

I also installed Varnish as a front end cache and woah, I’m impressed. Setup was fairly easy though it’s still not 100% right. When I make posts the following page is a blank page except for the blog title, and when I (as a logged in user) leave a comment I get a 500 error and wp-comments-post.php doesn’t redirect. I’m still trying to debug those issues. I mentioned this on Google Plus a few days ago but expect a follow up post on Varnish with docs in the near future.

Now all I need is traffic. I should blog more!

WP Super Cache 0.9.9.8

WP Super Cache is a full page caching plugin for WordPress that makes your website run much faster!

Version 0.9.9.8 has been released and has a number of bug fixes and changes including:

  1. CDN updates: it can be switched off. Multiple CNAMEs can be used for serving static content to improve performance.
  2. Uninstall process improved. Files that the plugin creates are removed, and the wp-config.php and .htaccess files are fixed. If the plugin can’t do any of these steps it will display a message explaining what to do.
  3. Cached dynamic pages can now be stored in Supercache files and compressed. No need to use legacy caching any more.
  4. 1and1 Webhosting fix. They use “/kunden/” in some of their paths but not others.
  5. I removed the “log by email” functionality as it caused problems for users who were inundated by email.
  6. Many more minor fixes and changes.

The old uninstall process has been completely revamped. Now all you need to do is deactivate it on the plugins page. It will then remove wp-cache-config.php and advanced-cache.php. It will also remove the extra code it added to wp-config.php and the .htaccess file. On the off chance it can’t remove those files it will print a helpful message asking you to fix the problem. Unfortunately this class of plugin (full page caching plugins) are by design more complicated than regular plugins and are more invasive.

Got a problem with the plugin? Use the support forum please. Support queries posted here may be ignored or deleted.

Better uninstall for Supercache and other things

I need your help. Go grab the development version of WP Super Cache off the download page and give it a whirl. I’m working on making the uninstall process less painful than it is in the current release.

I added an action on the deactivate hook for the plugin so when you deactivate it on the Plugins page it deletes the files the plugin created and removes the WP_CACHE definition from wp-config.php. It doesn’t yet remove the mod_rewrite rules from the .htaccess file though. Sometimes people put the WordPress rules in the same block of that file so removing the rules would stop the site serving requests! I will of course gladly accept code patches to do that job.

No more messing with uninstall.php now, just deactivate on your plugins page.

Besides that, the CDN page has an on/off switch and can use multiple hostnames now. The cache can be cleared when caching is disabled and dynamic pages can be served by using PHP mode rather than the slower “legacy mode”.

There are also numerous bug fixes so if you have a development site and a few minutes to spare why not give this a go? Please?

WP Super Cache 0.9.9.7

WP Super Cache is a full page caching plugin for WordPress that makes your website run much faster!

I’ve just released a new version and the biggest change in this one is the addition of Content Delivery Network (CDN) support thanks to Mark Kubacki who allowed me to integrate his OSSDL CDN Off Linker plugin. (Please go visit his blog and say thank you if you use this feature!)

The CDN support simply rewrites images, CSS and Javascript files so they point at a different hostname. That hostname can be another virtual host on your own server (aka “Poor Man’s CDN”) pointing at your WordPress install or a fully fledged CDN. If your CDN supports “origin pull” then all the files on your server will be copied there as they are requested by visitors. Otherwise you’ll have to transfer the files over manually.

Apart from that, bugs have been fixed, a few features have been tweaked including the uninstall script which has been streamlined somewhat.

I also added links (on the “Easy” settngs page) to some plugins and tools you may find useful in making your site run faster.

Problems? Go to the forum and someone may already have had that problem and solved it. If not, post there and you’ll get a reply.

WP Super Cache and mod_pagespeed

So I finally got a chance to try mod_pagespeed on this server. I particularly wanted to know if it behaved well with WP Super Cache as I’d read reports that it causes problems.

Unfortunately those problems are real but I’ve been told that a new release will be out shortly to address a few bugs so perhaps this will help.

If you’d like to try mod_pagespeed make sure you disable compression in WP Super Cache and clear the cache first. Even though the docs state that the module always generates uncompressed HTML it appears to do the opposite. In fact, it tries to load mod_deflate:

# more pagespeed.load
LoadModule pagespeed_module /usr/lib/apache2/modules/mod_pagespeed.so

# Only attempt to load mod_deflate if it hasn’t been loaded already.
<IfModule !mod_deflate.c>
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
</IfModule>

When things were working, supercached files were processed by mod_pagespeed correctly, I noticed inline Javascript was modified to remove whitespace and I presume other changes were made too but I already minify things and have static files off on another domain so perhaps the changes made on my pages are less minimal.

The changes made by mod_pagespeed, like minifying inline Javascript, are not cached by WP Super Cache so your server has to make these changes each time a page is served. I know that mod_deflate does not cache the gzipped page content, but zips up the page each time it’s served. Mod_pagespeed does however provide a caching mechanism so there’s a good chance those changes are cached there. I haven’t looked at the code so I don’t know.

I did have problems with dynamic pages. A simple phpinfo() refused to load quite often, and backend requests sometimes became stuck. Load on the server sky rocketed occasionally, usually when the module cache directory was emptied.

For now I’ve turned mod_pagespeed off but that might change as this is a young project and maturing fast! I’ll update this post whenever this happens.

More plugins releases soon

WP Super Cache, Domain Mapping and Sitewide Tags are all getting quite some attention.

Ron and I have been busy with Domain Mapping and Sitewide Tags.
A new version of Domain Mapping was released a few days ago with a couple of bug fixes and also a new feature that allows you to ignore the “primary domain” on your blogs. It has the potential for duplicate content if a blog can be found at multiple domains but some people need this feature. With careful organisation of content this can be avoided.

Sitewide Tags is almost ready for a new release. Ron added thumbnail support last week, and I checked in code last weekend to fill in the tags page with posts made before the plugin was installed. It needs testing, and if you’re any good at PHP please take a look at the development version on the download page.

WP Super Cache has had a number of bugs squished, preloading works better – it cancels immediately when you click that Cancel button. It also prints the url of the current post being preloaded which is handy if you’re not sure it’s working or not.
I added some extra debugging to make sure the homepage is cached correctly, but you have to enable “extra paranoid checks”. It works fine on my sites but I would really appreciate feedback if you have WordPress installed in a directory, installed in a directory different to where the site is or whatever configuration you might have. If it doesn’t work, the only side effect is that the homepage won’t be cached so it’s easy to spot when there are problems. I want these checks to be active all the time when the new version is finally released so it’s important this works correctly. Grab the development version from the download page and give it a whirl!

Don’t worry about upgrading when the next versions of Super Cache and Sitewide Tags are released. The version number in the development version is the same as the current release so a new version notice will still appear on your dashboard.

I almost forgot. Cookies for Comments has been worked on too! I added code that keeps an eye on how long a visitor reads a post before they post a comment. If the comment is made faster than a certain time the comment is automatically caught. I’ve used it over the weekend here and elsewhere and it’s catching a good number of “real looking” but spammy comments! The development version on the download page is what you’re looking for if you want to try this.

I think I need a P2 blog to post these sort of updates. Blog titles are such a pain sometimes.

Easy Setup for WP Super Cache

One of the things that has bugged me about the WP Super Cache settings page was how it was laid out. Well, the next version of the plugin will display a simplified settings page to new users. If you’re upgrading, you’ll get the same old page as ever, don’t worry.

This version also adds a new method of serving cache files. It uses PHP, but serves supercache files. So, it’s a halfway house between using mod_rewrite (difficult to install for some users), and the legacy caching of WP Cache. That caching will be what is activated for users who use the simplified settings page.

There are lots of other bug fixes. The cache tester works if WordPress is installed in a sub directory, the admin page is separated out into tabs now to make it easier to find things. Error messages show up as “update messages” at the top of the browser now, making it easier for new users to figure out when mod_rewrite rules need updating and when other house keeping tasks need doing.

The code is red hot, liable to bend and break and may cause problems but it works fine here and on a test multi site install but I need testers to hammer on it and do things I don’t expect. If you’re brave, grab the development version off the download page. Thanks!