Prefetch de enlaces
El prefetch descarga por anticipado el destino probable de un enlace para que la navegación posterior sea más rápida.
No acelera el servidor ni reduce el tamaño de una página: adelanta parte del trabajo usando red y caché del navegador. Por eso es una decisión de presupuesto. Si se predice bien, la navegación parece instantánea; si se predice mal, se descargan rutas que nadie visita.
import { defineConfig } from "astro/config"
export default defineConfig({ prefetch: { defaultStrategy: "hover", prefetchAll: false }})<a href="/docs" data-astro-prefetch >Documentación</a><a href="/siguiente" data-astro-prefetch="viewport" >Siguiente</a><a href="/pesada" data-astro-prefetch="false" >Sin prefetch</a>Estrategias
Sección titulada «Estrategias»| Estrategia | Momento | Uso típico |
|---|---|---|
tap | al tocar/presionar | mínimo consumo de datos |
hover | hover o focus | buen default de escritorio |
viewport | entra en pantalla | siguiente artículo o paginación |
load | después de cargar | pocas rutas críticas y pequeñas |
hover también contempla el foco del teclado, por lo que no depende únicamente de un puntero. viewport funciona bien para el siguiente artículo visible, pero puede descargar muchos destinos en una lista larga. load es la estrategia más agresiva y debe reservarse para pocos enlaces con alta probabilidad de uso.
Con <ClientRouter />, el prefetch de enlaces queda habilitado de forma amplia por defecto. Revisa páginas grandes, endpoints con efectos laterales y navegación que casi nadie usa; descargar todo por adelantado puede empeorar el rendimiento total.
El prefetch debe ser seguro e idempotente: una petición GET nunca debería mutar datos. Respeta señales de ahorro de datos y mide antes de usar prefetchAll en una biblioteca con cientos de enlaces.
Cómo medirlo
Sección titulada «Cómo medirlo»- Abre DevTools y limpia la caché de red.
- Observa qué solicitud aparece al enfocar, señalar o mostrar el enlace.
- Compara bytes transferidos y tiempo de navegación.
- Simula una conexión lenta y ahorro de datos.
- Revisa que el destino no ejecute efectos laterales mediante GET.
La métrica útil no es solo que una navegación concreta baje unos milisegundos. También importa cuántos bytes se descargaron sin utilizar y si compitieron con la imagen, fuente o script principal.
Cuándo desactivarlo
Sección titulada «Cuándo desactivarlo»- rutas administrativas o poco visitadas;
- páginas pesadas detrás de una decisión explícita;
- listas con cientos de destinos visibles;
- enlaces cuyo recurso cambia con mucha frecuencia y no debe adelantarse;
- conexiones limitadas donde el ahorro de datos importa más que la anticipación.
Referencia oficial: Prefetch.