¿Por qué difieren dos informes del mismo sitio?

A veces dos informes lanzados con minutos de diferencia muestran resultados distintos. Esta guía explica las causas más habituales: caché, contenido dinámico, tests A/B y variabilidad en el momento del crawl.

Lanzas un informe, corriges algo, lanzas un informe nuevo y el nuevo muestra cambios que no esperabas. O lanzas dos informes seguidos sin tocar nada y aun así son distintos. Es sorprendentemente habitual y casi siempre se explica por cómo funciona la web moderna, no por un bug del análisis. Este artículo recorre las causas más probables.

Resumen breve: un sitio web no es un documento estático. Las cachés caducan, el contenido dinámico rota, los tests A/B eligen variantes distintas, los scripts de terceros aparecen y desaparecen. Dos informes son dos instantáneas de un objetivo en movimiento.

1. Capas de caché

La caché es, con diferencia, la razón más común de las diferencias entre informes. Un sitio típico de WordPress tiene varias capas de caché apiladas:

  • Caché de página (p. ej. WP Rocket, LiteSpeed, W3 Total Cache): almacena el HTML totalmente renderizado y lo sirve durante un tiempo de vida configurable. Cuando ese tiempo expira, el siguiente visitante dispara una regeneración que puede incluir bloques de anuncios distintos, recomendaciones distintas o un nombre de archivo de recursos combinados recién generado.
  • Caché de objetos (Redis, Memcached): cachea los resultados de las consultas a la base de datos. Menos visible desde fuera, pero puede cambiar qué plugins o widgets se ejecutan en una petición concreta.
  • Caché en el edge del CDN (Cloudflare, BunnyCDN, KeyCDN): el CDN puede servir una versión ligeramente más antigua o más reciente según el nodo del edge al que llegue la petición.
  • Caché del alojamiento (hosts gestionados de WordPress): Kinsta, WP Engine, SiteGround y otros ejecutan sus propias cachés a nivel de servidor con su propia lógica de invalidación.

Dos informes lanzados con unos minutos de diferencia pueden caer fácilmente en estados distintos de caché. Solo eso explica la mayoría de las diferencias.

2. Contenido dinámico

Muchos sitios renderizan partes de la página de forma dinámica en cada petición. Ejemplos comunes:

  • Widgets de „Entradas recientes“ o „Últimos productos“ que tiran de los más nuevos.
  • Recomendaciones de „También te puede interesar“.
  • Rotadores de testimonios aleatorios.
  • Slots de anuncios que rotan creatividades.
  • Saludos personalizados según geo-IP o dispositivo.
  • Contadores en vivo, niveles de stock, precios.

Incluso sin ningún cambio de caché, dos peticiones pueden producir HTML distinto, recuentos de palabras distintos, recuentos de imágenes distintos y, a veces, recursos externos distintos.

3. Tests A/B y feature flags

Si tu sitio ejecuta una herramienta de tests A/B (VWO, Optimizely, Convert) o feature flags (LaunchDarkly, GrowthBook), cada visita puede asignarse a una variante distinta. Las variantes pueden implicar:

  • Titulares o imágenes distintos.
  • Un layout de página distinto.
  • Scripts o servicios de terceros distintos cargados.
  • Cookies distintas establecidas.

Desde el punto de vista del informe, la misma URL ha producido legítimamente dos páginas distintas.

4. Scripts de terceros y gestores de etiquetas

Los gestores de etiquetas (Google Tag Manager, Tealium, Matomo Tag Manager) deciden sobre la marcha qué etiquetas disparan. Las condiciones pueden incluir hora del día, ubicación del visitante, estado del consentimiento o reglas de muestreo. Un informe lanzado hoy y otro lanzado mañana pueden cargar píxeles de seguimiento y scripts de analítica completamente distintos aunque el sitio en sí no haya cambiado.

5. Consentimiento de cookies y banner de consentimiento

Los gestores de consentimiento modernos a menudo sirven una versión recortada de la página hasta que se da el consentimiento, y entonces cargan el conjunto completo de scripts de seguimiento y personalización. InspectWP visita sin consentimiento. Si tu gestor de consentimiento cambia su comportamiento por defecto (default-deny vs. default-accept-in-some-regions), el informe cambia en consecuencia.

6. Contenido en función del tiempo

Algunos sitios cambian con el reloj:

  • Banners promocionales que se activan a una hora concreta.
  • Imágenes de héroe estacionales.
  • Actualizaciones de stock y precios.
  • Entradas de blog programadas.

Un informe a las 09:00 y otro a las 09:05 pueden quedar a ambos lados de un cambio programado.

7. Diferencias geográficas

InspectWP siempre rastrea desde la misma ubicación fija. Si comparas un informe de InspectWP con lo que ves en tu propio navegador desde otro país, puedes ver legítimamente contenido distinto (idioma, precios, productos disponibles), fuentes distintas (endpoints de CDN), recursos externos distintos (proveedores de Maps específicos por región).

8. Actualizaciones de plugins y temas

WordPress y muchos plugins se actualizan automáticamente. Entre dos informes, un plugin puede haberse actualizado, haber cambiado los nombres de sus archivos de recursos, eliminado una función o añadido un nuevo recurso externo. El sitio se ve igual para una persona pero produce una huella distinta.

9. Variabilidad del lado del servidor

La negociación de la versión HTTP, la elección del algoritmo de compresión (gzip vs. brotli), cabeceras HTTP concretas y los detalles del handshake TLS pueden variar según qué servidor de un clúster con balanceo gestione la petición. Estas diferencias aparecen en las secciones Cabeceras y Rendimiento.

10. Cómo comparar dos informes de forma significativa

  1. Lanza ambos informes con poco tiempo entre ellos si quieres comparar el estado „as-is“.
  2. Vacía las cachés antes de cada informe si quieres comparar el estado tras la reconstrucción de caché.
  3. Desactiva los tests A/B temporalmente si quieres medir específicamente la línea base.
  4. Rastrea exactamente la misma URL, incluyendo barra final y parámetros de consulta. https://example.com y https://example.com/ son técnicamente URLs distintas.
  5. Mira la estructura, no el ruido. Las diferencias en „recuento de palabras“ de unos pocos puntos porcentuales o un único bloque de anuncio que rota normalmente no son significativas. Las diferencias en listas de plugins, cabeceras de seguridad, etiquetas SEO o campos de critical-status normalmente sí lo son.
Consejo: si lanzas informes automáticos, usa la vista del historial de informes para detectar patrones a lo largo del tiempo en lugar de fijarte en las diferencias entre ejecuciones individuales. Un campo que oscila en cada crawl es dinámico; un campo que cambió una vez y se queda así es un cambio real.

11. Preguntas frecuentes

Casi siempre no. Los plugins siguen instalados y activos, simplemente han dejado de emitir una huella reconocible entre los dos crawls. La causa más común es un nuevo bundle de combinación de recursos de un plugin de caché. Consulta ¿Por qué no se detecta mi plugin o tema? para más detalles.

12. Artículos relacionados