Logo de Kodflux - Plataforma de Herramientas SEO y Auditoría Web

JavaScript / Intermedio / 4 min

Modo mantenimiento en el Edge con un Worker

Muestra una pagina de mantenimiento a los visitantes mientras tu sigues accediendo por IP, todo desde el Edge.

Durante una migración o una actualización arriesgada conviene mostrar una página de mantenimiento sin apagar el servidor. Este Worker devuelve un 503 con página amigable a todo el mundo, pero deja pasar tu propia IP para que puedas verificar los cambios. Al servir la página desde el Edge, ni siquiera toca tu origen mientras dura la ventana.

Guía de Implementación Paso a Paso

  1. Averigua tu IP pública (búscala como "cuál es mi IP" o revisa el visor de IP de Kodflux).
  2. En Cloudflare ve a Workers & Pages → Create Worker.
  3. Pega el código de abajo y cambia TU.IP.PUBLICA.AQUI por tu IP real.
  4. Haz clic en Deploy.
  5. Abre el Worker, ve a Triggers → Routes y añade *tudominio.com/*.
  6. Cuando termines el mantenimiento, elimina la ruta o desactiva el Worker.
JAVASCRIPT
const ALLOWED_IPS = ['TU.IP.PUBLICA.AQUI'];

const MAINTENANCE_HTML = `<!doctype html>
<html lang="es"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>En mantenimiento</title>
<style>body{font-family:system-ui,sans-serif;display:grid;place-items:center;min-height:100vh;margin:0;background:#0f172a;color:#e2e8f0;text-align:center}h1{font-size:2rem}p{color:#94a3b8}</style>
</head><body><div><h1>Volvemos enseguida 🛠️</h1>
<p>Estamos aplicando mejoras. Gracias por tu paciencia.</p></div></body></html>`;

export default {
  async fetch(request) {
    const ip = request.headers.get('CF-Connecting-IP');

    if (ALLOWED_IPS.includes(ip)) {
      return fetch(request); // Tú ves el sitio normal
    }

    return new Response(MAINTENANCE_HTML, {
      status: 503,
      headers: {
        'Content-Type': 'text/html; charset=utf-8',
        'Retry-After': '3600',
        'Cache-Control': 'no-store'
      }
    });
  }
};

El 503 con Retry-After es la respuesta correcta para mantenimiento: Google entiende que es temporal y no penaliza tu SEO, a diferencia de un 200 con página de "cerrado" o un 404.

Buscar en Kodflux