Maintenance pages status codes and Lighttpd

I’ve noticed a few very broken maintenance page Lighttpd config examples around, including the one on the mod_magnet documentation page. They all manage to display the maintenance page ok, but they return a HTTP 200 status code to the client, rather than the more appropriate HTTP 503 code.

As with all 500 status codes, the 503 code is an error code but it signifies a temporary error. The client should try again later (in fact you can specify how much later using the Retry-After header).

A 200 code tells the client everything is normal and OK. So the user gets your nice maintenance page telling them of a temporary outage, whereas their browser gets told that everything is fine. Now this might not be a problem for a user, but if the client is a search engine or a caching proxy then it will assume the maintenance page is the new valid content for the request.

If the Google crawler hits your site when you have the maintenance page up, it will update its search index with your “we’re down for now” message, rather than your cash prizes blog content. Your page rank will drop, your fat Adsense cheque will diminish and you’ll have to go back to your regular nine to five job in the city with people you don’t like in clothes you hate wearing.

So, as you can see, it’s important to return the correct status code. Here’s how to do it with Lighty and mod_magnet:

Continue reading Maintenance pages status codes and Lighttpd

authority

Google seems to think I’m the Internet authority on various subjects. I’m in the top 10 for the following Google searches (with my place number in brackets):

  • corrado vr6 (1)
  • armley leeds (2)
  • raid benchmarks (8)
  • powerbook g4 (8)
  • linux powerbook (1)
  • linux pix (4)
  • xbox kernel (3)
  • john leach (3)
  • ntl hell (7)
  • redhat advanced server (3)

Either Google needs fixing or the Internet is a lame source of information.