Saltar al contenido
Volver al blog
Analytics·8 jun 2026

Actualizado el 27 sep 2026

Por qué cualquier web sin tracking de scroll está ciega

La tasa de rebote no dice dónde se va la gente; los eventos de profundidad de scroll sí. Con cuatro eventos ves si falla la portada, el argumento o el formulario, y sabes qué arreglar primero.

Giorgio Meniconi

Cofundador y CEO

Imagina una landing B2B con tráfico y casi ninguna conversión. GA4 muestra una tasa de rebote alta y la conclusión parece obvia: "el tráfico es malo, hay que cambiar el SEO".

Pero la tasa de rebote no dice dónde se va la gente. Si midieras hasta dónde baja cada visita, podrías descubrir que casi nadie pasa de la portada: el tráfico está bien y lo que falla es el primer pantallazo.

Sin medición de scroll, no hay cómo saberlo.

¿Qué te dice la medición de scroll?

scroll_25, scroll_50, scroll_75, scroll_100

Con esos cuatro eventos sabes:

  • ¿Cuántos pasan del primer pantallazo (scroll_25)? Si la mayoría no pasa, tu portada no engancha.
  • ¿Cuántos llegan hasta el CTA? Si muy pocos llegan, tu argumento no se entiende o es muy largo.
  • ¿Cuántos llegan al final (scroll_100)? Esos son los que leyeron todo.

¿Cómo se usa para decidir qué arreglar?

Mira dónde está la caída más fuerte entre un evento y el siguiente:

  • Entre la llegada y scroll_25: el problema está en la portada, ya sea el mensaje, la imagen o la velocidad de carga.
  • Entre scroll_25 y el CTA: el argumento es largo o confuso, o el CTA queda demasiado abajo.
  • Llegan al CTA pero no convierten: revisa el formulario o el agendamiento.

Arreglas lo que muestra la caída y vuelves a medir con el mismo tipo de tráfico, para comparar antes y después.

¿Cómo lo agrego a mi web?

// hooks/useScrollTracking.ts
import { useEffect, useRef } from "react"
import { track } from "@/lib/analytics"

export function useScrollTracking(page: string) {
  const fired = useRef(new Set<number>())
  useEffect(() => {
    function onScroll() {
      const pct = (window.scrollY + window.innerHeight) /
                  document.documentElement.scrollHeight
      const thresholds = [25, 50, 75, 100]
      for (const t of thresholds) {
        if (pct * 100 >= t && !fired.current.has(t)) {
          fired.current.add(t)
          track("scroll_depth", { page, depth: t })
        }
      }
    }
    window.addEventListener("scroll", onScroll, { passive: true })
    return () => window.removeEventListener("scroll", onScroll)
  }, [page])
}

Después, en cualquier página:

function HomePage() {
  useScrollTracking("home")
  return <main>...</main>
}

Si tu función track envía los eventos a PostHog y a GA4, llegan a ambos y puedes armar el embudo en cualquiera de los dos.


¿Quieres que veamos qué te dice el scroll de tu web? 30 min, gratis:

→ Reservar

#analytics#scroll#ux#conversion