Full Page Cache Warmer for Magento 2
Magento 2 store loads quickly only if its pages are in the cache. Our extension automatically adds pages to the cache and thus, speeds up your store!
Whenever your customer or Google visits a page, its most recent variant will be loaded in a fraction of a second from the cache.
This extension runs an automated crawler that monitors cache status. Once the cached page is cleared, the crawler visits this page and warms up the cache for it!
- A store page's loading speed is now several times faster
- The latest page version is always in the cache
- Google ranking of your store is improved due to increased page loading speed
- Module works in the background, requires minimum manual attention
- Automatically recovers cache cleared outside Magento, such as a Varnish restart or Redis flush
To make your online store run faster, you should use Magento 2 cache. But the latter is frequently cleared, leaving visitors to wait while page is loading.
The Full Page Cache Warmer extension automatically checks the page cache status and updates the cache so as to provide the fastest loading speed at all times.
What benefits Full Page Cache Warmer brings to your store
Full Page Cache main features
- Cache warming performance presets
- Compatible with Varnish Cache, default File Cache, Redis Cache, and others
- Supports almost any types of pages
- Cache page elements that default Magento is unable to cache
- You can set priorities of pages to warm up
- Flexible configuration with warming rules
- Full coverage across customer groups and currencies
Fully Automated Extension Workflow
Set up the Magento Full Page Cache configuration right after installation, and then you can just kick back and relax.
Fully Automatic Work
Our solution is fully automated and refreshes your store's cache automatically. No more worries about complicated manual settings, just specify which page types should be cached, and that's it!
Tasks Run In The Background
Full Page Cache Warmer module operates in the background. You are free to make any changes to the interface of your online store, and it won't affect the extension functioning in any way.
Be Sure Caching Is Working
Full Page Cache Warmer module provides a special page that refreshes automatically, and displays the current status of the full page cache.
Control Which Pages to Warm
Build your warming list from a CSV file, your sitemap.xml, or the pages your visitors actually browse, to decrease server load and speed up cache warming.
Detects Cache Flushed Outside Magento
The module checks every minute whether pages are still actually cached. If the cache was cleared outside Magento, say by a Redis restart or a Varnish reload, it notices the gap and re-queues the affected pages for warming automatically, no manual intervention needed.
Readily Available Performance Presets
You can quickly set up an optimal performance level for the Full Page Cache Warmer depending on your server capabilities and load. Choose the most suitable module performance level from one of the templates:
- High for intensive cache warming
- Medium for most Magento stores
- Low for soft cache warming
Flexible Performance Optimization Settings
With Mirasvit extension Full Page Cache, you are not limited to predefined cache warming performance templates. The module's performance settings are entirely adjustable. Using the custom performance setting, you may configure the following:
- the number of concurrent requests made to your store (threads)
- maximum run time
- frequency of running cron jobs.
Control The Average System Load
Balancing the server load is important for fast web page loading speed. Identify bottlenecks in the system load with the help of a graph offered by the Full Page Cache Warmer extension.
Set a threshold limit for Cache Warmer jobs to reduce system load. Run the cache warming job when the server has enough computational resources to serve the visitors of your shop and update cache.
Full Control Over Cached Pages
Get detailed information on every cached page. View its page type, popularity, and applied warming rules. The Full Page Cache Warmer also shows the date when the page was created, updated and cached. It also displays the source from which the page was collected.
You can manage each cached page. Warm it, clean its cache, or reset its warming status on demand.
Flexible Cache Warming Configuration
Configure the cache warming rules and flexibly combine them in a single condition for cache warming. Use it to keep the cache updated for most important pages and customers.
Override Magento Default Caching Behaviour
Force caching on for the home page, category pages, or product pages, even when a third-party block would normally make Magento skip caching them. Additionally, set modified HTTP headers to further save bandwidth and increase loading speed.
Support for Caching of Complex Pages
Some blocks make Magento skip caching the whole page, for example, a CMS block that shows different content to different visitors. The Full Page Cache Hole Punch option lets you exclude just that block, by its template and block class: the rest of the page is served from cache, while the excluded block is rendered fresh each time.
Control Which User-Agents Trigger Caching
The internet is full of web crawler bots. Exclude irrelevant ones from triggering re-caching to decrease the load on your server.
Save Disk Space for Multi-Store Shops
Turn on "Use the same cache for new visitors" to avoid storing a separate cached copy of every page for each Store View. If your Store Views actually differ in language, currency, or content, turn it off so each one gets its own correctly cached version.
Monitor Caching Efficiency
The built-in Efficiency Report displays information on the response time of non-cached and cached pages
Get detailed data on how many cache hits and misses there were during any particular timeframe. See why the numbers can differ between layers.
Monitor Cache Flushing
See a full log of every cache flush: when it happened, whether it came from Magento or a third-party module, and how the fill rate changed, so you always know who cleared the cache and why.
Built-in Debugging Tools
Get clues to solving problems with the caching process with the built-in tools Analyze logs for cache warming requests and cache flushing. See our guide to troubleshooting common cache issues.
Easy Caching Priorities Management
Prioritize caching of the most high-demand pages so as to always provide visitors with the freshest page content and fastest page speed loading possible
Rich Command Line Interface Control Options
Use command line interface to quickly warm the cached pages, crawl them, or reset a page's warming status. The full list of CLI options is available in the module's documentation.
When Full Page Cache Warmer Might Not Be the Right Fit
Full Page Cache Warmer pre-populates the HTML page cache, so it helps most on stores with mostly guest, non-personalized traffic. It won't help a headless or PWA storefront that serves GraphQL or REST responses instead of cached HTML, a store where most visitors are logged in and see personalized content, or a very low-traffic shop where the cache rarely goes cold in the first place. In these cases, look at API-level caching or a CDN instead.
See how Full Page Cache Warmer compares to other solutions
In our current setup, it runs continuously on large catalogues across several store views. Cron-based execution has been stable, with jobs triggered regularly and the queue staying under control without generating spikes.
One of the most useful features is the rule system with priorities. It lets us avoid treating the whole catalogue as equal: we can prioritise the home page, campaign landing pages and key categories, while processing lower-traffic URLs with less urgency.
The filtering conditions cover the real-world scenarios we need, including page types, store views, URL patterns and popularity, without requiring additional development.
We've also found the visibility offered by the module very useful. The logs and reports help us understand hit/miss behaviour and response times over time. In our case, we're seeing hit rates above 80% over long periods, which gives us confidence that the rules and frequency are properly tuned.
For us, the main benefit is being able to let it run continuously without having to monitor the cache state before each traffic spike. Once configured properly, the module does its job very well.
Save time by starting your support request online and we'll connect you to an expert.
Why is the default Magento caching functionality not enough for optimal page caching?
To make your online store run faster, you should use several different types of Magento 2 cache. One of the most effective sorts of cache is the full page cache. Of course, Magento 2 provides this type of cache: when opening the page for the first time, it is automatically added to the cache, and then after refreshing the page content, returns from out of the cache in little to no time.
But there is still one significant issue: cache is frequently cleared. This can happen when:
- you make changes to the product pages or categories
- you make any other changes within the store
- you run reindex
- cache is cleared by its lifetime (usually every X hours)
If customers see your store loading slowly, even just once, they may leave disappointed, costing you orders and revenue.
The same occurs when a Google bot visits your online store, sees pages running slowly, and lowers your shop SERP ranking.
The Magento external full page cache extension prevents all these issues from occurring and increases your Magento store page's speed several times over. Our Magento Full Page Cache extension works with the following types of store pages:
- Product pages
- Category pages
- Layered Navigation
- CMS pages
- Blog pages
Page Cache Warmer is compatible with Varnish Cache, default File Cache, Redis Cache, and others.
What amount of manual work is required to successfully operate the extension?
You don't need to do anything while using our daily solution, as our extension is fully automated and restores your store's cache automatically.
Just specify which page types should not be cached, and that's it. The extension will continue its fully automatic work.
The Magento Full Page Cache module operates in the background. You are free to make any changes to the interface of your online store, and it won't affect the extension functioning in any way since all the module's workflows are carried out in the background. The tasks of cache warming are run in a timely manner by Cron.
This is useful if you'd rather not deal with extra windows and reminders while working in the store.
The caching process in a Magento shop can depend on the caching application you're using, such as Varnish. If this application is misconfigured, pages may not be placed in cache, and your shop may demonstrate a page loading slowdown.
Verify for yourself that full page caching in your store works correctly using the test page that the Full Page Cache Warmer module provides. This page refreshes automatically, and displays the current status of the full page cache.
How do I control cache warming for specific pages?
It can often be very time-consuming to warm every page in your store. In these instances, you're probably eager to speed up the warming process, warming only high-priority pages. The extension allows you to create your own lists of pages for warming.
For example, the extension can warm pages straight from your sitemap.xml. Alternatively, you can create a CSV file with the most important pages. You can also use your own lists of pages in warming rules of our extension. For example, the extension can warm high-priority pages in the first run through, and later all other pages.
The flexible control on page lists for warming allows you to speed up warming as well as decrease the server load.
How do I monitor server load when using this cache warming extension?
Fast web page loading speed can be achieved when the server is not overloaded, thus balancing the server load is important.
The Full Page Cache Warmer extension offers a graph for displaying the average system load, which is useful in identifying bottlenecks. Such a bottleneck can be caused by basic server activity and simultaneous caching processes. In this case, it is wise to disable cache creation during load periods.
Such a bottleneck can be caused by basic server activity and simultaneous caching processes. In this case, it is wise to disable cache creation during load periods.
How do cache warming rules help to increase the module's efficacy?
With a Full Page Cache Warmer extension, configure the cache warming rules depending on page attributes like customer group, page type, page popularity, page URL, product type, Store View, and cache triggering source. Flexibly combine those attributes in a cache warming condition that will help keep the cache updated for the most important pages and customers.
Additionally, for each cache warming rule, you can set modified HTTP headers by request. Use this option, for example, to accept gzip page encoding to save bandwidth and increase page loading speed.
How is it possible to override Magento's default caching behavior with this extension?
Default Magento skips caching some pages, or some pages' blocks that you may need to be cached. With our caching extension, you can forcibly make pages cacheable, either across your whole store or just for specific page types, such as the home page, category pages, or product pages.
Does the extension provide support for complex pages?
With the Magento Full Page Cache Hole Punch option, you can flexibly configure the parts of the pages that should be excluded from caching. The Hole Punch feature of our module does micro-level management of page blocks, identified by their template and block class. It can be extremely useful for those stores that have complex pages constructed from multiple templates and blocks, where just one block would otherwise make the whole page uncacheable.
This lets you fine-tune caching for each of your store views individually.
How do I decrease server load by controlling user-agents?
Decrease the load on your server by excluding certain web crawler robots from triggering the page re-caching. In the Magento Full Page Cache settings, specify the list of user-agents to be excluded. Use regular expressions to flexibly define the excluded user-agents.
How does the Full Page Cache Warmer save disk space for multi-store shops?
Full Page Cache Warmer includes a "Use the same cache for new visitors" setting. When enabled, it avoids creating a separate cached copy of the same page for every Store View, which saves disk space on multi-store installations. Turn it off if your Store Views actually differ in language, currency, or content, so each one gets its own correctly cached version.
What functionality is available throughout the command line interface?
Besides the visual control interface in the Magento backend admin panel of your store, the Full Page Cache Warmer extension offers rich control options via the command line interface. Use it to quickly crawl the cacheable pages, warm the cached pages, crawl cacheable pages on behalf of a specific customer group or for a given store view, and much more.
What is the purpose of a built-in cache flushing monitor?
Cache flushing is a regular operation in Magento, but if it is performed too often, it can have a direct impact on server performance. With our Cache Warmer extension, you can monitor the cache flushing using the Fill Rate graph.
If the flushing is performed too often, use the debugging tools the Cache Warmer provides to determine the cause of this behavior. You may need to reconfigure your Magento so that the cache will be flushed less frequently. If such reconfiguration is impossible for any reason, use the Cache Warmer to forbid cache flushing.
The module doesn't clear your cache without a reason. It responds to the same Magento events that would normally flush the cache, such as saving a product or category or running a CLI cache:flush, and it lets you clean a single page's cache entry manually from the grid or admin toolbar. Enabling "Forbid cache flushing" blocks these automatic clears, so routine catalog updates won't empty your warmed cache.
Is Full Page Cache Warmer affected by CVE-2026-45247?
Yes, versions prior to 1.11.12 had an unauthenticated PHP object injection vulnerability in the CacheWarmer cookie, tracked as CVE-2026-45247. It's fixed in 1.11.12, and we recommend updating to the latest version as soon as possible.
Version 1.11.16 also fixed two related issues: a way to forge the warmer's session cookie, and an unauthorized way to clear the entire warmed cache. If you're running a version older than 1.11.16, please update.
How do I get help with cache related problems?
Spend less time searching for clues to problems with the caching process in your store. With the Full Page Cache Warmer, you get built-in tools for debugging cache related problems. Analyze logs for cache warming requests and cache flushing.
You can monitor a cache status of the page in the store frontend. Configure the module so that the infobox with the cache status is visible only to specified IP-addresses. Use a designated test page to check if the Full Page Cache Warming module works correctly.
What is the functionality of the built-in efficiency report?
Keep an eye on the caching process with the built-in Efficiency Report and know that you have the best caching efficiency possible. Get information on non-cached and cached pages' response time, and how many hits and misses there were for cached pages for any particular timeframe.
Get the caching Efficiency Report in graphical form for fast analysis or check out the detailed data in the table below. Export the data to a CSV or XML file format for storage or further analysis using external tools.
What benefits does cache prioritization bring?
A Full Page Cache Magento 2 allows you to manage the priority of cached content with great efficiency.
There are a few types of priorities available in our solution:
- Page popularity (number of visits)
- Page type (category, product, CMS page, layered navigation, etc.)
- Product type
- Customer Group
Cache Prioritization allows you to put the right stress on the most high-demand pages. For example, one of the most visited store pages might be your Sale/Promotion page. As such, you can set a higher priority for it and provide your customers with the best loading speed for this content!
Do I still need this extension if I already use Varnish?
Yes. Varnish is a cache storage layer: it holds cached pages, but something still needs to keep that cache warm and up to date. Full Page Cache Warmer proactively crawls and re-caches pages after they're invalidated, on a schedule and by priority you control, so Varnish always has fresh pages ready instead of serving a cache miss to the first visitor after every clear.
Why is it optimal to create and cache in order to get a faster page speed load?
A Full Magento 2 Cache Warmer can create a cache version of any newly-saved page. For example, you can create a new product (category, or any other store page) or edit existing ones. Next, visit this page as a customer so that the page will appear indexed by our module. Alternatively, you can wait for a crawler to find the page, or it will be added during the synchronization of the Full Page Cache Warmer sources on Cron task.
You can create pages/categories/products in your store, and the Full Page Cache Warmer will do the rest for you after a while. You can also visit the new page to speed up its caching.
mirasvit/module-cache-warmer-hyva package is no longer needed. The storefront debug toolbar, the cache test page and the statistics beacon now work on Luma and Hyvä alike. Both themes share one set of templates, scripts and styles, so there is no Tailwind rebuild to run after upgradingmirasvit/module-cache-warmer-hyva is installed on your store, composer update takes it off by itself; no separate step is neededbin/magento setup:upgrade as usual after updatingweb/js/toolbar.js, web/js/track.js, web/css/source/_module.less, web/css/source/module/_toolbar.less and web/css/source/module/_test.less were removed. The toolbar and test page now carry their own styles and scripts. If your theme overrides any of these files, move those customisations into theme overrides of the templatesMAGE_RUN_CODE / MAGE_RUN_TYPE. The warmer saved and checked its cache entries under a different key than Magento uses for the page, so they never matchedClass "Zend_Http_Client" not found, which also stopped the rest of the cron run. Also fixed the warm endpoint answering with a server error after a warm run that had succeeded& in a URL (such as ?a=1&b=2) lost every URL in the file. The log now also names the sitemap that could not be readVendor\Module) that triggered a cache flush--status command, the cookie check and the warm-rule refresh on older page rows with no creation datebin/magentoexception.log with CRITICAL entries (up to six per page)redis-cli FLUSHDB, a deploy that clears the Redis instance, a Varnish restart) left every page marked as cached forever: the grid kept reporting "Found in FPC" while the cache held nothing, and those pages were never warmed again. One store had 141,390 of 150,427 pages still reported as cached more than a day after its Redis was flushed. The extension now checks once a minute whether the cache still holds what it put there, and returns the emptied pages to the warming queue by itself. The check runs over HTTP, so it works on every cache backend — built-in Redis or file cache, Varnish, LiteMage and NitroPack alike. Because a wrong verdict would re-warm an entire store, it only acts on a confirmed flush: a cache that was never storing pages, an entry that simply expired, or a store that was unreachable all leave page statuses untouched, and pages warmed after the flush are left alone. Every decision it makes is written to the log, whether or not Debug information is enabledbin/magento mirasvit:cache-warmer --reset-status command, mark pages as pending so the warmer picks them up again. Use it after clearing the cache yourself, as a deploy step, or to recover a store whose statuses have gone stale without waiting for the automatic check. It changes only what the extension believes about a page — unlike Clean, nothing is removed from the cache — and it is fast enough for very large catalogues (a 635-page store was reset in a single pass)bin/magento mirasvit:cache-warmer --status reconciles on those stores again too, which means it now walks every page instead of returning immediately: worth knowing if you have that command in a deploy step, because on an external cache every page is one request to your sitebin/magento setup:upgrade as usual after updatingcache_warmer/extended/session_cookie_ttl, controls how long a warmer session cookie stays valid. It defaults to 3600 seconds and cannot be set below 60; there is no need to change it unless you want a tighter boundModel\Config\Source\WarmStrategy, Model\Config\Source\WarmPageTypeOrder and Model\Page\Generator. Nothing in the extension or its companion modules referenced them, and no published interface changed0 (for example Header:0) — the line was dropped without any messagebin/magento mirasvit:cache-warmer --status on a store with pages that had never been warmed yet — pages imported from a page source have no cache id until their first warming pass, and asking the cache about them raised a fatal error on Magento 2.4.9 and a deprecation notice on earlier versions?debug=warmer to a page URL — the toolbar exposed cache status and the list of non-cacheable blocks to any anonymous visitor, even when Debug information was switched off in the module settings (the default) and no matter which IP addresses were allowed. The toolbar now shows up only when you enable it in the admin= sign being cut short, and pages with an empty cookie value producing a PHP warning in the logbin/magento cache:flush and admin "Flush Cache Storage" being silently blocked by "Forbid cache flushing" on Magento 2.4.9 — Magento 2.4.9 changed TagScope::clean() to rewrite a full flush into a matching-tag mode before it reaches the Cache Warmer decorator, causing the allow-check to never fire. The check now recognises both the pre-2.4.9 CLEANING_MODE_ALL shape and the 2.4.9 tag-scoped shape as a legitimate full flush, restoring the documented behaviour where CLI and admin full flushes bypass the restrictionmirasvit:cache-warmer --status CLI command now skip the crawl instead of re-requesting every cached pageX-LiteSpeed-Cache response header instead of the status cookie, so probes hit the existing cachecore_config_datanonCacheableBlocks parameterBlog
We are committed to being open and transparent with our customers. When you purchase our module, you automatically receive one year of free support service and free updates.
Why is this important?
- Seamless Installation and Configuration: We understand that setting up a new module can take time to configure according to your specific needs. That’s why we offer a full year of free support. Our experienced team is here to assist you with installation, configuration, and any questions you might have. We're eager to share our expertise to ensure you get the most out of your purchase.
- Stay Updated with Magento (Adobe Commerce) Releases: Magento releases new versions approximately every three months. These updates can sometimes introduce compatibility challenges. To keep your store running smoothly, we provide a year of free access to the latest versions of our modules, ensuring that you can upgrade Magento and our modules without encountering any obstacles.
- Subscription Included: Renewing your subscription ensures continued access to the latest updates and support from our team. This means you can be confident that any issues you encounter with the extension will be resolved quickly and efficiently. You can cancel your subscription at any time without any additional fees.
These are our primary. A major portion of our new clients come from referrals from our existing clients. Our professional team of developers, marketers and support staff have invested the best knowledge and experience in the field into our work, so you know you can come back to us again and again.
One year free and high quality support. We go to great lengths to provide maximum satisfaction with every module you have purchased in our store. By helping you with installation, configuration, answering your every question, we do all our best to eliminate any possible problems.
30-days money back guarantee. If you are not satisfied with our extension performance for any reason, we provide a full refund.
We constantly add new features to all our modules, and are always interested in hearing your opinion and implementing your suggested features in our future developments.
We provide an expanded user guide for every aspect of our extension, so you can find answers for all your burning questions.
You can customize extension according to your needs and requirements.
The Module is easy to install and upgrade, just follow our step-by-step user guide. Additionally, the extension is ready to use with the Hyvä theme.
No core modifications. The extension has been tested in a Magento Cloud environment and is fully compatible with it.
Andriy Kovalenko