Your homepage is fast. Full-page cache is warm. Images behave. Then someone hovers a menu link for half a second, commits to the click, and still waits through another round trip while WordPress builds the next HTML. That gap is not always a cache miss. It is often a navigation that started too late.
Browsers can fetch the next page while the pointer is still deciding. Speculative loading (prefetch and, where supported, Speculation Rules) turns that hesitation into download time. Lightify wires it for WordPress with sane defaults: same-origin links, exclusions for carts and logouts, and Pro Speculation Rules where the browser supports them.
Lightify is the DaftPlug performance plugin. This post is about speculative loading: prefetch on hover, focus, or touch start, Speculation Rules API where supported, and exclusions for carts, logout, and admin URLs. Not WebP conversion, not unused CSS removal, not cache warm-from-sitemap, not emoji bloat cleanup, not YouTube placeholders. For warming the cache before anyone arrives, keep warming the WordPress full-page cache from your sitemap nearby. That is the “before first visit” half. This post is the “before the click lands” half.
What Lightify actually ships here
Stay inside the real feature set:
- Prefetch links as the visitor shows intent (hover, focus, or touch start on the product story; desktop approach / mobile viewport entry in the network docs)
- Speculation Rules API on Pro where the browser supports it, which can go beyond a plain prefetch toward prerender-style readiness
- Exclusions that keep carts, logout, and admin-style dangerous URLs out of the party
- Conservative defaults such as same-origin links, skipping URLs with query strings, and a per-page prefetch cap (docs note a cap of 12)
- Awareness that prefetch requests may send a
Sec-Purpose: prefetchheader, so CDN andno-storecaching headers matter
Resource hints (preconnect, preload, plain prefetch of specific assets) are related network tools on the same settings area. This article stays on speculative navigation of pages, not hand-authored font preloads.
Why speculative loading beats “just make TTFB lower”
Cache makes the first byte cheaper. Speculation makes the click feel already done. A warm page cache still waits for the click before the browser asks for the next document. Prefetch starts that request during hover or focus.
Menus are full of predictable next clicks. Top navigation, related posts, and category chips are high-probability destinations. Fetching them early is not wild guessing. It is reading intent.
Mobile intent looks different. On phones there is no hover. Touch start and viewport-aware prefetch matter so the next page is in flight when the finger commits.
WooCommerce needs guardrails. Prefetching a logout link or a cart action URL that changes state on GET is how “performance” becomes “random cart empties.” Lightify’s product story calls out exclusions for carts, logout, and admin URLs. The docs also skip query-string URLs by default, which keeps many cart and logout patterns away automatically. Still verify your own custom endpoints.
It pairs with cache preload rather than replacing it. Sitemap warming helps the first visitor after a purge. Speculative loading helps the person already on the site move to the next URL. Run both jobs for different moments in the journey.
How to enable speculative loading in wp-admin
Assume Lightify is installed and you are not stacking a second full-page cache plugin on top of it.
1. Open Lightify Network improvements
In wp-admin, open Lightify settings and find Network improvements. This is the tab that makes the *next* page faster. Everything else on the plugin is mostly about the *current* page.
2. Turn on prefetch (intent-based)
Enable the prefetch control. Defaults are conservative: same-origin links, no query strings, capped prefetches per page. Leave those rails on unless you have a measured reason to widen them.
What you should see in behavior:
- On desktop, lingering on a nav link starts a prefetch before click.
- On mobile, intent signals (touch / approaching the link in viewport per docs) start work without waiting for a full navigation.
- Dangerous or dynamic URLs stay out via exclusions and query-string skips.
3. Enable Speculation Rules on Pro where you want the stronger path
Pro adds the Speculation Rules API path. Where the browser supports it, the browser can predict navigation more aggressively and may prerender rather than only download. Keep it on if you are on Pro and your templates are safe to prerender (no surprise GET side effects).
If a page must never be speculated, keep it out with exclusions rather than disabling the whole feature site-wide.
4. Confirm exclusions for carts, logout, and admin
Walk your critical paths:
- Hover or focus Shop → Product → Cart → Checkout.
- Confirm cart and checkout do not get speculative side effects.
- Confirm logout and wp-admin links are not being warmed as if they were blog posts.
- If you have custom “add to cart via link” or “toggle wishlist via GET” plugins, add those URL patterns to exclusions.
Prefetch is not magic. It is an early GET. Anything that changes state on GET does not belong in the speculation set.
5. Check CDN and cache headers if prefetches look ignored
Docs note that prefetch requests may carry Sec-Purpose: prefetch. Some CDNs decline them. Pages sent with no-store will not be prefetched usefully. If DevTools shows refusals, fix caching headers or CDN rules before blaming Lightify.
Also remember: speculative loading costs bandwidth for pages nobody opens. Caps and same-origin defaults exist so you do not turn a blog into an open download of every archive page.
6. Measure like a human, not only like Lighthouse
Lighthouse may not fully simulate hover intent. Use:
- Chrome DevTools Network while hovering menu links.
- A mid-range phone on real Wi‑Fi for touch journeys.
- A before/after feel test on your top three internal navigations (Home → Product, Article → Related, Category → Post).
Pair the feel test with your existing Core Web Vitals monitoring in Lightify for the pages people land on. Speculation helps navigations after arrival. It does not replace LCP work on the entry URL.
What good looks like
- Hovering a primary nav link shows a prefetch (or speculation) for that same-origin document before click.
- Clicking that link feels closer to instant on a warm connection because the bytes were already moving.
- Cart, checkout, logout, and admin URLs stay excluded.
- Query-string action links are not speculated by default.
- Prefetch count per page stays capped so one mega-menu does not download the whole site.
- CDN/cache headers allow
Sec-Purpose: prefetchwhere you expect hits. - Cache preload from the sitemap still handles cold first visits after a purge.
If speculation is on and clicks still feel cold, check whether the destination was excluded, no-store, or simply not same-origin (external docs links will not help your internal IA).
Pitfalls (the ones that bite)
Prefetching stateful GET URLs. Logout, “add to cart” links, one-click toggles. Exclude them.
Turning speculation into a substitute for page cache. A slow uncached destination is still slow to build. Warm cache and speculation solve different gaps.
Disabling caps to “go faster.” Unlimited prefetch turns performance into bandwidth waste and server noise.
Ignoring mobile. If you only demo hover on a desktop trackpad, you missed half the product story.
Fighting the CDN. If the edge refuses prefetch purposes, fix the edge.
Stacking multiple speculation plugins. One owner for this behavior. Lightify should be that owner if you enabled it here.
Expecting WebP or unused-CSS wins from this toggle. Those are separate Lightify features.
Practical checklist before you call it done
- Open Lightify → Network improvements.
- Enable intent-based prefetch with default same-origin and query-string skips.
- On Pro, enable Speculation Rules and confirm browser support on a modern Chromium test device.
- Verify cart, checkout, logout, and admin are excluded.
- Audit custom GET action plugins and exclude their patterns.
- Hover top nav links in DevTools and confirm prefetch requests fire.
- Repeat a primary journey on a phone.
- Check CDN logs or Network for
Sec-Purpose: prefetchrefusals. - Keep sitemap cache preload enabled for cold entries after purges.
- Re-test after theme or menu redesigns that add dozens of new links.
Takeaway
Making the current WordPress page fast is only half the job. People judge you on the click that takes them somewhere else. Speculative loading starts that next page while intent is still forming.
Lightify prefetches on hover, focus, or touch start, uses the Speculation Rules API on Pro where supported, and keeps carts, logout, and admin URLs out of the speculation set. Leave the conservative caps on. Fix CDN headers if prefetches are refused. Pair it with sitemap cache warming for cold first hits.
One Pro membership unlocks Lightify plus Progressify, Generatify, Rankify, and Snapshotify. New Pro plugins join existing memberships. Plans differ by site count only (Pro $37.99 for 1 site, Pro Plus $74.99 for 5, Pro Max $138.99 for 100), with a 14-day money-back guarantee. See pricing when the next page should be moving before the click lands.
Enable speculation. Hover a nav link once in DevTools. When the document request starts before the click, you closed the gap cache alone never touches.
