Speculation Rules: prefetch y prerender

Guía de la API Speculation Rules para mejorar la velocidad percibida mediante prefetch y prerender sin confundirla con una función de rastreo o posicionamiento.

Publicado por primera vez: 3 jul 2026 · Última actualización: 13 ago 2026 · Avanzado
Idiomas

La API Speculation Rules permite anticipar navegaciones mediante prefetch o prerender. Mejora la experiencia en navegadores Chromium, pero no acelera el rastreo ni la indexación. Deben protegerse la analítica y las URL con efectos secundarios.

Evidence for this claim The Speculation Rules API lets supporting browsers prefetch or prerender likely future navigations. Scope: Browser navigation optimization; support and restrictions vary by browser version. Confidence: high · Verified: Chrome Developers: Speculation Rules API Evidence for this claim Prerendering executes a page before activation, so analytics and side effects must account for the prerendering lifecycle. Scope: Supporting browsers and prerendered documents. Confidence: high · Verified: web.dev: Speculation rules

TL;DR — La API Speculation Rules (Chromium, Chrome/Edge 109+) permite a un sitio declarar —en JSON, en línea o mediante un encabezado Speculation-Rules— qué URL del mismo sitio debe prefetch el navegador (descargar el documento para reducir el TTFB) o prerender (obtener y renderizar por completo, además de ejecutar JS en una pestaña invisible, para reducir TTFB, FCP y LCP). Eagerness (immediate/eager/moderate/conservative) controla cuándo se activa una regla, por separado de qué URL abarca. No es un mecanismo de rastreo, indexación ni posicionamiento: Googlebot no depende de indicaciones de recursos como estas (según los comentarios generales de Illyes de febrero de 2026) y Google no publica documentación de Search al respecto. Sin embargo, Google Search la usa para hacer prefetch de sus resultados principales y Ray-Ban comunicó grandes mejoras de conversión y LCP; el beneficio es real para las personas mediante Core Web Vitals y la experiencia de usuario. Los principales riesgos son el conteo duplicado en analítica (se corrige con document.prerendering/prerenderingchange), las URL GET que cambian estado (cerrar sesión, añadir al carrito), con las que nunca debe especularse, y la compatibilidad exclusiva con Chromium. Conviene comenzar con prefetch de forma amplia y limitar prerender a una o dos páginas de alta confianza.

Qué es realmente la API Speculation Rules

La API Speculation Rules es una API del navegador —exclusiva de Chromium— que permite indicar qué páginas del mismo sitio deben prepararse antes del clic. Según MDN, está diseñada para mejorar el rendimiento de navegaciones futuras y, como apunta a URL de documentos en vez de archivos de recursos individuales, resulta adecuada para sitios de varias páginas, no para aplicaciones de una sola página. Sustituye al antiguo y obsoleto <link rel="prerender">, exclusivo de Chrome, y supera al ampliamente disponible <link rel="prefetch"> mediante una sintaxis JSON más expresiva.

Las reglas se declaran como JSON, ya sea en línea dentro de un bloque <script type="speculationrules"> o mediante un encabezado de respuesta HTTP Speculation-Rules. Pueden enumerar URL explícitas o hacer coincidir automáticamente enlaces de la página mediante condiciones where/href_matches (las llamadas reglas de documento).

Hay dos acciones especulativas y distinguirlas correctamente es fundamental:

  • Prefetch descarga el cuerpo de la respuesta de la página indicada, pero no sus subrecursos. Reduce el TTFB de la página siguiente.
  • Prerender obtiene, renderiza y carga la página en una pestaña invisible en memoria: todos los subrecursos, todo el JavaScript e incluso las solicitudes de datos iniciadas por JS. Según MDN, las navegaciones futuras a una página prerenderizada son casi instantáneas. Reduce TTFB, FCP y LCP, pero consume muchos más recursos y entraña mayor riesgo.

La síntesis de Harry Roberts en su guía por capas lo expresa bien: prefetch reduce TTFB; prerender, LCP.

Un matiz técnico poco explicado es que los recursos especulados llegan a la caché de memoria del navegador, cuya recuperación es más rápida que la de la caché HTTP usada por la indicación antigua <link rel="prefetch">. Además, un documento obtenido por prefetch o prerender también llena la caché HTTP. Por eso, incluso una especulación que nunca se activa no supone un desperdicio total: una navegación posterior todavía puede beneficiarse.

Eagerness: cuándo especular, por separado de qué URL

Una decisión de diseño acertada es separar eagerness de la segmentación. La publicación de Barry Pollard sobre las mejoras de la API lo plantea como la separación entre cuándo especular y con qué URL hacerlo. Hay cuatro niveles:

  • immediate: especula en cuanto se procesan las reglas (al cargar la página).
  • eager: comienza ante la señal más leve.
  • moderate: aproximadamente doscientos milisegundos de desplazamiento del puntero sobre el enlace (o al presionar en una pantalla táctil).
  • conservative: al presionar con el puntero o tocar; prácticamente ya se hizo clic.

Estas cuatro definiciones deben tratarse como las heurísticas actuales de Chrome, no como una especificación fija. Chrome ha cambiado los activadores móviles exactos más de una vez: trasladó moderate a heurísticas basadas en el área visible y ajustó el momento de eager incluso en enero de 2026. Conviene volver a consultar la documentación vigente antes de citar un umbral exacto de milisegundos o porcentaje en notas de implementación.

Conviene conocer dos mejoras relacionadas. No-Vary-Search permite que el navegador reutilice un documento almacenado en caché que solo difiere en parámetros ignorables, por ejemplo, variantes de una página con etiquetas UTM. El patrón más reciente prerender-until-script, explicado por CoreWebVitals.io, ofrece un punto medio entre prefetch simple y un prerender completo. En el momento de redactar este artículo sigue siendo una acción experimental no disponible de forma general, dentro de una prueba de origen de Chrome, y no una opción predeterminada ya publicada.

Protecciones propias de Chrome

Una regla demasiado amplia no puede saturar accidentalmente el dispositivo. La documentación de prerender de Chrome establece límites estrictos FIFO al margen de la configuración: las reglas con eagerness immediate admiten 50 prefetch y 10 prerender; las reglas basadas en interacción (moderate/conservative), 2 espacios. Chrome también trata prerender como una indicación y una mejora progresiva, no como una garantía: puede rechazarlo según la configuración o las restricciones de recursos, y no renderiza iframes de origen cruzado en una página prerenderizada hasta la activación. Una protección de privacidad integrada también bloquea el prefetch entre sitios cuando ya hay cookies del sitio de destino.

Reglas entre orígenes y funcionamiento interno de una página prerenderizada

Según MDN, prerender está restringido de forma predeterminada a documentos del mismo origen. Es posible prerenderizar entre orígenes dentro del mismo sitio, pero solo si la página de destino lo autoriza mediante el encabezado de respuesta Supports-Loading-Mode: credentialed-prerender. En el momento de redactar este artículo, prerender entre sitios no es posible. Prefetch entre sitios es más permisivo —funciona dentro del mismo sitio y entre sitios—, aunque sigue sujeto a la regla de privacidad que exige que no haya cookies del destino. Se documenta como planificada una autorización más amplia mediante Supports-Loading-Mode, pero aún no se ha lanzado.

Dentro de la pestaña oculta, una página en prerender no equivale a una carga normal. Las API intrusivas (alert()/confirm()/prompt(), requestFullscreen(), Navigator.share()) se bloquean o ignoran; las API asíncronas, como la geolocalización y getUserMedia(), se aplazan hasta la activación; tampoco se ejecutan antes los iframes de origen cruzado ni los scripts de workers. El almacenamiento de sesión recibe un tratamiento especial: una página en prerender comienza con un clon del almacenamiento de sesión de la pestaña, que se descarta al activarse en favor del almacenamiento real. Toda lógica que dependa de este almacenamiento debe probarse antes y después del evento prerenderingchange, no solo durante una carga normal. Para medir los tiempos, document.prerendering y prerenderingchange indican el estado y el momento de activación; PerformanceNavigationTiming.activationStart proporciona el tiempo transcurrido entre el inicio del prerender y la activación.

¿Afecta la API Speculation Rules al SEO, el rastreo o el posicionamiento?

Esta es la pregunta central para profesionales de SEO y suele tratarse de forma superficial. La respuesta precisa tiene dos partes.

Lo que NO hace

No es un mecanismo de rastreo, indexación ni posicionamiento. No existe documentación de Google Search Central que relacione la API Speculation Rules con la forma en que Googlebot rastrea o indexa, porque la API no opera en esa capa. Es una función del navegador para personas que usan Chromium.

La declaración pública más cercana de Google proviene de Gary Illyes en Search Off the Record a comienzos de 2026 y se refiere a las indicaciones de recursos en general, no a la API Speculation Rules por su nombre. Según informó Search Engine Journal, Illyes explicó que la infraestructura de Googlebot dispone de un ancho de banda casi infinito y una resolución DNS muy rápida. Por ello, indicaciones como DNS-prefetch y preload casi no aportan valor a su proceso de rastreo: ya puede comunicarse con los servidores con rapidez y no necesita que se le pida obtener recursos antes. Esto respalda la idea de que se trata de una función para navegadores y visitantes, no para rastreadores, pero debe respetarse su alcance: Illyes hablaba de la familia amplia de indicaciones de recursos, no específicamente de Speculation Rules. Se aplica el mismo criterio en el artículo relacionado sobre resource hints.

También debe aclararse que Bing no ha publicado nada sobre la API Speculation Rules en relación con el SEO. Edge (Chromium 109+) la admite como función del navegador, pero no existe un ángulo relacionado con bingbot o la indexación, tal como cabría esperar de una función de renderizado del navegador y no del rastreador de un motor de búsqueda.

Lo que SÍ puede hacer

Puede mejorar las Core Web Vitals, sobre todo LCP e indirectamente INP al adelantar la ejecución de JavaScript antes de la interacción, para personas reales. Core Web Vitals es una señal de posicionamiento documentada, aunque modesta, dentro del sistema de experiencia de página, por lo que existe una vía indirecta. Sin embargo, el argumento más sólido es la experiencia y la conversión: lograr que la página siguiente parezca instantánea aporta valor comercial al margen del posicionamiento.

Sin exagerar el alcance: Speculation Rules no cambia el rastreo ni la indexación; hace que una página parezca instantánea cuando una persona ya navega por el sitio. Es una palanca de experiencia y Core Web Vitals, no de rastreo.

Resultados reales

Dos casos aportan la evidencia principal y ambos proceden de publicaciones de Google.

Google Search la usa en su propio producto. Según el anuncio del equipo de Chrome de 2025, uno de los primeros usos de estas reglas fue aplicar prefetch a los dos primeros resultados de búsqueda. Las mejoras medidas fueron las siguientes: en Chrome para Android, el LCP de los clics procedentes de Google Search se redujo 67 milisegundos; en escritorio, la mejora similar fue de 58,6 milisegundos. El prefetch basado en pasar el puntero sobre el resto de los resultados redujo el FCP de escritorio 7,6 milisegundos y el LCP, 9,5 milisegundos. Para los resultados entre orígenes, Google Search usa el proxy privado de prefetch de Chrome para anonimizar la solicitud. Es una demostración de que Google confía lo suficiente en la API como para usarla a escala en google.com/search y publicar las diferencias exactas en milisegundos.

El caso de Ray-Ban demuestra el impacto comercial. El caso de web.dev informa que, tras prerenderizar páginas de producto, las tasas de conversión de las PDP aumentaron 101,47 % en dispositivos móviles y 156,16 % en escritorio, con una mejora del LCP del 43 % en ambos. Las tasas de salida bajaron aproximadamente 13 % y las páginas vistas por sesión subieron 51,95 % en dispositivos móviles y 65,30 % en escritorio. La separación de la implementación resulta instructiva: en escritorio se usó eagerness moderate, activado al pasar el puntero sobre las tarjetas de producto; en móviles, donde no existe ese estado, se aplicó immediate solo a las primeras cuatro tarjetas, las más seleccionadas.

La escala ya es considerable: WordPress 6.8 (marzo de 2025) incorpora esta función de forma predeterminada a partir de un complemento que ya estaba presente en decenas de miles de sitios antes de integrarse en el núcleo. Por tanto, una parte relevante de la Web ya ejecuta reglas de especulación sin configuración manual.

Cómo implementarla de forma segura

La secuencia de adopción compartida por la documentación de Google y especialistas independientes es la siguiente:

  1. Comenzar con prefetch de forma amplia. Según la guía de implementación, prefetch es relativamente seguro para la mayoría de los sitios y suele ser el punto de partida.
  2. Añadir prerender más tarde y con alcance reducido. Chrome advierte contra el exceso de prerender por su costo de recursos y recomienda limitarlo a una o dos páginas. Harry Roberts llega de forma independiente a la misma conclusión: una coincidencia semejante a un comodín es demasiado agresiva; prerenderizar todo suele resultar caro y arriesgado, por lo que conviene exigir inclusión explícita.
  3. Usar reglas de documento para escalar sin configuración por página. En vez de enumerar manualmente URL en cada página, una condición where/href_matches las obtiene del documento y permite aplicar un conjunto de reglas en todo el sitio.
  4. Revisar la CSP. Los bloques en línea <script type="speculationrules"> necesitan permiso explícito en script-src, mediante 'inline-speculation-rules', un hash o un nonce; de lo contrario, fallan sin aviso cuando existe una Content Security Policy.

Qué NO debe someterse a prefetch ni prerender

MDN y la guía de Chrome dejan claro que nunca debe especularse con determinadas URL, porque una obtención especulativa sigue siendo una solicitud real capaz de provocar efectos secundarios reales. Deben excluirse:

  • URL para cerrar sesión.
  • URL para añadir al carrito.
  • URL para cambiar de idioma o moneda.
  • Flujos de inicio de sesión que activan un SMS o código OTP.
  • URL que incrementan una cuota de uso o activan el seguimiento de conversiones publicitarias.

La corrección de fondo es de diseño: los cambios de estado, como una acción /logout, no deberían ser enlaces GET simples que una regla pudiera solicitar.

Prerender exige todavía más cautela. Tampoco deben prerenderizarse páginas que modifican el almacenamiento del cliente al cargarse, envían eventos analíticos o impresiones publicitarias durante la carga, o producen efectos secundarios como si hubiera existido una interacción. MDN señala que prerender supone más riesgo que prefetch y debe reservarse para los casos en que compense.

Cómo corregir el problema de analítica

Este problema afecta a sitios reales. Una página prerenderizada se carga por completo antes de mostrarse. Si al cargar se activa un page_view, una impresión publicitaria o un evento de Meta Pixel, se registra una visita inexistente, se inflan las sesiones de GA4 y se distorsiona la atribución.

MDN y las guías de Chrome documentan el mecanismo de corrección:

  • document.prerendering vale true mientras la página está en prerender.
  • El evento prerenderingchange se activa cuando se produce la activación, es decir, cuando la persona realmente navega a la página.
  • Los servidores también pueden detectar solicitudes especulativas mediante el encabezado Sec-Purpose (prefetch o prefetch;prerender).

En la práctica, según la guía de Chrome, algunos proveedores de analítica, como Google Analytics, y de publicidad, como Google Publisher Tag, ya admiten estas reglas y no registran una visualización hasta que la página se activa. El script gtag.js de GA4 lo gestiona automáticamente. Las etiquetas personalizadas de GTM, Meta Pixel y los scripts propios suelen no hacerlo de forma predeterminada. En configuraciones con un administrador de etiquetas, puede retrasarse el propio script del administrador o bloquear código específico hasta que la página se active o sea visible. Se ha documentado un caso real: sitios con WordPress 6.8 que activaban GA4 y Meta Pixel y registraban visitas fantasma tras la habilitación automática de la función; Erwin Hofman explica la corrección en detalle.

Realidad de la compatibilidad con navegadores

Este límite modera las expectativas de retorno: la API Speculation Rules es exclusiva de Chromium (Chrome y Edge 109+) y no pertenece a Baseline. Firefox mantiene una postura favorable sobre el estándar solo para la parte de prefetch, pero no la ha lanzado; Safari dispone de una implementación tras una bandera desactivada de forma predeterminada. Una proporción relevante del tráfico de cualquier sitio —todas las personas que usan Firefox o Safari— no obtiene beneficio alguno, por lo que las expectativas deben ajustarse a esa realidad.

Speculation Rules en WordPress 6.8+

Una gran parte de la audiencia de búsqueda usa WordPress y recibió esta función de forma predeterminada. WordPress 6.8 (marzo de 2025) incorpora Speculative Loading, activo para visitantes sin sesión iniciada y con una configuración conservadora de solo prefetch. El comportamiento puede personalizarse —incluida la activación de prerender para URL clave— mediante el filtro wp_speculation_rules_configuration. Weston Ruter, ingeniero de Google y colaborador del núcleo de WordPress, publicó una guía. La opción predeterminada es deliberadamente segura, por lo que la mayoría de los sitios pueden mantenerla activa; esa misma activación automática explica que el problema de analítica sorprendiera a quienes nunca eligieron habilitarla.

Mitos desmentidos

  • «Speculation Rules ayudará a Googlebot a rastrear el sitio más rápido». No. Es una función de renderizado del navegador para personas que usan Chromium; la infraestructura de Googlebot no necesita estas indicaciones y ningún documento de Google relaciona la API con el rastreo.
  • «Es lo mismo que <link rel="prefetch">/<link rel="prerender">». No exactamente. Sustituye al obsoleto rel="prerender", exclusivo de Chrome; añade una sintaxis JSON más rica, con reglas de documento y eagerness, y almacena los recursos especulados en la caché de memoria, no solo en la caché HTTP.
  • «Prerenderizar todo vuelve instantáneo el sitio completo sin desventajas». No. Chrome advierte contra el exceso, impone límites estrictos, y tanto Google como Harry Roberts recomiendan una o dos páginas prerenderizadas como máximo.
  • “If I add speculation rules my analytics just works.” (traducción) «Al añadir reglas de especulación, la analítica funciona sin ajustes». Solo si todos los scripts analíticos y publicitarios esperan mediante document.prerendering/prerenderingchange. GA4 lo hace; muchas etiquetas de GTM y píxeles de terceros, no.
  • «La compatibilidad es universal, por lo que sirve como valor predeterminado para todo el tráfico». No. Solo funciona en Chromium y no pertenece a Baseline; Firefox y Safari no la incorporan de forma predeterminada.
  • «Prefetch no entraña riesgos, por lo que puede usarse un comodín». Es una exageración. Una coincidencia semejante a un comodín resulta demasiado amplia, sobre todo para URL GET que cambian estado y que no deberían ser enlaces solicitables.
  • «Esto mejorará directamente el posicionamiento». Ninguna fuente oficial lo ha establecido como factor directo. La cadena creíble es Speculation Rules → mejores Core Web Vitals y conversiones de personas reales → la señal existente y modesta de experiencia de página, además de beneficios comerciales independientes del posicionamiento.

Dónde encaja

Es un tema de rendimiento web, no de rastreo, y mantener clara esa separación es esencial. Se relaciona estrechamente con las indicaciones de recursos (preload/preconnect/dns-prefetch/prefetch), que comparten la idea de adelantar el trabajo de red del navegador y la misma salvedad de que no ayudan a Googlebot. Alimenta las Core Web Vitals, sobre todo LCP, e interactúa con la caché y una CDN, ya que los documentos especulados llenan las cachés. Como equivalente del lado del rastreador, las solicitudes condicionales explican cómo Googlebot evita volver a descargar páginas sin cambios: es una capa distinta —rastreador, no navegador— que exige la misma disciplina para separar la mecánica de su impacto en el posicionamiento.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.