Guide : Speculation Rules API

Ce que le Speculation Règles API (prefetch et prerender) en réalité est, si il affecte SEO, exploration, or rankings, et comment implement il sans inflating votre analytics.

Première publication : 3 juil. 2026 · Dernière mise à jour : 3 août 2026 · Avancé

«The Speculation Rules API is a Chromium browser feature (Chrome/Edge 109+) that lets a site tell the browser to prefetch (download the HTML document) or prerender (fully load and render in an invisible tab) same-site pages before a visitor clicks — so the next navigation feels near-instant. Prefetch pays down TTFB; prerender additionally pays down FCP and LCP. It is not a crawling, indexing, or ranking mechanism — Googlebot doesn't need resource hints like this and Google publishes no Search documentation on it. Google Search itself uses the API to prefetch its top results, and Ray-Ban reported large conversion and LCP gains from prerendering, so the real value is Core Web Vitals and UX for actual visitors. The big risk to manage is analytics: a speculated page that fires a pageview before the user sees it will inflate GA4 unless the tracking checks document.prerendering. WordPress 6.8 ships a conservative, prefetch-only version on by default for logged-out users.» _(Traduction)_ (Résumé en français du champ tldr : le texte source est conservé pour relecture francophone.)

Preuve à l’appui de cette affirmation The Speculation Rules API lets supporting browsers prefetch or prerender likely future navigations. Portée : Browser navigation optimization; support and restrictions vary by browser version. Niveau de confiance : élevé · Vérifié : Chrome Developers: Speculation Rules API Preuve à l’appui de cette affirmation Prerendering executes a page before activation, so analytics and side effects must account for the prerendering lifecycle. Portée : Supporting browsers and prerendered documents. Niveau de confiance : élevé · Vérifié : web.dev: Speculation rules

TL;DR — Le Speculation Règles API (Chromium, Chrome/Edge 109+) lets a site declare — dans JSON, inline or via a Speculation-Rules header — qui même-site URLs le navigateur devrait prefetch (download le document; pays bas TTFB) or prerender (entièrement récupérer, rendre, et exécuter JS dans an invisible tab; pays bas TTFB + FCP + LCP). Eagerness (immediate/eager/moderate/conservative) contrôle quand a règle fires, séparé depuis qui URLs il targets. Il est pas a exploration/indexation/classement mechanism — Googlebot ne fait pas rely on resource hints comme ce (per Illyes’ Feb 2026 comments on hints généralement) et Google publishes aucun Recherche docs on il. Mais Recherche Google itself utilise il à prefetch son top résultats, et Ray-Ban reported grand conversion + LCP wins, donc le payoff est réel pour réel visitors via Core Web Vitals et UX. Biggest gotchas: analytics double-counting (corriger avec document.prerendering/prerenderingchange), state-changing GET URLs (logout, ajouter-à-cart) vous doit jamais speculate, et Chromium-seulement prise en charge. Commencer avec prefetch broadly; ajouter prerender à un or deux élevé-confidence pages à la plupart.

«## What the Speculation Rules API actually is » (Traduction) (Résumé en français de la section vingt et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«The Speculation Rules API is a browser API — Chromium only — that lets a site tell the browser which same-site pages to prepare before a visitor clicks. Per MDN, the API is designed to improve performance for future navigations, and because it targets document URLs rather than individual resource files, it makes sense for multi-page sites rather than single-page apps. It supersedes the old, deprecated, Chrome-only <link rel="prerender"> and goes beyond the widely-available <link rel="prefetch"> with a more expressive JSON syntax. » (Traduction) (Résumé en français de la section vingt-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Rules are declared as JSON, either inline in a <script type="speculationrules"> block or via a Speculation-Rules HTTP response header. They can list explicit URLs or auto-match links on the page via where/href_matches conditions (called document rules). » (Traduction) (Résumé en français de la section vingt-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«There are two speculative actions, and getting the distinction right is the whole game: » (Traduction) (Résumé en français de la section vingt-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

  • Prefetch downloads le corps de la réponse de le referenced page — mais pas son subresources. Il pays bas le suivant page’s TTFB.
  • Prerender récupère, renders, et charge lune page dans an invisible dans-memory tab: tout subresources, tout JavaScript, même données récupère kicked off par JS. Per MDN, future navigations à a prerendered page sont near-instant. Il pays bas TTFB et FCP et LCP — mais c’est far plus expensive et riskier.

Harry Roberts’ shorthand in his layered-approach write-up captures it bien: prefetch is pour paying bas TTFB, prerender is pour LCP.

Un under-covered technique nuance: speculated resources land dans le navigateur’s memory cache, qui est quicker à retrieve que le HTTP cache le older <link rel="prefetch"> hint utilise. Et a prefetched or prerendered document aussi populates le HTTP cache, donc même a speculation le visitor jamais utilise n’est pas pure waste — a plus tard navigation peut encore avantage.

Eagerness: quand to speculate, separate from qui URLs

A genuinely clever design choice ici est que eagerness est a séparé lever depuis targeting. Barry Pollard’s Chrome blog post on le API’s improvements frames il as separating quand à speculate depuis qui URLs à speculate on. Là sont four levels:

  • immediate — speculate as soon as le règles sont vu (sur la page charger).
  • eager — commencer on le slightest signal.
  • moderate — roughly a 200ms hover (or pointerdown on touch).
  • conservative — pointer- or touch-down, je.e. le visitor a tout mais clicked.

Treat ces four trigger definitions as Chrome’s actuel heuristics, pas a fixed spec — Chrome a modifié le exact mobile triggers plus que une fois (il déplacé moderate à viewport-based heuristics et adjusted eager’s timing as recently as January 2026), donc re-vérifier le actif docs avant quoting an exact millisecond or percentage threshold dans votre propre implementation notes.

Deux connexe refinements worth knowing: No-Vary-Search lets le navigateur reuse a mis en cache document que differs seulement par ignorable parameters (e.g. UTM-tagged variants de le même page), et le newer prerender-until-script modèle (covered par CoreWebVitals.io) offers a middle ground entre plain prefetch et a complet prerender — as de ce writing c’est encore an experimental, pas-généralement-disponible action running dans a Chrome origin trial, pas a shipped par défaut.

«### Chrome’s own guardrails » (Traduction) (Résumé en français de la section trente-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«You can’t accidentally nuke a visitor’s device with an over-broad rule. Chrome’s prerender documentation sets hard, FIFO caps regardless of your configuration: for immediate-eagerness rules, 50 prefetches and 10 prerenders; for interaction-based (moderate/ conservative) rules, 2 slots. Chrome also treats a prerender as a hint and a progressive enhancement, not a guarantee — it can decline based on the user’s settings or resource constraints — and it won’t render cross-origin iframes on a prerendered page until activation. A built-in privacy guard also blocks cross-site prefetches when the user already has cookies set for the destination site. » (Traduction) (Résumé en français de la section trente-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«### Cross-origin rules, and what actually happens inside a prerendered page » (Traduction) (Résumé en français de la section trente-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Per MDN, prerendering is restricted to same-origin documents by default. Cross-origin, same-site prerendering is possible, but only if the target page opts in with a Supports-Loading-Mode: credentialed-prerender response header — cross-site prerendering isn’t possible at all as of this writing. Cross-site prefetch is more permissive (same-site and cross-site prefetches both work), but still gated by the no-cookies-set privacy rule above; a broader cross-site prefetch opt-in via Supports-Loading-Mode is documented as planned but not yet shipped. » (Traduction) (Résumé en français de la section trente-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

À l’intérieur le hidden tab, a prerendering page n’est pas a normal page charger: intrusive APIs (alert()/confirm()/prompt(), requestFullscreen(), Navigator.share()) sont bloqué or ignored, async APIs comme geolocation et getUserMedia() sont deferred jusqu’à activation, et cross-origin iframes et worker scripts ne pas exécuter jusqu’à alors soit. Session storage obtient special handling worth knowing si votre page lit il on charger: a prerendering page commence avec a clone de le tab’s session storage, et que clone est discarded dans favor de le réel tab’s storage à activation — donc tester quelconque session-storage-dependent logic les deux avant et après le prerenderingchange event, pas simplement on a normal charger. Pour timing, document.prerendering et prerenderingchange tell vous le state et le activation moment; PerformanceNavigationTiming.activationStart donne vous le réel elapsed temps entre prerender commencer et activation si vous vouloir à mesurer il.

Fait the Speculation Rules API affecter SEO, exploration, or rankings?

Ce est le question chaque SEO veut answered, et la plupart competing articles wave il away. Le precise réponse a deux halves.

Ce que it ne fait pas do

Il est pas a exploration, indexation, or classement mechanism. Là est aucun Recherche Google Central documentation tying le Speculation Règles API à comment Googlebot explore or indexes — parce que il ne fait pas touch que couche à tout. c’est a navigateur fonctionnalité pour human visitors dans Chromium.

Le closest chose à an on-le-record Google statement est Gary Illyes on Recherche Off le Record (early 2026), talking à propos de resource hints dans general — pas le Speculation Règles API par nom. As Moteur de recherche Journal reported, Illyes’ point était que Googlebot’s propre infrastructure a near-infinite bandwidth et very rapide DNS resolution, donc hints comme DNS-prefetch et preload hold essentially aucun valeur pour son exploration traiter — il peut déjà talk à serveurs rapide et ne fait pas besoin à être told à récupérer choses précédent. Treat que as prise en charge pour “ce est a navigateur/visitor fonctionnalité, pas a robot d’exploration un,” mais remarque le scope: Illyes était addressing le broader resource-hints family, pas Speculation Règles précisément. Ce est le même discipline le sibling resource hints piece s’applique.

Aussi worth stating plainly parce que personnes demander: Bing a publié rien on le Speculation Règles API pour le SEO. Edge (Chromium 109+) prend en charge il as a navigateur fonctionnalité, mais il y a aucun bingbot or indexation angle — qui est exactly ce que vous’d expect pour a rendu-navigateur fonctionnalité plutôt que a recherche-moteur-robot un.

Ce que it PEUT do

Il peut améliorer Core Web Vitals — surtout LCP, et indirectly INP par front-loading JavaScript execution avant le interaction se produit — pour réel utilisateurs. Core Web Vitals est a documented (si modest) classement signal via lune page experience système, donc il y a an indirect classement pathway. Mais le stronger cas est plain UX et conversion: making le suivant page feel instant est a réel entreprise lever independent de rankings.

Le non-overclaiming façon à frame il: Speculation Règles ne va pas obtenir vous exploré or indexé differently — il rend une page feel instant une fois a réel visitor est déjà navigating votre site, qui est a UX et Core Web Vitals lever, pas a robot d’exploration un.

Real-world results

Deux proof points faire le heavy lifting ici, et les deux come depuis Google’s propre publications.

Recherche Google utilise il on itself. Per le Chrome team’s 2025 announcement, un de le premier utilise de speculation règles était à prefetch le premier deux recherche résultats. Le mesuré gains: on Android Chrome, LCP pour clicks depuis Recherche Google était reduced par 67 milliseconds; on desktop, a similaire 58,6 millisecond LCP improvement. Hover-based prefetching de le remaining résultats cut desktop FCP par 7,6 milliseconds et LCP par 9,5 milliseconds. Pour cross-origin résultat prefetches, Google Recherche routes les via Chrome’s privé prefetch proxy à anonymize la requête. Very quelques competing articles cite que Google trusts ce suffisant à exécuter il on google.com/recherche à scale — et publié le exact millisecond deltas.

Ray-Ban’s cas study est le entreprise-impact proof. Google’s web.dev cas study rapports que après prerendering produit pages, mobile taux de conversions on PDPs increased par 101,47% et desktop par 156,16%, avec a 43% improvement dans LCP on les deux desktop et mobile. Exit rates dropped roughly 13% on les deux, et pages viewed per session rose 51,95% on mobile et 65,30% on desktop. Le implementation split est instructive: desktop utilisé moderate eagerness triggered par hovering produit tiles; mobile (aucun hover state) utilisé immediate eagerness on simplement le premier four tiles, qui étaient le la plupart-clicked.

«And the scale is already large: WordPress 6.8 (March 2025) ships this by default, building on a feature plugin that was on tens of thousands of sites before core adoption — meaning a meaningful share of the web already has speculation rules running without anyone configuring them. » (Traduction) (Résumé en français de la section cinquante et un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Comment implement il safely

Le consensus adoption order, depuis les deux Google’s docs et independent experts:

  1. Commencer avec prefetch, broadly. Per Chrome’s implementation guide, prefetch est relatively sûr pour la plupart sites et est le initial approche nombreux prendre.
  2. Ajouter prerender narrowly, plus tard. Chrome’s docs warn contre over-prerendering à a coût de utilisateur resources, et recommend keeping prerenders bas à un or deux pages à la plupart. Harry Roberts reaches le même conclusion independently — a wildcard-like match est aussi greedy, et prerendering tout est généralement aussi expensive et aussi risky; an opt-dans approche est meilleur.
  3. Utiliser document règles à scale sans per-page config. Plutôt que hand-listing URLs on chaque page, a where/href_matches condition sources URLs depuis le document itself donc un règle définir peut appliquer site-wide.
  4. Mind votre CSP. Inline <script type="speculationrules"> bloque besoin explicit allowance dans script-src — via 'inline-speculation-rules', a hash-source, or a nonce-source — or ils silently échouer quand a Contenu Security Policy est dans placer.

Ce que PAS to prefetch or prerender

Les deux MDN et Chrome’s implementation guide sont explicit que some URLs doit jamais être speculated, parce que a speculative récupérer est encore a réel requête que peut trigger réel side effects. Le danger liste:

  • Sign-out / logout URLs.
  • “Add to cart” URLs.
  • Language- or currency-switcher URLs.
  • Sign-in flows que trigger an SMS/OTP.
  • URLs que increment a usage allowance or fire ad-conversion tracking.

Le root corriger est a design un: state changements — comme a /logout action — ne devrait pas être plain GET liens que a speculation règle pourrait récupérer dans le premier placer.

Prerender est stricter encore. Additionally dangereux à prerender: pages que modify client-side storage on charger, send analytics or ad-impressions on charger, or sinon causer side effects as si le utilisateur avait interacted. MDN’s framing est que prerendering est riskier que prefetching et devrait être fait sparingly, seulement où c’est worth il.

Fixing the analytics problem

Ce est le trap que catches réel sites. A prerendered page entièrement charge avant le utilisateur ever voit il. Si a page_view (or an ad impression, or a Meta Pixel event) fires on charger, vous avez logged a visit que n’a pas se produire — inflating GA4 sessions et corrupting attribution.

Le mechanism à corriger il est documented dans MDN et Chrome’s guides:

  • document.prerendering est true pendant que une page est étant prerendered.
  • Le prerenderingchange event fires on activation (quand le utilisateur en réalité navigates dans).
  • Serveurs peut aussi detect speculative requêtes via le Sec-Purpose requête header (prefetch, or prefetch;prerender).

«The practical reality: per Chrome’s implementation guide, some analytics providers (Google Analytics) and ad providers (Google Publisher Tag) already support speculation rules and won’t log a view until the page is activated. GA4’s own gtag.js handles it for you. What typically doesn’t handle it by default: custom GTM tags, Meta Pixel, and homegrown scripts. For tag-manager setups, one clean approach is to delay the tag manager script itself, or gate specific code until the page is activated or made visible. There’s a documented real-world version of getting this wrong — WordPress 6.8 sites reportedly firing GA4 and Meta Pixel ghost visits after the feature auto-enabled; Erwin Hofman covers the fix in depth. » (Traduction) (Résumé en français de la section soixante-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«This tempers ROI expectations and most articles bury it: the Speculation Rules API is Chromium-only (Chrome and Edge 109+). It is not Baseline. Firefox has a positive standards position on the prefetch portion only and hasn’t shipped it; Safari has an implementation behind a flag, off by default. A meaningful share of any site’s traffic — everyone on Firefox and Safari — gets zero benefit, so size your expectations accordingly. » (Traduction) (Résumé en français de la section soixante-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Speculation Rules in WordPress 6,8+

«Because so much of the search audience is on WordPress and got this by default: WordPress 6.8 (March 2025) ships built-in Speculative Loading, on by default for logged-out visitors, using a conservative, prefetch-only configuration out of the box. Site owners can customize the behavior — including opting into prerender for key URLs — via the wp_speculation_rules_configuration filter (Weston Ruter, a Google engineer and WordPress core contributor, has a walkthrough). The default is deliberately safe, which is why most WordPress sites can leave it on — but it’s also why the analytics gotcha above surprised a lot of site owners who never chose to enable anything. » (Traduction) (Résumé en français de la section soixante-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Myths, debunked

«- “Speculation Rules will help Googlebot crawl my site faster.” No — it’s a browser-rendering feature for human visitors in Chromium; Googlebot’s own infrastructure doesn’t need hints like this, and no Google doc links the API to crawling. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- “It’s the same as <link rel="prefetch">/<link rel="prerender">.” Not quite — it supersedes the deprecated Chrome-only rel="prerender", adds a richer JSON syntax (document rules, eagerness), and stores speculated resources in the memory cache rather than the HTTP cache. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- “Prerendering everything makes my whole site instant with no downside.” No — Chrome warns against over-prerendering, enforces hard caps, and both Google and Harry Roberts recommend at most one or two prerendered pages. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- “If I add speculation rules my analytics just works.” Only if every analytics and ad script defers via document.prerendering/prerenderingchange. GA4 handles it; many GTM tags and third-party pixels don’t. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.) «- “It’s universally supported, so it’s a safe default for all traffic.” No — Chromium-only, not Baseline; Firefox and Safari don’t ship it by default. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.) «- “Prefetch is risk-free, so I can wildcard it.” Overstated — a wildcard-like match is too greedy, especially for state-changing GET URLs that should never be fetchable links in the first place. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.) «- “This will directly move my rankings.” Not established by any official source as a direct ranking factor. The credible chain is Speculation Rules → better real-user Core Web Vitals / conversion → the existing, modest page-experience signal, plus business wins that matter regardless of rankings. » (Traduction) (Résumé en français de la section soixante-dix, sous-partie sept : le texte source est conservé pour vérification lors de la relecture francophone.)

Où ce sits

«This is a web performance topic, not a crawling one — and keeping that line clean is the point. It’s a close cousin of resource hints (preload/preconnect/dns-prefetch/prefetch), which share the “browser does network work earlier” idea and the same “doesn’t help Googlebot” caveat; it feeds Core Web Vitals (LCP especially); and it interacts with caching and a CDN since speculated documents populate caches. For the crawler-side analogue of “ask before you re-fetch,” the conditional-requests topic covers how Googlebot avoids re-downloading unchanged pages — a different layer (crawler, not browser), same discipline of separating mechanics from ranking impact. » (Traduction) (Résumé en français de la section soixante-douze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Ajouter une note d’expert

Épingler une citation d’expert

Nouvelle personne ? Créez son profil non revendiqué à /admin/experts/ → Épingler une citation d’expert d’abord.