Respuesta corta: WordPress enseña «No disponible temporalmente por mantenimiento programado. Vuelve a comprobarlo en unos minutos» mientras actualiza, gracias a un fichero oculto llamado
.maintenanceen la raíz. Si se queda atascado, borra ese fichero por FTP, SSH o conwp maintenance-mode deactivate, y después comprueba que la actualización que se cortó terminó bien.
Qué significa «No disponible temporalmente por mantenimiento programado»
Cuando actualizas el núcleo, un plugin o un tema, WordPress crea en la carpeta raíz (la misma de wp-config.php) un fichero oculto llamado .maintenance. Mientras existe, cualquier visitante recibe:
- En español: «No disponible temporalmente por mantenimiento programado. Vuelve a comprobarlo en unos minutos.»
- En inglés: «Briefly unavailable for scheduled maintenance. Check back in a minute.»
La respuesta va con un código HTTP 503 (servicio no disponible), que le dice a Google que es algo temporal. Cuando la actualización termina, WordPress borra el fichero y todo vuelve a la normalidad. Normalmente dura segundos.
Por dentro, el fichero solo contiene la hora a la que empezó la actualización:
<?php $upgrading = 1793260800; ?>
Y aquí hay un detalle que poca gente conoce: WordPress ignora el fichero si esa hora tiene más de 10 minutos. Es decir, si una actualización se corta y deja el fichero, el aviso desaparece solo al cabo de diez minutos.
Por qué se queda atascado
Si llevas más de diez minutos viendo el aviso, hay algo más:
- Una actualización sigue en marcha o se relanza. Una actualización automática, una herramienta de gestión externa o un proceso que reintenta vuelve a crear
.maintenancecon la hora nueva una y otra vez. - La caché sirve la página de mantenimiento. Una caché de servidor, un plugin de caché mal configurado o una CDN guardaron la respuesta y la siguen dando.
- Un plugin de mantenimiento o una opción del tema (los constructores de páginas suelen tener un «modo mantenimiento» o «próximamente») está activado. El texto se parece, pero no es el de WordPress.
- Una actualización a medias. El fichero ya no está, pero el plugin quedó incompleto y la web da otro error. Mucha gente lo confunde con seguir en mantenimiento.
- El reloj del servidor está mal. Es raro, pero si la hora guardada queda en el futuro, la regla de los diez minutos no actúa.
Cómo saber si te pasa
Comprueba tres cosas:
- El código HTTP: el modo mantenimiento de WordPress devuelve 503.
curl -sI https://tuweb.com/ | head -n 1
- Si el fichero existe: por SSH, en la raíz de WordPress:
ls -la .maintenance && cat .maintenance
date +%s
Compara el número de dentro con la hora actual del servidor (el segundo comando). Si la diferencia es menor de 600, el fichero se ha creado hace menos de diez minutos: algo lo está regenerando.
- Si lo ves también sin caché: abre la web en una ventana privada con
?v=123al final de la URL. Si así carga bien, el problema es la caché.
Cómo salir del modo mantenimiento paso a paso
Opción 1: wp-cli
wp maintenance-mode status
wp maintenance-mode deactivate
El segundo comando (lo tienes en la referencia oficial de wp-cli) borra .maintenance y quita el aviso de no disponible temporalmente por mantenimiento programado. Comprueba después las actualizaciones pendientes:
wp core version
wp plugin list --update=available
Opción 2: SSH
cd /ruta/a/wordpress
rm .maintenance
Opción 3: FTP o gestor de archivos
- Conéctate por FTP/SFTP (FileZilla, Cyberduck) o abre el gestor de archivos del panel.
- Ve a la carpeta raíz de WordPress, donde están
wp-config.php,wp-adminywp-content. - Activa la vista de ficheros ocultos. En FileZilla: menú Servidor > Forzar mostrar archivos ocultos. En cPanel: Configuración > Mostrar archivos ocultos.
- Borra
.maintenance. - Recarga la web en una ventana privada.
Después: limpia la caché
Si usas un plugin de caché (WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache), vacíala desde su menú o con wp-cli:
wp cache flush
Ten en cuenta que wp cache flush vacía la caché de objetos; la caché de página de cada plugin se limpia con su propio botón o comando. Si hay CDN (Cloudflare u otra), purga también allí.
Comprueba que la actualización terminó
Esto es lo que más se olvida. Si la actualización se cortó, puede quedar un plugin con ficheros mezclados de dos versiones.
- Entra en Escritorio > Actualizaciones y en Plugins: mira si algo sigue pendiente o tiene avisos.
- Si un plugin da problemas, reinstala la misma versión:
wp plugin install nombre-del-plugin --force. - Si fue el núcleo y algo no cuadra, reinstala los ficheros de WordPress sin tocar
wp-content:wp core download --force --skip-content. - Si en
wp-contentqueda una carpetaupgradecon restos, puedes vaciarla; WordPress la vuelve a crear cuando la necesita. - Revisa que no haya un error en pantalla: si ahora sale «Ha habido un error crítico en esta web», sigue nuestra guía del error crítico.
Si es un plugin de mantenimiento
Si el aviso no es el de WordPress (tiene logo, colores o una cuenta atrás), es un plugin o una opción del tema. Desactívalo desde el escritorio o con wp plugin deactivate nombre-del-plugin.
Cómo evitar que vuelva
- No cierres la pestaña ni pulses atrás durante una actualización desde el escritorio.
- Actualiza por tandas. Actualizar veinte plugins a la vez en un hosting justo de recursos es la forma más común de que se corte por tiempo de ejecución o memoria.
- Revisa los límites de PHP:
max_execution_timeymemory_limitdemasiado bajos cortan actualizaciones grandes (WooCommerce, constructores de páginas). - Ten una copia reciente antes de actualizar y, si puedes, prueba en un entorno de pruebas.
- Que la caché no guarde los 503. Comprueba que tu plugin de caché o tu CDN no almacena respuestas con ese código; si lo hace, el aviso sobrevive a la actualización.
Para agencias: que el aviso no se quede todo el fin de semana
El modo mantenimiento suele aparecer tras una actualización automática a las tantas, cuando nadie mira. El cliente lo descubre el lunes.
Jeffrey lo detecta por dos caminos. La sonda de disponibilidad revisa la portada cada uno o dos minutos y trata un 503 sostenido (tres muestras seguidas) como caída, con aviso urgente. Y la prueba diaria con navegador real, en móvil y escritorio, busca en pantalla «No disponible temporalmente por mantenimiento» o «Briefly unavailable for scheduled maintenance» y lo marca como «Atascada en modo mantenimiento». Antes de avisar repite la prueba a los cinco minutos, porque una actualización normal dura menos que eso. Con el plugin de Jeffrey instalado, la prueba se lanza también un par de minutos después de cada actualización, y el aviso indica qué actualización fue.
Si es urgente y no sabes por dónde empezar, escríbenos y lo miramos.
Más casos en la guía de errores de WordPress que tumban tu web y en la de error 500 y 503 en WordPress.
Preguntas frecuentes
¿Borrar el fichero .maintenance es seguro?
Sí. Solo sirve para enseñar el aviso. Borrarlo no deshace ni rompe nada. Lo que hay que revisar después es si la actualización terminó.
No veo el fichero .maintenance por FTP, ¿no existe?
Los ficheros que empiezan por punto están ocultos por defecto. Activa la opción de mostrar archivos ocultos en tu cliente FTP o en el gestor de archivos. Si aun así no está y sigues viendo el aviso, el problema es la caché o un plugin de mantenimiento.
¿El modo mantenimiento afecta al SEO?
Unos minutos, no: el código 503 le dice a Google que vuelva más tarde. Si dura días, Google puede empezar a tratar las páginas como no disponibles y perder posiciones.
¿Puedo personalizar el mensaje de mantenimiento?
Sí. Si creas wp-content/maintenance.php, WordPress lo usa en lugar del aviso estándar. Mantén el código 503 en esa página.