Así es como lo he logrado en el pasado con Apache (sin cambios aparentes en el ranking):
1. Cree una página de mantenimiento con una apertura / cierre definida para la ventana de mantenimiento: haga que la ventana de mantenimiento sea aproximadamente el doble de la cantidad de tiempo que anticipa que dure el mantenimiento para que pueda retroceder si es necesario
2. Reescribe la regla para dirigir el tráfico a la página de mantenimiento:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4
RewriteCond %{REQUEST_URI} !maintenance\.html$
RewriteRule .* /maintenance.html [L,R=307]
(¿Dónde 1\.2\.3\.4
hay una expresión regular para su IP)
3. Mantenimiento completo y pruebas, comente las directivas de reescritura
El redireccionamiento temporal 307 es, a mi leal saber y entender, el encabezado de respuesta adecuado para una situación de mantenimiento, nunca he visto ningún problema con el mantenimiento que dure 1-3 horas en sitios moderadamente ocupados (es decir, 100-500 usuarios / hora).
Editar:
Según los comentarios de John Mueller, también debe configurar su servidor web para que arroje un error 503 con un intervalo de tiempo Retry-After para indicar que las arañas no deben almacenar en caché el contenido de la página de mantenimiento.
Para este fin, puede seguir el AskApache's 503 / Retry-After HowTo .