demo · v138
Rules builder
An interactive editor for the full Speculation Rules JSON schema — including the new target_hint field. Pick action, eagerness, target, then inject the rules into the page and watch what the browser does. Includes a compatibility matrix showing which combinations are valid.
Unflagged in Chrome 138.
target_hint: "_blank" joins the existing fields. Required if you plan to prerender a page that will end up in a new tab — otherwise Chrome silently drops the prerender to a prefetch.
probing speculation rules support…
Generated speculation rules
Compatibility matrix · action × target_hint
_self
_blank
prefetch
OK (always)
OK · hint affects which tab gets the cached entry
prerender
OK
v138 required — without the hint, Chrome demotes to prefetch silently
- target_hint = _self: prerender goes into the current tab. Use for in-page nav.
- target_hint = _blank: prerender is reserved for a new tab. Use when the link has
target=_blankor you expect middle-click. - Missing hint + _blank link: Chrome 137 wasted the prerender on the wrong tab. v138 demotes it to a prefetch instead.
What's happening
- Every speculation rules block is a JSON document with
prefetchorprerenderarrays. - Each rule names
source(list,document, orhref_matches), an eagerness, and a set of URLs or patterns. - The new
target_hintfield tells the browser which top-level browsing context the prerender will be moved into. Without it, a prerender of atarget=_blanklink is wasted. - Try the builder: switch action between prefetch and prerender, switch target_hint, inject, then open DevTools → Application → Speculative Loads to see what the browser actually scheduled.