Skip to main content

How to reduce the number of warming requests

Sometimes the warmer sends far more requests than expected — you may notice a very high request volume in your server access logs, your CDN/Cloudflare analytics, or your hosting resource graphs, even though only a few pages seem to change. This is almost always caused by the size of the warming queue and how often the crawler runs, not by a single misconfigured option.

Before changing anything, remember that the warmer works against Magento's built-in full-page cache, not your CDN cache. A page that is cached at Cloudflare can still be uncached in Magento FPC, so the warmer will still request it. A large gap between "pages my CDN caches" and "requests the warmer sends" is therefore expected to some degree — the goal below is to keep that volume reasonable.

Why the request count grows

The number of requests per day is roughly:

(number of URLs in Pages) × (number of customer groups the URLs are collected for) × (how often the crawler re-checks and re-warms them)

Each of the three factors below can multiply the total independently.

1. Customer groups multiply every URL

When a File or Sitemap source has several Customer groups selected, every URL in that source is queued once per group. Three customer groups turn 10 000 URLs into 30 000 warming jobs. Logged-in groups are rarely worth warming: each logged-in customer gets a unique, short-lived cache variation that expires before the warmer helps, so the extra requests bring little benefit.

Fix: go to System -> Page Cache Warmer -> Sources, edit each File/Sitemap source, and under Customer groups keep only NOT LOGGED IN unless you have a concrete reason to warm a specific logged-in group.

2. The default source collects URLs across all groups

The Visitors' actions source is enabled by default, cannot be removed, and is applied to all customer groups. As real customers browse, it keeps adding the pages they visit — including per-session variations of logged-in customers — to the Pages table. On a busy store this can add thousands of low-value URLs over time.

Fix: trim the queue with the exclusion configuration:

  • Add regular expressions under Exclusions for warming queue to drop URLs you never need warmed (for example /\?/ to ignore all pages with GET parameters, or a pattern that matches filtered/search URLs).
  • Use Page types to exclude to remove whole page types from the queue.
  • Review the current queue size in Pages and prioritize only the pages that are actually worth warming.

See Manage exclusions in the warm queue for the full workflow.

3. The crawler runs too intensively or too often

Two settings under System -> Page Cache Warmer -> Settings -> Performance settings control how hard each run works:

  • Warming strategyWarm Rules + URL variations fires additional background processes for every URL variation and can multiply the request count significantly. Switch to Warm Rules (default) to stop warming variations.
  • Warming levelHigh uses the full interval between jobs with no load threshold. Lower it to Medium or Low to make the crawler back off when the server is busy, or choose Custom - expert mode to set the rate precisely:
    • Concurrent requests — keep it low (2-3 is enough for most stores).
    • Delay between requests — add a delay to spread the load.
    • Server load limit (%) — skip the run when the average system load is already high.
    • Job schedule — a very frequent cron expression (for example every 1-2 minutes) launches a new job on every tick, so each run picks up whatever is uncached. Widen the interval if the queue does not need such frequent re-checking.

You can also set a Warming limit (%) so the extension stops once the cache is, say, 80% filled instead of chasing every last URL.

  1. In each File/Sitemap source, reduce Customer groups to NOT LOGGED IN (biggest, immediate reduction).
  2. Add exclusions for GET-parameter, filtered, and search URLs, and remove unneeded page types.
  3. Set Warming strategy to Warm Rules (default) and lower the Warming level, or switch to Custom and cap Concurrent requests / add a Delay / set a Server load limit.
  4. Widen the crawler's cron interval if it runs every 1-2 minutes.

Together these usually cut the daily request volume by 80-90% while still keeping your most important pages warm. Use Monitor warmers efficiency afterwards to confirm the cache fill rate stays healthy.