Preload and speculation reduce the time between a navigation and useful content. The server warms eligible cache files, browsers receive conservative next-page hints, and critical resources can be prioritized. Each layer is opt-in and bounded.
Speculation rules
enableSpeculationRules uses the WordPress Speculation Rules API when available. The default mode is prefetch with conservative eagerness. Admin, login, REST, feeds, unsafe queries, and dynamic WooCommerce routes are excluded. Do not enable prerender until target pages are safe to render speculatively.
Resource hints
Preconnect, DNS prefetch, font, CSS, and image hints are emitted through the current WordPress resource-hint and preload paths. Keep origin lists short: every speculative connection competes with critical resources. Verify the resulting HTML rather than assuming a setting produced a hint.
Cache warm-up
enablePreloadCache schedules bounded batches. preloadSitemap can add same-site URLs discovered from the WordPress sitemap, with an off-site filter and a discovery budget. excludePreloadCache is prefilled with common account, cart, and checkout paths. The Preload screen shows queue status and can resume a stalled queue.
LiteSpeed crawler
On LiteSpeed, the crawler can warm configured guest/mobile/format variants. It has bounded concurrency, a load threshold, request and wall-clock budgets, and a failure blacklist. It is intentionally polite; do not use it as synthetic traffic.
LCP discovery
autoLcpPreload uses a measured or configured LCP candidate, while autoDiscoverFonts discovers font URLs for local/priority delivery. The image page explains the LCP guardrail pairing.
Settings
| Key | Default |
|---|---|
enablePreloadCache | false |
preloadSitemap | false |
enableSpeculationRules | false |
speculationMode | prefetch |
speculationEagerness | conservative |
speculationRumGating | true |
autoLcpPreload, autoDiscoverFonts | false |
Verify
wp wppo cache preload
wp wppo cache statusInspect the response HTML and queue status. If speculation is not emitted, check the WordPress capability gate, exclusions, and the current toggle before changing the browser.