Under Construction Thumbnail

Cómo desactivar tu web o ponerla en modo mantenimiento en WordPress

Cuando necesitas actualizar, rediseñar o reparar un sitio WordPress en producción, los visitantes no deberían ver una página rota o a medio hacer. Una pantalla de mantenimiento puede ocultar el sitio público durante un tiempo breve. Haz primero una copia de seguridad y, si puedes, trabaja en una copia de pruebas para tener una vía de vuelta si algo sale mal.

Importante: el núcleo de WordPress no ofrece una constante WP_MAINTENANCE_MODE en wp-config.php. Añadir define( 'WP_MAINTENANCE_MODE', true ); no hace nada por sí mismo y no mostrará una página de mantenimiento. Si añadiste esa línea siguiendo un consejo antiguo, puedes quitarla sin problema.

Cómo poner un sitio WordPress en modo mantenimiento

WordPress sí tiene un modo de mantenimiento real y automático durante las actualizaciones, pero ese modo es solo temporal. Para un trabajo planificado que dure más de unos minutos, usa un plugin mantenido de WordPress.org o, si no puedes usar un plugin, un fragmento corto y extraíble en un tema hijo.

1. Recomendado: usar un plugin de modo mantenimiento

El enfoque más sencillo para principiantes es un plugin del directorio oficial de plugins de WordPress. Dos opciones consolidadas son Maintenance de WebFactory y LightStart de Themeisle (este plugin se llamaba antes WP Maintenance Mode). Revisa la ficha actual antes de instalarlo y sigue la pantalla de ajustes del propio plugin: los nombres de los botones pueden cambiar entre versiones.

Pasos habituales, según las notas de instalación de esos plugins en WordPress.org:

  1. Haz una copia de seguridad del sitio y, si es posible, pruébalo en un entorno de pruebas.
  2. Quédate conectado como administrador. En wp-admin, ve a Plugins → Añadir nuevo, busca el plugin por su nombre, instálalo y actívalo.
  3. Abre la página de ajustes del plugin. Maintenance añade un elemento al menú principal de administración; LightStart usa una página de Settings. Personaliza el mensaje público con los controles que ofrece el plugin.
  4. Activa el modo mantenimiento solo cuando estés listo. La ficha de LightStart indica que al activar el plugin el sitio puede pasar de inmediato a modo mantenimiento, mientras que los usuarios con permisos suficientes siguen viendo la portada.
  5. Cuando termines el trabajo, desactiva el mantenimiento en los ajustes del plugin, vacía la caché de páginas y mira el sitio en una ventana privada o de incógnito, sin sesión iniciada, para confirmar que las páginas públicas han vuelto. Solo entonces desactiva el plugin si ya no lo necesitas.

Las preguntas frecuentes de LightStart advierten de que los plugins de caché pueden servir páginas antiguas durante el mantenimiento. Si dejas un plugin de caché activo, borra su caché después de activar o desactivar el modo mantenimiento.

El plugin Maintenance puede enviar una respuesta HTTP 503 («Service temporarily unavailable») para que los buscadores traten la interrupción como temporal. Mantén esa ventana corta. Un 503 prolongado aún puede afectar al rastreo del sitio.

2. Lo que hace WordPress por sí mismo durante las actualizaciones

Cuando WordPress actualiza el núcleo, un tema o un plugin, crea temporalmente un archivo .maintenance en la raíz de WordPress. Ese archivo guarda una marca de tiempo en una variable $upgrading. El núcleo considera que el sitio está en modo mantenimiento solo mientras esa marca tiene menos de unos 10 minutos. Pasados aproximadamente 10 minutos, WordPress da el mantenimiento por terminado aunque el archivo siga ahí.

Durante esa breve ventana, WordPress envía HTTP 503 con una cabecera Retry-After: 600 y muestra el mensaje “Briefly unavailable for scheduled maintenance. Check back in a minute.” Puedes sustituir esa pantalla breve con un archivo opcional llamado maintenance.php dentro de wp-content, pero ese archivo solo se aplica mientras el modo de mantenimiento del núcleo está realmente activo.

No crees tú mismo un archivo .maintenance estático como interruptor duradero de «cerrado por mantenimiento». No es un control manual permanente: al cabo de unos 10 minutos los visitantes vuelven a ver el sitio, y un archivo sobrante tras una actualización fallida puede dejar un mensaje confuso hasta que lo borres. Si la pantalla de mantenimiento se queda atascada después de una actualización, conéctate por FTP o con el administrador de archivos del alojamiento y elimina .maintenance de la raíz de WordPress.

WordPress lo documenta en wp_is_maintenance_mode(), wp_maintenance(), las notas sobre una pantalla de mantenimiento atascada en errores comunes de WordPress y en Updating WordPress.

3. Opcional: un fragmento temporal en un tema hijo

Si no puedes usar un plugin, añade lo siguiente al functions.php de un tema hijo, no de un tema padre que las actualizaciones sobrescribirán. El gancho template_redirect se ejecuta solo en el sitio público, así que wp-admin y la pantalla de acceso siguen disponibles. Los usuarios conectados que pueden gestionar opciones siguen viendo el sitio. El resto recibe HTTP 503 y una cabecera Retry-After, el mismo patrón que usa el núcleo de WordPress durante las actualizaciones. Quita el fragmento para restaurar el sitio público.

add_action( 'template_redirect', function () {
    if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
        return;
    }

    header( 'Retry-After: 3600' );
    wp_die(
        'This site is temporarily unavailable for scheduled maintenance. Please check back soon.',
        'Maintenance',
        array( 'response' => 503 )
    );
} );

Úsalo solo como medida breve y temporal, y pruébalo primero en un entorno de pruebas. Después de quitar el código, vacía las cachés y confirma que el sitio público carga de nuevo sin sesión iniciada. No dejes una respuesta 503 más tiempo del necesario.

Conclusión

Para ocultar un sitio WordPress durante un trabajo planificado, usa un plugin de mantenimiento actualizado, apágalo cuando termines y verifica las páginas públicas. El archivo .maintenance de WordPress es solo un escudo automático y breve durante las actualizaciones —unos 10 minutos—, no un interruptor manual duradero, y no hay ninguna línea WP_MAINTENANCE_MODE que añadir en wp-config.php. Haz una copia de seguridad primero, limita el tiempo de inactividad y después restaura y comprueba el sitio en vivo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *