gdoron gdoron - 8 months ago 36
ASP.NET (C#) Question

Which HTTP status should be returned when a SPECIFIC page will be down for several days

We are uploading a new version of our website.
For various reasons, some pages that exists on the older version still aren't ready for the new version and we need to temporarily take them off.

Which HTTP status should we return for these pages considered they will be up and running again within several days.

Is using

ServiceUnavailable = 503
only for these pages the right way or will it have negative impact on the entire website?

(Using ASP.NET in case it's related in some way...)

Answer Source

The status code 503 seems to be the best choice here:

The 503 (Service Unavailable) status code indicates that the server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

It shouldn’t be relevant that it’s not due to overload or maintenance in your case. What is relevant is that it’s your fault (hence a status code from the 5xx class), and that it’s temporary (hence 503), so there’s no need to let them know the real reason.

While 503 is typically used for the whole site, I can see no reason why it shouldn’t be used for specific pages only. A possible drawback: If a bot ‎successively crawls a few documents that give 503, it might think that the whole site is affected and stop crawling for now.

If you know when the page will be available again, you can send the Retry-After header:

When sent with a 503 (Service Unavailable) response, Retry-After indicates how long the service is expected to be unavailable to the client.

(FWIW, the Googlebot seems to support this.)

In the post Website outages and blackouts the right way (by a Google employee at the time), my assumptions are confirmed as far as Google Search is concerned: 503 should also be used for specific pages only; crawling rate might be affected if Googlebot gets many 503 answers.