Features Pricing Reviews FAQ
Get Plugin

Predictive Cache Warming

5 min read

Predictive warming keeps your most-visited pages ready in the cache. It ranks your URLs by how likely they are to be visited next, then warms the top ones on a schedule, so popular and about-to-be-popular pages are always served from cache.

What this does

On a repeating schedule, xSpeed Cache ranks your URLs and warms the highest-ranked ones, up to a budget you set. Ranking uses three signals, in order:

  1. Traffic. Per-URL pageview counts from Real User Monitoring (RUM) data over a recent window. Real demand is the strongest signal. This is available only when the Analytics/RUM module is active and has collected pageviews.
  2. Recency. Recently published posts and pages, since new content is about to draw traffic.
  3. Fallback. Your home page and most recent posts, so a fresh site with no traffic data still warms something sensible.

Each run visits the top-ranked URLs in the background and writes a cached copy of each one. It can skip URLs that are already cached and fresh, so the budget goes to cold pages.

Note: Traffic-based ranking needs RUM data. If the Analytics/RUM module is not collecting pageviews yet, ranking falls back to recency and your home page. The panel shows a notice when traffic ranking is dormant, and the notice clears once RUM has data.

Why use it

  • Your busiest pages stay warm without you listing them by hand.
  • Ranking follows real traffic, so it adapts as your popular pages change.
  • The crawl stays polite, warming only the number of URLs you allow and skipping pages that are already fresh.

Requirements

  • xSpeed Cache Pro active.
  • For traffic-based ranking: the Analytics/RUM module active and collecting pageviews. Without it, ranking uses recency and your home page.

How to set it up

  1. Go to the xSpeed Cache dashboard in your WordPress admin.
  2. Open the Predictive Warming panel.
  3. Turn on Enable predictive warming.
  4. Set the Crawl budget — how many top URLs to warm each run.
  5. Choose How often to warm: hourly, daily, or weekly.
  6. Leave Skip already-warm pages on unless you have a reason to re-warm everything.
  7. Save your settings.

Preview the ranking

The panel can preview the URLs predictive warming would target, with each URL’s score and which signal ranked it (traffic, recency, or home). Use this to check what would be warmed before it runs.

Warm now

The Warm now control starts a warming run right away instead of waiting for the schedule. It runs as a background job, so a large budget does not tie up the request. The panel shows progress as the job works through the queue.

Settings explained

SettingWhat it doesDefault
Enable predictive warmingRanks your hottest URLs and warms them on the schedule below.Off
Crawl budget (URLs per run)How many top-ranked URLs to warm each run. Allowed range is 1 to 500.25
How often to warmHow often the predictive warmer runs, using WP-Cron. Options: hourly, daily, weekly.Hourly
Skip already-warm pagesDoes not re-fetch a URL that is already cached and fresh, so the budget goes to cold pages.On

Enable predictive warming

Turns the whole feature on or off. When off, no scheduled ranking or warming runs. Default is off.

Crawl budget (URLs per run)

Sets how many top-ranked URLs are warmed on each run. This keeps the background crawl polite. The allowed range is 1 to 500, and the default is 25.

A higher budget warms more pages per run but puts more load on your server. Start with the default and raise it if you have many popular pages and your server handles it well.

How often to warm

Sets how often the predictive warmer runs. The options are hourly, daily, and weekly. Default is hourly.

Choose a cadence that matches how quickly your traffic patterns change. Hourly keeps the cache closely aligned with current demand. Daily or weekly is gentler on the server.

Skip already-warm pages

When on, a URL that is already cached and still fresh is not fetched again, so the budget is spent on cold pages instead. Default is on.

Turn this off only if you want every ranked URL re-fetched each run, regardless of its current cache state.

Best practices

  • Enable the Analytics/RUM module so ranking can use real traffic. Without it, ranking is limited to recency and the home page.
  • Keep Skip already-warm pages on so the budget is not wasted re-warming fresh pages.
  • Use the preview to see what would be warmed before committing to a large budget.
  • Match How often to warm to how fast your traffic shifts, rather than warming more often than you need.

Troubleshooting

  • The panel says traffic ranking is dormant. There is no RUM traffic data for the ranking window yet. Enable the Analytics/RUM module and let it collect pageviews. Until then, ranking uses recency and your home page.
  • Nothing seems to warm on schedule. Confirm Enable predictive warming is on. Scheduled runs depend on WP-Cron, so the site needs traffic (or a real cron trigger) for the job to fire.
  • Warm now does not start. The module must be enabled. If predictive warming is off, the run-now request is refused.
  • Fewer URLs warmed than the budget. With Skip already-warm pages on, fresh pages are skipped and do not count. URLs that return an error are also not counted as warmed.

FAQ

Where does the traffic data come from? From the RUM metrics that the Analytics/RUM module collects. Predictive warming reads that data; it does not add any new tracking of its own.

What happens on a brand-new site with no traffic? Ranking falls back to your recently published posts and your home page, so something sensible is still warmed.

How often does it run? On the cadence you choose: hourly, daily, or weekly. The default is hourly.

Can I see what it would warm before it runs? Yes. Use the panel’s preview, which lists the ranked URLs with their score and the signal that ranked each one.

  • Scheduled Cache Prewarming
  • Configuring the Cache Preloader
  • How to Enable Page Cache
  • Setting Cache Lifetime (TTL)