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.
«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.)
TL;DR — Le Speculation Règles API lets votre site tell Chrome or Edge à charger le suivant page a visitor est probable à click — quietly, dans le background — avant ils click il. Quand ils faire click, lune page peut apparaître presque instantly. c’est a speed fonctionnalité pour réel personnes en utilisant Chromium navigateurs. Il fait pas aider Google explorer or classer votre site, mais il peut faire pages feel faster, qui est bon pour utilisateurs (et, indirectly, pour Core Web Vitals).
Ce que c’est
Normally, quand vous click a lien, le navigateur commence fetching que page depuis scratch — et vous wait. Le Speculation Règles API lets a site obtenir a head commencer: il indique le navigateur “le visitor va probably go ici suivant, donc commencer getting il ready maintenant.” Quand le click finalement se produit, le navigateur swaps dans lune page il déjà prepared au lieu de starting over.
Là sont deux versions de “getting it ready,” et le difference matters:
- Prefetch — le navigateur quietly downloads le suivant page’s HTML dans le background. Lighter weight, lower risque.
- Prerender — le navigateur entièrement charge et renders le suivant page dans an invisible tab, running son JavaScript et tout. Heavier, mais lune page peut apparaître truly instantly. Riskier, donc vous utiliser il sparingly.
«You set this up with a small block of JSON on your page. You can list exact URLs, or tell the browser “prepare any link the visitor hovers over.” » (Traduction) (Résumé en français de la section neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Fait it aider SEO?
Court version: pas le façon personnes hope. Il ne va pas obtenir vous exploré or indexé faster. Googlebot ne fait pas besoin ce — c’est a fonctionnalité pour human visitors dans Chrome et Edge, pas pour recherche bots.
Ce que il peut faire est faire votre pages feel faster une fois quelqu’un est déjà on votre site, clicking autour. Faster real-world experiences feed dans Core Web Vitals, qui est a (modest) classement signal — et, plus importantly, faster pages tend à convert meilleur. Ray-Ban, Par exemple, reported a big jump dans conversions après prerendering produit pages.
The un chose to watch out pour
Votre analytics peut lie à vous. Si le navigateur prerenders une page avant le visitor ever voit il, et que page fires a “pageview” le moment il charge, votre analytics va count a visit que jamais happened. Google Analytics 4’s propre script handles ce correctement on son propre — mais nombreux autre balises et pixels ne pas, et ils’ll log phantom pageviews unless a developer patches les.
«If you’re on WordPress 6.8 or later, you already have a safe, conservative version of this turned on by default (prefetch only, for logged-out visitors). You didn’t have to do anything — it came with an update. » (Traduction) (Résumé en français de la section quinze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Vouloir le complet picture — prefetch vs. prerender dans detail, eagerness levels, le “never prerender this” liste, et Comment corriger le analytics problème? Switch à le Avancé tab.
TL;DR — Le Speculation Règles API (Chromium, Chrome/Edge 109+) lets a site declare — dans JSON, inline or via a
Speculation-Rulesheader — 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 avecdocument.prerendering/prerenderingchange), state-changingGETURLs (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:
- 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.
- 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.
- Utiliser document règles à scale sans per-page config. Plutôt que hand-listing
URLs on chaque page, a
where/href_matchescondition sources URLs depuis le document itself donc un règle définir peut appliquer site-wide. - Mind votre CSP. Inline
<script type="speculationrules">bloque besoin explicit allowance dansscript-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.prerenderingesttruependant que une page est étant prerendered.- Le
prerenderingchangeevent fires on activation (quand le utilisateur en réalité navigates dans). - Serveurs peut aussi detect speculative requêtes via le
Sec-Purposerequête header (prefetch, orprefetch;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.)
Navigateur prise en charge reality vérifier
«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.)
AI summary
A condensed prendre on the Avancé version:
«- What it is: a Chromium-only (Chrome/Edge 109+) browser API to prefetch
(download the HTML document; pays down TTFB) or prerender (fully load + run JS
in an invisible tab; pays down TTFB + FCP + LCP) same-site pages before a click.
Declared as JSON inline or via a Speculation-Rules header.
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Eagerness (immediate/eager/moderate/conservative) controls when a
rule fires, separate from which URLs it targets. Chrome enforces hard caps (50
prefetches / 10 prerenders for immediate rules); the exact triggers are
Chrome-version-dependent heuristics, not fixed constants.
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Cross-origin: prerender is same-origin by default; cross-origin same-site
prerender needs the target’s opt-in (Supports-Loading-Mode: credentialed-prerender); cross-site prerender isn’t possible at all. Prefetch is
more permissive but still gated by a no-destination-cookies privacy rule.
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- SEO reality: not a crawling/indexing/ranking mechanism — Googlebot doesn’t
need resource hints (per Illyes, Feb 2026, on hints generally) and Google has no
Search doc on it. Bing has published nothing. It can move Core Web Vitals
(LCP/INP) and conversions for real users — an indirect ranking + UX lever.
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Proof it works: Google Search prefetches its top two results (LCP down
~58–67ms); Ray-Ban reported ~100–156% conversion lifts and a 43% LCP improvement
from prerendering PDPs.
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Biggest risk — analytics: a speculated page firing a pageview on load inflates
GA4. Fix with document.prerendering / prerenderingchange. GA4 handles it
natively; GTM custom tags and Meta Pixel often don’t.
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Never speculate state-changing GET URLs: logout, add-to-cart, currency/lang
switchers, OTP sign-in. Redesign those off GET links.
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie sept : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Adoption order: prefetch broadly, add prerender to one or two pages max, mind
CSP ('inline-speculation-rules').
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie huit : le texte source est conservé pour vérification lors de la relecture francophone.)
«- WordPress 6.8+ ships conservative, prefetch-only speculative loading on by
default for logged-out users (wp_speculation_rules_configuration filter to
customize).
» (Traduction) (Résumé en français de la section soixante-dix-sept, sous-partie neuf : le texte source est conservé pour vérification lors de la relecture francophone.)
Documentation officielle
Primary-source documentation. Remarque: le moteur de recherches publish rien on ce as an SEO topic — le authoritative docs sont navigateur/standards références.
MDN / standards
- Speculation Règles API — le technique référence: syntax, prefetch vs. prerender, privacy, CSP, et navigateur-compatibility status.
- Speculation-Règles HTTP header — declaring règles via une réponse header au lieu de an inline script.
Chrome pour Developers (Google)
- Prerender pages dans Chrome pour instant page navigations — comment prerender fonctionne, le hint-pas-guarantee framing, et Chrome’s FIFO caps.
- Guide à implementing speculation règles pour plus complexe sites — le analytics warning, tiers-script handling, et state-modifier cautions.
- Improvements à le Speculation Règles API (Barry Pollard, 2024) — document règles, eagerness,
No-Vary-Search, HTTP-cache reuse. - Recherche Google maintenant utilise le Speculation Règles API (Pollard & Busaryev, 2025) — Google’s propre usage et le mesuré LCP/FCP deltas.
web.dev (Google)
- Comment Ray-Ban doubled taux de conversion… via prerendering — le entreprise-impact cas study.
- Prefetching, prerendering, et precaching — memory cache vs. HTTP cache, et quand à être cautious.
WordPress (official fonctionnalité docs)
- Speculative Chargement dans 6,8 (Faire WordPress Core) — le par défaut behavior et configuration filter.
- Speculative Chargement fonctionnalité plugin — le plugin core adoption était fondé on.
«## Quotes from the source » (Traduction) (Résumé en français de la section quatre-vingt-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Statements from the primary browser/standards documentation and Google’s own publications. Because this isn’t a search-engine SEO topic, there are no Google Search quotes — the sources are Chrome/MDN/web.dev. » (Traduction) (Résumé en français de la section quatre-vingt-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«MDN — what it is and does » (Traduction) (Résumé en français de la section quatre-vingt-dix, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “The Speculation Rules API is designed to improve performance for future navigations. It targets document URLs rather than specific resource files, and so makes sense for multi-page applications (MPAs) rather than single-page applications (SPAs).” Jump to quote » (Traduction) (Résumé en français de la section quatre-vingt-onze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Chrome — Recherche Google’s propre usage (le strongest proof point)
«- “One of the first uses of speculation rules was to prefetch the first two search results.” — Chrome for Developers blog. Jump to quote » (Traduction) (Résumé en français de la section quatre-vingt-treize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- On Android Chrome, LCP for clicks from Google Search was “reduced by 67 milliseconds.” Jump to quote » (Traduction) (Résumé en français de la section quatre-vingt-treize, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- On desktop, a “similar improvement in LCP of 58.6 milliseconds.” Jump to quote » (Traduction) (Résumé en français de la section quatre-vingt-treize, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
Remarque: le three deep liens ci-dessus (le MDN definition et le deux Google Recherche millisecond figures) étaient confirmed as exact substrings de le récupéré pages dans le source-gathering réussir. Le remaining source claims cited à travers ce article — Chrome’s prerender/implementation guides, le Ray-Ban case-study numbers, MDN’s prefetch/prerender mechanics, et Gary Illyes’ Recherche Off le Record resource-hints comments (qui étaient relayed via Moteur de recherche Journal, et qui addressed resource hints dans general, pas le Speculation Règles API par nom) — étaient pas independently re-verified as verbatim substrings dans ce réussir, donc ils sont paraphrased dans le corps plutôt que presented as direct quotations. Confirmer quelconque de les contre le actif source avant treating il as a final pull-citation.Speculation Rules cheat sheet
Prefetch vs. prerender
| Prefetch | Prerender | |
|---|---|---|
| Ce que it fait | Downloads lune page’s HTML document seulement | Entièrement récupère, renders, and runs JS in an invisible tab |
| Metrics it improves | TTFB | TTFB + FCP + LCP |
| Cost / risk | Lower | Plus élevé (memory, bandwidth, side effects) |
| How beaucoup to utiliser | Broadly is OK | 1–2 high-confidence pages max |
| Où it caches | HTTP cache | In-memory cache (aussi populates HTTP cache) |
Eagerness — quand a rule fires (independent of qui URLs)
| Level | Fires quand… |
|---|---|
immediate | As soon as le règles sont parsed (page charger) |
eager | On le slightest signal toward a lien |
moderate | ~200ms hover (pointerdown on touch) |
conservative | Pointer/touch-down — visitor a tout mais clicked |
Chrome’s hard caps (regardless of votre config)
immediaterules: 50 prefetches / 10 prerenders.- Interaction-based (
moderate/conservative) rules: 2 FIFO slots.
«Cross-origin quick reference
» (Traduction) (Résumé en français de la section cent trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Prerender: same-origin by default; cross-origin same-site needs the target to
send Supports-Loading-Mode: credentialed-prerender; cross-site prerender
isn’t possible.
» (Traduction) (Résumé en français de la section cent trois, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Prefetch: same-site and cross-site both work, gated by the no-destination-cookies
privacy rule.
» (Traduction) (Résumé en français de la section cent trois, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«Fast facts
» (Traduction) (Résumé en français de la section cent quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Support: Chromium-only (Chrome/Edge 109+). Not Baseline. Firefox = prefetch
standards position only (unshipped); Safari = behind a flag, off by default.
» (Traduction) (Résumé en français de la section cent quatre, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Declared as JSON: inline <script type="speculationrules"> or a
Speculation-Rules HTTP header.
» (Traduction) (Résumé en français de la section cent quatre, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- CSP: inline blocks need 'inline-speculation-rules' (or hash/nonce) in
script-src.
» (Traduction) (Résumé en français de la section cent quatre, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Detect a speculative load: document.prerendering, the prerenderingchange
event, or the Sec-Purpose request header.
» (Traduction) (Résumé en français de la section cent quatre, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Not a Google ranking/crawl signal. Google Search uses it (top-2 results, ~58–67ms
LCP). WordPress 6.8+ = conservative, prefetch-only, logged-out, on by default.
» (Traduction) (Résumé en français de la section cent quatre, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
Ce que pas to do
Speculating state-changing GET URLs.
A speculative récupérer est a réel requête. Jamais prefetch or prerender logout,
ajouter-à-cart, currency/langue switchers, OTP-triggering sign-dans flows, or
allowance-incrementing URLs. Le réel corriger est design: ceux actions ne devrait pas être
plain GET liens a règle pourrait récupérer. Ce est documented dans les deux MDN et Chrome’s
implementation guide.
Prerendering broadly or with a wildcard. Chrome caps it and warns contre over-prerendering at a cost of utilisateur resources; Harry Roberts calls a wildcard-like match aussi greedy. Garder prerenders to un or two high-confidence pages.
Assuming votre analytics est fine.
Si a prerendered page fires une pageview on charger, vous’ll inflate GA4 avec visits que
jamais happened. GA4’s gtag.js handles ce — mais GTM custom balises, Meta Pixel, et
homegrown scripts souvent ne pas. WordPress 6,8 sites reportedly logged GA4/Meta ghost
visits après le fonctionnalité auto-enabled. Gate tracking on document.prerendering /
prerenderingchange.
Forgetting votre CSP.
An inline <script type="speculationrules"> silently fails sous a Content Security
Policy unless script-src permet 'inline-speculation-rules' (or a hash/nonce).
Expecting it to aider exploration or rankings. It doesn’t touch Googlebot. Selling ce internally as an “SEO fix pour budget d’exploration or rankings” sets the incorrect expectation — pitch it as a Core Web Vitals / conversion win pour réel Chromium visitors.
«Over-estimating reach. It’s Chromium-only. Firefox and Safari users get nothing by default, so don’t model ROI as if it applies to all traffic. » (Traduction) (Résumé en français de la section cent treize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Worked exemples
Minimal, illustrative rule blocks. Adapt targeting to votre propre site and toujours exclude state-changing URLs.
1. Prefetch deux explicit URLs (safest starting point)
<script type="speculationrules">
{
"prefetch": [
{ "urls": ["/pricing/", "/features/"] }
]
}
</script>2. Document rules — prefetch same-site liens on hover (moderate)
<script type="speculationrules">
{
"prefetch": [
{
"where": { "href_matches": "/*" },
"eagerness": "moderate"
}
]
}
</script>3. Prerender un high-confidence page, excluding dangerous paths
<script type="speculationrules">
{
"prerender": [
{
"where": {
"and": [
{ "href_matches": "/*" },
{ "not": { "href_matches": "/logout*" } },
{ "not": { "href_matches": "/cart*" } }
]
},
"eagerness": "conservative"
}
]
}
</script>4. Deliver rules via HTTP header au lieu de an inline script
Speculation-Rules: "/speculation-rules.json"…où /speculation-rules.json renvoie le même JSON avec a
application/speculationrules+json contenu type. Utile quand a strict CSP rend
inline scripts painful.
5. Guard analytics contre firing during prerender
if (document.prerendering) {
document.addEventListener('prerenderingchange', sendPageview, { once: true });
} else {
sendPageview();
}Ce defers lune pageview jusqu’à lune page is en réalité activated — the même pattern GA4’s propre script uses.
Analytics jumped après prerender shipped
- Pause le prerender règle, pas le entier performances program. Garder a copy de le deployed règle et switch le affected chemin back à prefetch or aucun speculation. Si le unexplained trafic arrête, continuer avec le prerender investigation.
- Séparé activation depuis background charger. Reproduce dans Chromium et inspect
document.prerenderingavant navigation. Si analytics fires pendant que il esttrue, le balise records une page le visitor a pas activated. - Identifier le firing owner. Vérifier GA4, custom GTM balises, ad pixels, et homegrown events independently. Si seulement un source inflates, corriger que integration plutôt que weakening chaque règle.
- Gate le event. Delay lune pageview or impression jusqu’à
prerenderingchange/activation. Si le provider déjà prend en charge prerendering, supprimer duplicate custom firing logic. - Replay le abandoned-navigation cas. Trigger a prerender mais ne faites pas click. Le event doit remain absent. Alors activate lune page une fois et confirmer exactly un event est recorded.
- Restore narrowly. Re-enable un élevé-confidence prerender cible, comparer activated navigations avec analytics events, et expand seulement quand counts remain aligned.
Examiner a rule définir pour side effects
Review this Speculation Rules JSON and a list of site routes. Classify every matched
route as safe to prefetch, safe to prerender, or exclude. Explicitly flag logout,
add-to-cart, language/currency switching, OTP, allowance-changing, analytics, storage,
and ad-impression side effects. Check eagerness, scope, and likely resource waste.
Return the smallest safe rule set plus validation and rollback tests. Do not claim a
crawling, indexing, or direct ranking benefit.Design a staged rollout
Create a staged Speculation Rules rollout for this click-path data and browser mix.
Start with prefetch, choose at most one or two high-confidence prerender targets, and
explain why each route is likely enough to justify its cost. Include Chromium-only
segmentation, analytics activation handling, CSP checks, success metrics, an abandoned
navigation test, and rollback triggers. Do not invent conversion or performance gains.Debug manquant speculation
Given this page markup, response headers, CSP, browser version, and DevTools evidence,
diagnose why a speculation rule was not used. Check invalid JSON, CSP blocking,
unsupported browser, rule mismatch, resource limits, cross-origin restrictions, and
browser discretion. Return symptom, evidence, likely cause, smallest fix, and the
exact evidence that would confirm it. Safe speculation release checklist
- Navigateur-prendre en charge données justifies a Chromium-seulement progressive enhancement.
- Initial rollout utilise prefetch; prerender est limited à un or deux élevé-confidence destinations.
- Logout, cart mutation, login/OTP, langue/currency, allowance-changing, et autre state-changing OBTENIR routes sont excluded.
- Prerendered pages ne faites pas mutate storage or fire impressions avant activation.
- Session-storage-dependent logic est testé les deux avant et après
prerenderingchange(a prerendering page commence avec a storage clone c’est discarded à activation). - Quelconque cross-origin prerender cible sends
Prend en charge-Loading-Mode: credentialed-prerender; cross-site prerender n’est pas attempted à tout. - Custom analytics et pixels vérifier
document.prerenderinget wait pourprerenderingchangequand necessary. - CSP permits le inline or external speculation-règles delivery méthode.
- Targeting et eagerness come depuis observed navigation behavior, pas a wildcard guess.
- DevTools confirms le règle est valide, eligible, et utilisé seulement pour prévu URLs.
- An abandoned speculative charger records aucun pageview, conversion, or state modifier.
- Safari et Firefox encore recevoir a entièrement functional normal navigation.
- Performances et entreprise résultats sont mesuré on activated navigations, avec wasted speculation tracked séparément.
Activation and analytics integrity
Tester à exécuter: Trigger a prerender sans clicking, alors repeat et activate le page une fois pendant que observing analytics et custom pixel requêtes.
Attendu résultat: Le abandoned prerender records aucun pageview or impression; le activated navigation records exactly un.
Échec interpretation: A balise fires on background charger or duplicate activation logic records le même visit twice.
Monitoring window: Tester avant release, immédiatement après release, and après tag manager or analytics-library changements.
Rollback trigger: Disable prerender pour the affected route si speculative loads inflate sessions, impressions, conversions, or attribution.
Navigation performances and waste
Tester à exécuter: Comparer matched activated navigations avec et sans le règle, et count speculations que sont jamais activated.
Attendu result: Targeted Chromium navigations montrer précédent document/paint timing sans an unacceptable volume of unused fonctionner or current-page regressions.
Échec interpretation: Le prediction est weak, eagerness est aussi aggressive, or background fonctionner competes avec le actuel page.
Monitoring window: Examiner during a limited rollout à travers representative devices et connection classes avant expanding scope.
Rollback trigger: Étape back depuis prerender à prefetch, or supprimer le règle, si unused requêtes or regressions outweigh le mesuré activated-navigation avantage.
Side-effect exclusion
Tester à exécuter: Exercise chaque matched route sans activation et inspect serveur state, authentication, cart contents, messaging, et usage counters.
Attendu result: Aucun speculative requête changements utilisateur or server state.
Échec interpretation: A state-changing OBTENIR route was matched or une page executes side effects during background charger.
Monitoring window: Re-run quand routes, document-rule selectors, or application side effects modifier.
Rollback trigger: Supprimer the match immédiatement si a speculative requête logs out a utilisateur, changements a cart, sends a message, consumes an allowance, or records a conversion.
Speculative-navigation scorecard
Metric: Activated-navigation performances pour eligible Chromium utilisateurs, paired avec speculation activation rate et analytics-event accuracy.
Ce que it indique vous: Si prediction rend réel next-page navigations faster, how souvent prefetched/prerendered fonctionner is en réalité utilisé, and si measurement stays trustworthy.
Comment pull il: Segment real-utilisateur navigation et paint timings par navigateur et règle exposure; log speculation candidates et activations; comparer activated pageviews avec analytics events. Garder prefetch et prerender cohorts séparé.
Benchmark or realistic range: Utiliser le site’s propre pre-release distribution et a controlled holdout. Là est aucun honest universal activation-rate or conversion cible; navigateur mix, chemin predictability, page weight, et intent differ par site.
Cadence: Watch resource utiliser et analytics integrity during rollout, examiner performances et activation weekly pendant que tuning règles, et re-audit après navigation, tagging, CSP, or navigateur-prendre en charge changements.
Ressources utiles
Mon connexe writing
- Le Beginner’s Guide à SEO technique — où page-experience et performances topics comme ce fit dans le bigger picture.
- Core Web Vitals: Ce que Ils Sont et Comment Améliorer Les — le LCP/INP metrics que Speculation Règles en réalité moves pour réel utilisateurs. (Remarque: Je ne pas yet ont a dedicated Ahrefs guide précisément on le Speculation Règles API — ce piece est le deep dive; le liens ici sont mon closest adjacent coverage.)
«My speaking » (Traduction) (Résumé en français de la section cent soixante-dix-huit, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- What’s Next for Page Experience — SMX Next 2021 (SlideShare) — my page-experience talk that flagged early-loading techniques (a “Get Things Earlier” slide linking to the then-experimental speculative prerendering), which predates the modern Speculation Rules API but points at the same idea. » (Traduction) (Résumé en français de la section cent soixante-dix-huit, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- How Search Works (SlideShare) — crawling, rendering, indexing, and ranking, useful for keeping the browser layer separate from the crawler layer. (My standing disclaimer applies: “This is my understanding of systems… not going to be 100% complete or accurate.”) » (Traduction) (Résumé en français de la section cent soixante-dix-huit, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«From around the industry
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Google Search now uses the Speculation Rules API (Chrome for Developers) — Google’s own usage, with the LCP/FCP millisecond deltas.
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«- How Ray-Ban doubled conversion rate… through prerendering (web.dev) — the best business-impact case study on prerendering.
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.)
«- A Layered Approach to Speculation Rules (Harry Roberts, CSS Wizardry) — the strongest independent-expert implementation write-up, including the “prefetch for TTFB, prerender for LCP” model.
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Google Explains Why Its Crawler Ignores Your Resource Hints (Search Engine Journal) — Illyes’ Feb 2026 comments on why Googlebot doesn’t benefit from resource hints (general, not Speculation-Rules-specific).
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Google Search now uses Speculation Rules API to make search faster (Search Engine Land) — trade-press corroboration of the Chrome announcement.
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Prevent skewed analytics when using Speculation Rules (Erwin Hofman) — an in-depth fix for the GA4 contamination problem.
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie sept : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Eagerly Prerender Key URLs with Speculative Loading in WordPress (Weston Ruter, Google/WordPress core) — how to customize WordPress 6.8’s default via the wp_speculation_rules_configuration filter.
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie huit : le texte source est conservé pour vérification lors de la relecture francophone.)
«- Blazing Fast Websites with Speculation Rules (DebugBear) — a performance-tool vendor’s practical walkthrough.
» (Traduction) (Résumé en français de la section cent soixante-dix-neuf, sous-partie neuf : le texte source est conservé pour vérification lors de la relecture francophone.)
Testez vos connaissances: Speculation Rules
Five rapide questions on ce que le Speculation Règles API fait — et ne fait pas — faire. Pick an réponse pour chaque, alors vérifier.
Journal des modifications
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.