Para activar el modo mantenimiento en PrestaShop 8 vas a Parámetros de la tienda, Configuración general, pestaña Mantenimiento, y pones «Activar tienda» en No, en este momento, la tienda deja de ser accesible para todo el mundo salvo para las IP que tengas en la lista.
Eso es todo, y por eso hay quince tutoriales que dicen lo mismo, lo que sigue es lo que descubres cuando lo has hecho en tiendas de otros y algo ha salido mal.
¿Qué hace exactamente cada ajuste de la pantalla de mantenimiento?
La página de mantenimiento tiene exactamente tres opciones, y conviene entender qué hace cada una antes de tocarlas.
Activar tienda. El interruptor. En No, el escaparate deja de servirse.
IP de mantenimiento. Las direcciones que sí pueden entrar mientras la tienda está cerrada, se separan por comas y hay un botón para añadir la tuya de un clic.
Texto de mantenimiento personalizado. El mensaje que ve quien llega. Existe desde la 1.7 y casi nadie lo rellena, con lo que el visitante se encuentra un texto genérico que no dice cuándo vuelves.
¿Se para todo cuando cierro la tienda?
El webservice sigue activo. Está escrito en la documentación oficial de PrestaShop, en esa misma página, cerrar la tienda no cierra la API, cualquiera con una clave sigue leyendo y escribiendo datos.
Esto importa más de lo que parece, si tienes un ERP sincronizando stock, un conector de marketplace o un PIM empujando catálogo, todo eso sigue corriendo mientras tú crees que la tienda está parada, y si el motivo del mantenimiento era justo tocar la base de datos, tienes dos cosas escribiendo a la vez.
Para cerrarlo también hay que ir a Parámetros avanzados, Webservice, y desactivarlo ahí.
¿Afecta al SEO poner la tienda en mantenimiento?
Cuando la tienda está en mantenimiento, PrestaShop responde con un 503 Service
Unavailable y una cabecera Retry-After: 3600, está en el código del
controlador frontal, no es una interpretación:
header('HTTP/1.1 503 Service Unavailable');
header('Retry-After: 3600');
El 503 es la respuesta correcta y es una buena noticia, le dice a Google «esto está temporalmente caído, no lo quites del índice», un mantenimiento que devolviera 200 con una página de aviso, o peor, un 404, sí haría daño.
El detalle está en el 3600. Esa cabecera promete que en una hora la tienda
vuelve, si tu mantenimiento dura un fin de semana, le estás diciendo al
rastreador que vuelva cada hora a encontrarse lo mismo, no es catastrófico, pero
un mantenimiento largo con esa promesa repetida acaba consumiendo rastreo y
retrasando la reindexación cuando por fin abres.
La regla práctica: para media hora de actualización, el modo mantenimiento de
PrestaShop es exactamente lo que quieres. Para una migración de dos días, lo que
quieres es otra cosa, normalmente una respuesta a nivel de servidor donde tú
controlas el Retry-After.
¿Por qué me quedo fuera de mi propia tienda?
La lista de IP de mantenimiento es literal, solo entran esas direcciones, y la mayoría de conexiones domésticas y de oficina en España tienen IP dinámica.
El escenario es siempre el mismo, cierras la tienda un viernes por la tarde con tu IP en la lista, el router se reinicia por la noche, el sábado por la mañana tu tienda te da a ti la misma página de mantenimiento que a todo el mundo, y para arreglarlo necesitas entrar al back office, que también está detrás de la misma puerta.
Se sale por base de datos, cambiando PS_SHOP_ENABLE en la tabla de
configuración, o por FTP si sabes dónde mirar, pero es media hora de nervios que
se evita comprobando la IP antes de cerrar, y teniendo a mano un segundo acceso.
¿Por qué sigo viendo la página de mantenimiento después de abrir?
Al salir del mantenimiento, lo que ve el cliente no siempre es lo que hay, si tienes caché de página, CDN o un proxy delante, esa capa puede haber guardado la página de mantenimiento con su 503, y seguir sirviéndola después de que hayas abierto.
Antes de dar por terminado el mantenimiento, comprueba desde una conexión que no
sea la tuya, sin sesión iniciada, que la portada responde 200. Un curl -I
sobre la home basta.
¿Qué hay que comprobar antes de cerrar y al volver a abrir?
Lo que hacemos antes de cerrar una tienda de un cliente:
- IP de mantenimiento confirmada, y una segunda vía de acceso preparada.
- Webservice desactivado si el trabajo toca datos.
- Texto de mantenimiento con una hora concreta de vuelta, no un «volvemos pronto».
- Integraciones que escriben en la tienda, pausadas.
Y al abrir: 200 desde fuera, caché purgado, y una compra de prueba completa hasta la confirmación de pedido.
¿Cuándo el modo mantenimiento deja de ser suficiente?
El modo mantenimiento resuelve la ventana corta y controlada, no resuelve el problema de fondo, que es por qué hace falta cerrar la tienda tan a menudo.
Una tienda que necesita mantenimiento programado cada dos semanas para actualizar módulos suele tener otra cosa detrás, dependencias que se pisan, un tema con modificaciones sin control de versiones, o actualizaciones que se acumulan hasta que hay que hacerlas todas de golpe, ahí el modo mantenimiento es la tirita, no el tratamiento.
Si es tu caso, en mantenimiento de PrestaShop contamos cómo lo llevamos: entorno de pruebas donde se ensaya la actualización antes de tocar producción, para que la ventana de mantenimiento sea de minutos y no de tardes.