![Sofia Emelianova](https://web.dev/images/authors/sofiayem.jpg) Sofia Emelianova [GitHub](https://github.com/sofiayem)

<br />

The [Speculation Rules API](https://developer.chrome.com/docs/web-platform/prerender-pages.md.txt) lets you implement a near-instant page load based on speculation rules that you define. This lets your website prefetch and prerender most navigated-to pages.

[Video](https://www.youtube.com/watch?v=BIpz9Hdjm_A)

> [!IMPORTANT]
> **Key Point:** When using speculative loads, try to strike a balance between extra work for the benefit of the user and wasteful work that ends up not being used.

Watch the video and check out this [demo](https://chrome.dev/speculative-loading/) to learn how to:

- Inspect speculations, their rules, and statuses in **Application** \> **Background services** \> **Speculative loads**.
- Switch between renders through the drop-down menu in the action bar at the top and inspect the renders using all DevTools panels.
- Live trace prerender status.

How can you know where the user will click next? To help you maximize the potential of speculative loads, [Chrome 121](https://developer.chrome.com/blog/new-in-chrome-121.md.txt#speculation-rules-api) can now pick up all the links from the document rather than a fixed list but only prerender when the user is hovering over a link and is about to click it.

Watch the last part of the video to learn how to implement and debug document rules that trigger prerenders on hover or mousedown events. These events give a small head start to speculatively load pages before navigation. Check out this feature on this [demo](https://chrome.dev/speculative-loading/common-fruits.html).

For more information, see:

- [Prerender pages in Chrome for instant page navigations](https://developer.chrome.com/docs/web-platform/prerender-pages.md.txt)
- [Debugging speculation rules](https://developer.chrome.com/docs/devtools/application/debugging-speculation-rules.md.txt)
- [Debug background services \> Speculative loads](https://developer.chrome.com/docs/devtools/javascript/background-services.md.txt#speculative-loads)