
Alguien dice que una página está rota. Le pides que la abra en una ventana de incógnito. Allí funciona. La conversación suele terminar ahí, con la sugerencia de que borre la caché, y eso es justamente tirar la información a la basura.
El incógnito no es un navegador limpio. Es tu navegador con una lista concreta y bastante corta de cosas desactivadas, y esa lista es todo el valor de la prueba. Conocerla convierte una frase de quien reporta en una bisección que puedes terminar en unos minutos.
Qué cambia realmente una ventana de incógnito
Cinco diferencias, y la mayoría de la gente solo sabe nombrar dos.
Las extensiones no se ejecutan. Esta es la grande y la que todo el mundo olvida. La documentación de extensiones de Chrome describe la clave de manifiesto correspondiente como la forma en que una extensión se comporta “if allowed to run in incognito mode”: el permiso está desactivado hasta que alguien lo activa, extensión por extensión, en Detalles y luego “Permitir en incógnito”. Así que una ventana de incógnito es casi siempre también una ventana sin extensiones, y esa confusión es lo que hace ambigua la prueba.
Ninguna cookie de tu sesión normal. La ventana empieza sin ninguna y descarta lo que recoge. En palabras de Chrome, “temporarily keeps some information, like cookies and site data, to help websites work and support navigation”, y “this information is removed when the Incognito session ends”.
Las cookies de terceros están bloqueadas. Aparte de lo anterior y de forma predeterminada: “In Incognito mode, third-party cookies are blocked by default.” Esta cambia el resultado en la dirección contraria a las demás, que es la parte sobre la que conviene detenerse más abajo.
Ninguna caché ni datos de sitio guardados que reutilizar. Nada de lo que tu perfil normal descargó la semana pasada está ahí esperando para servirse otra vez, incluido lo que el navegador decidió que podía conservar.
Los service workers que registraste no están. Un service worker pertenece al almacenamiento de un perfil. La sesión de incógnito tiene el suyo, que está vacío, así que lo que intercepta las peticiones en la ventana normal sencillamente no existe.
La dirección en la que falla la prueba importa
El mismo experimento tiene dos resultados y significan cosas distintas. Casi todo el mundo razona únicamente sobre el primero.
- Funciona en incógnito, roto en la ventana normal
- Algo de su perfil está implicado: una extensión, un recurso en caché desactualizado, un service worker sirviendo el código de la semana pasada, o una cookie que guarda un estado que tu aplicación lee.
- Roto en incógnito, funciona en la ventana normal
- Falta algo de lo que depende tu página: una cookie de terceros, una sesión iniciada, o datos que dabas por hecho que estarían en el almacenamiento porque en tu máquina siempre lo han estado.
El segundo caso es el que se malinterpreta como “el incógnito es raro”. No es raro. Es la única forma barata que tendrá la mayoría de reproducir lo que vive quien visita el sitio por primera vez, y si tu página se rompe para esa persona, se está rompiendo para todo el que nunca ha entrado antes.
Separar los cinco sospechosos sin adivinar
La debilidad de la prueba de incógnito es que cambia cinco cosas a la vez, así que un resultado positivo te dice que una de cinco es la responsable y no cuál. Estos pasos las separan, empezando por el más barato.
- Un perfil de navegador nuevo con las extensiones activadas. Esta es la prueba que el incógnito debería haber sido: cookies nuevas, caché nueva, almacenamiento nuevo, pero con tus extensiones funcionando. Si el problema reaparece aquí, no es una extensión, y has descartado la causa más común en unos treinta segundos.
- Una recarga forzada con el panel de red abierto y “Disable cache” marcado. Separa los recursos obsoletos de todo lo demás. Si esto lo arregla, tienes un problema de caché y el navegador de esa persona se está comportando exactamente como se le dijo.
- Borrar los datos del sitio para ese origen. En el panel Application, esto elimina cookies, almacenamiento local y el registro del service worker en una sola acción. Si el problema desaparece, la causa era estado y no código, y la siguiente pregunta es qué parte del estado.
- Anular el registro del service worker por separado. Merece la pena hacerlo aparte de lo anterior, porque si esa es la solución, esa persona estaba ejecutando código que dejaste de publicar, y ningún despliegue la alcanzará hasta que el worker se actualice.
Hacerlos en ese orden te da una causa en lugar de una correlación. El incógnito por sí solo te da una frase con la que todo el mundo asiente.
Qué no significa “funciona en incógnito”
No significa que el problema esté en su máquina, y no significa que no sea tu error.
Un service worker sirviendo un bundle viejo es tu despliegue. Una cookie que tu aplicación escribió y luego no supo leer es tu código. Una extensión que rompe tu página es, como mínimo, tu problema de compatibilidad si muchos de tus usuarios la tienen. La única lectura realmente insegura es la que más se hace: que la página está bien y el ordenador de esa persona no.
Tampoco se traslada en la otra dirección. Quien solo prueba en incógnito está probando para siempre el camino de la primera visita y nunca verá el fallo que necesita una cookie de hace una semana para aparecer.
Cómo pedirlo bien
Para quien reporta, esta es una de las pocas pruebas que no cuesta nada y no exige vocabulario: abre una ventana privada, ve a la misma página y dime si hace lo mismo. Es la mejor pregunta de la lista y es lo bastante barata como para hacerla la primera.
Lo que no te puede dar es el porqué. El error de consola, la petición fallida y la versión del script que realmente se estaba ejecutando siguen siendo lo que lo resuelve, y ninguna de esas cosas sobrevive al cierre de la ventana.
Session Replay
Extensión de Chrome gratuita. Un clic en la página que se comporta mal captura la captura de pantalla, la consola y el registro de red, y te da un enlace para pegar en el ticket.
Una advertencia sobre usar cualquier extensión para esto, incluida la nuestra: una ventana de incógnito no la ejecutará salvo que se le haya permitido, que es la misma regla que hace útil la prueba en primer lugar.
La versión corta
- El incógnito desactiva cinco cosas a la vez: extensiones, cookies existentes, cookies de terceros, caché y service workers.
- La dirección en la que falla la prueba te dice qué mitad de esa lista mirar.
- Un perfil nuevo con las extensiones activadas es el paso siguiente que separa la causa más común de las demás.
- “Funciona en incógnito” es el principio del diagnóstico. Tratarlo como el final es la forma en que un service worker obsoleto sobrevive a tres despliegues.