Chennai Central is a bandwidth saver plugin that makes your wordpress site support conditional GETs by search engine crawlers , feed readers and more.

It is a known fact that search engine crawlers burn way too much of the site’s bandwidth. Though those crawlers support conditional GETs, (that means they don’t fetch your pages if those didn’t change since the last crawl), many CMS platforms including wordpress does not provide support for conditional GETs.

Apache comes with native support of the Last-Modified / If-Modified-Since / Not-Modified functionality. That means that crawlers and Web servers don’t produce too much network traffic when a requested static file didn’t change, since the last crawl.

However, outputs from CMS platforms, like WordPress, is dynamic content by definition, regardless of whether the URI has a query string or not. Even if wordpress reads and print out static content (that never changes) with PHP, Apache doesn’t add the Last-Modified header which forces crawlers to perform further requests with an If-Modified-Since header.

Chennai Central plugin handles Last-Modified, If-Modified-Since, and Not-Modified HTTP headers with PHP/Apache.

How does this work?

The protocol your Web server and the requestors use to handle caching is quite simple. Let me explain it through this example with Googlebot, the search engine crawler of google.

1st request from Googlebot – Aug/09/2009 12:00:00:

Let us say, Googlebot tries to spider this post on Aug/09/2009 and makes a request say /chennaicentral from this site. Since Google has just discovered this post, there are no unusual request headers, just a plain GET.

In response to the GET request from Google, WordPress create this page from the wordpress database which was modified on Aug/09/2009 10:00:00. The apache server on which wordpress runs sends Googlebot the full post (say of size 4k) with an HTTP header
Date: Sun, 09 Aug 2008 12:00:00 GMT
Last-Modified:Sun, 09 Aug 2008 10:00:00 GMT

The HTTP response code is 200 (OK).

Bandwidth used: 4 kilobytes for this post contents plus less than 500 bytes for the HTTP header.

2nd request from Googlebot on Tue, 11 Aug 2009 12:00:00 GMT :

Let us say, wordpress users found this post interesting and made a review of this plugin on their sites. When Googlebot finds those links pointing to this post, it requests /chennaicentral again to check for updates. Since Google already knows the resource, Googlebot requests it with an additional HTTP header
If-Modified-Since: Sun, 09 Aug 2008 10:00:00 GMT
where the date and time is taken from the Last-Modified header this plugin sent in response to the previous request (1st request).

Let us assume that the content of this post didn’t change on Aug/11/2009 12:00:00, when Googlebot made this second request, there’s no need to send the full post again. Chennai Central plugin lets your wordpress site send Googlebot just an HTTP header as below:

Date: Tue, 11 Aug 2009 12:00:00 GMT
Last-Modified:Sun, 09 Aug 2009 10:00:00 GMT
The HTTP response code is 304 (Not Modified). (Your Web server can suppress the Last-Modified header, because the requestor has this timestamp already.)

Bandwidth used is less than 500 bytes as wordpress responds with just the HTTP header and a response code of 304, meaning content has not changed.

3rd request from googlebot on Thu, 13 Aug 2009 09:00:00 GMT:

Let us say, Googlebot finds a a few more links to this post on Thu, 13 Aug 2009 09:00:00 GMT and it tries to recrawl /chennaicentral, again using the

If-Modified-Since: Sun, 09 Aug 2009 10:00:00 GMT header.

Assume that this post has many comments by then (added on 12 Aug 2009), and hence the content of this page (post) has changed (including the comments). Chennai Central Plugin now lets your wordpress site send Googlebot the full page (now say, 5k) with this HTTP header
Date: Thu, 13 Feb 2009 12:00:00 GMT
Last-Modified: Wed, 12 Aug 2009 09:00:00 GMT
and an HTTP response code 200 (OK).

Bandwidth used: 5 kilobytes for the page content plus less than 500 bytes for the HTTP header.

From the above it is clear that chennai Central saves bandwidth on this post, unless the content has changed.Likewise it does for every post and page on a wordpress blog/site and for all crawlers that support conditional GETs.If you do this calculation for all your posts/pages and for a one month period, the bandwidth saved is quite substantial.You save bandwidth and thereby your hard earned money!!!

How to test Chennai Central?

If you would like to test whether Chennai Central plugin really added the Conditional GET support for your wordpress blog/site, do it on this Microsoft tool.

Why is this plugin named chennai Central?

Well, I come from the city of chennai and I wanted to dedicate this plugin to my lovely city.I admire Chennai and hence decided to name this plugin as “Chennai Central”.

Download chennai central plugin from here and enjoy!!! Save bandwidth and save your money with Chennai Central!!!