For more details see the Full Page Cache Warmer for Magento 2 extension page.
With Cache Warmer for Magento 2 you'll be able to timely warm page cache according to your custom schedule to ensure fast page load and improve customer shopping experience.
Enable the extension - Set the option to 'yes' to activate the Cache Warmer. The option has a 'Global' scope so it is not possible to run the warmer on a certain web store/store view.
Auto-update cache upon the product changes - Due to this option, URLs of updated pages will be automatically added to the warmer queue.
Auto-generate Queue after Cache Flush - Set to 'yes' to automatically generate warmer queue after cache flushing. That's a useful option, as the cache will be warmed up right away and there's no need to wait until this moment comes on schedule.
Enable Customers' Activity Log - Set 'Yes' to let such features as FPC Warmer Reports and “Queue Generation Source” use the data from the log.
In the warmer settings tab you can configure warmer queue settings as well as specify a log size and exclude specific pages from cache warming.
php bin/magento fpc:warmer:process
php bin/magento fpc:warmer:generate
Queue Generation Source - allows selecting any of 5 available generation sources:
1. Page types
Page Types - If you select 'Page Types' as a queue generation source, you can choose which pages should be warmed. Drag and drop pages to prioritize them for the warming depending on their importance.
2. Sitemap XML
Sitemap XML- The option requires a valid XML sitemap located in your Magento 2 root folder. Also, set the relative path to the Sitemap XML file on your server.
3. TXT file with one link per line
Text file with one link per line - You can use a custom text file with a list of links to be crawled (one link per line). Specify the file path on your server.
4. Sitemap XML and Text File together
Sitemap XML and Text File together - Both the sitemap and the text file will be used for creating the URL queue for FPC warming. Specify the Queue links file path and the Sitemap XML file path.
5. Customer Activity Source - Create a warming queue based on the most popular pages of your website. Pages are ranked according to the number of visits. The most popular pages URLs will be at the beginning of the queue and will be warmed first, the least – at the end.
Enable Multi-Process Warming - Enable multi-process warming to include several URLs per one crawling request. Multi-process warming significantly boosts the warming process speed. But it generates the extra load to the server as well. We recommend running the test warming while monitoring the server load first.
Number of Parallel Processes - Adjust the number of parallel processes for multi-process warming.
Queue Generation Schedule - It's possible to schedule warming queue generation according to any specific needs. Use the cron expression to schedule queue generation jobs, e.g. 0 */12 * * to run cron every twelve hours. Read more about cron expressions here.
Queue Max Size - Set the maximum number of page URLs for the warming queue.
Single Batch Size - The module processes pages in batches. Specify the maximum number of pages that can be processed by cron within a single run.
Warmer Schedule -Schedule warmer jobs. For example, */5 * * * * to run cron every five minutes.
Delay between requests - Please make sure there is enough delay to keep the server load safe. The default value is: 300 (milliseconds)
Log Size - Set the maximum number of lines in the log grid.
Choose page combinations for cache warming based on Customer groups, Currencies, Stores.
Take a look at the example below:
Let's say you’ve chosen the following settings:
«Customer Groups» = General
«Stores» = English, French
«Currency» = USD
There are 3 settings selected: one for a customer group, two for stores, one for currency. Besides, each of these
settings will not be specified for the request (e.g. set as Default).
Thus, here’s the number of combinations for two links:
2 links * 2 customer groups * 3 stores * 2 currencies = 24 request variants
As a result, each link will be checked in the following 12 combinations:
1. Default + Default + Default : the page is requested with no parameters whatsoever.
2. General + English + USD : switched to General group + English is on + currency changed to USD
3. General + English + Default : switched to General group + English is on + no currency is set
4. General + French + USD : switched to General group + French is on + currency changed to USD
5. General + French +Default : switched to General group + French is on + no currency is set
6. General + Default + USD : switched to General group + English is on + currency changed to USD
7. General + Default + Default : switched to General group + English is on + no currency is set
8. Default + English + USD : no group is set + English is on + currency changed to USD
9. Default + English + Default : no group is set + English is on + no currency is set
Process Mobile View - Enable this option to warm-up mobile pages. Note, that the feature should be used if a separate mobile theme is installed on your Magento.
Mobile Agent - Specify mobile agents. The text, you'll enter in this field will be sent as a header on mobile requests.
User Agents - List user agents.
Hole Punch - the feature allows you to exclude certain page blocks from cache warning. It's not always possible to cache the whole page, as certain sections are dynamic and unique to each customer. With the Hole Punch feature, you can mark certain blocks of a page to be loaded each time and never cached while still caching the rest of the page. You can exclude static or dynamic blocks.
To find the info on Template and Block's class, you'll need to complete few steps. First, go to the Stores→Settings→Configuration→Advanced→Developer.
In Debug, set both the Enable Path Hints for Storefront and Add Block Type to Hints as Yes. When you go on the storefront, the pages will look like in the example below. The Template data will be displayed on the left, and Block class — on the right correspondingly.
To exclude the dynamic block from the cache, you'll need to insert the Template and the Block's ID.
First, configure the Debug as it was described in the Static Blocks Configuration above and copy the Template info.
To obtain the Block's ID, simply insert the ID from the Content→Blocks.
Use HTTP Authentication - Use this option only if your website is protected with .htaccess
Disable certificate verification - Enable this feature only in case the FPC warmer doesn't work for https.
Show Cache Status Only For - specify particular IP addresses fro which cache statuses will be displayed. Leave the field blank if you don't want to limit cache status display.
To open the Warmer Queue grid please go to System → Warmer Queue
Here is the list of page URLs waiting to be processed.
You can generate a warmer queue manually at any time you need by clicking the 'Generate Queue' button. It's also possible to manually trigger queue processing. To start processing URLs click the 'Start Warm Up' button'.
The log grid shows already warmed URLs. The log contains all crawled page combinations specified in 'Page Combinations' tab. Easily filter log data by any parameter you need.
Flush Cache for particular URLs – If you change some product info, it's possible to flush cache for its product page only. It's useful as you won't need to warm cache from scratch for all the other URLs. You can do it by clicking the 'Flush Cache' button for each URL, or for the selected URLs via mass actions.
Here you can see the number of visits for each url of the store. Each url gets status based on the number of visits. It's used for 'Customer Activity Source' of queue generation.
Magento 2 Full Page Cache Warmer extension is preintegrated with Cron Tasks List to provide store owners with an opportunity to track and manage all cron tasks running in the website background.
To view all scheduled and executed cron tasks, go to System → Cron Tasks List
Run all cron tasks and generate their schedule by clicking the ‘Run Cron’ button. Also you can delete separate tasks in bulk, apply filtering and sorting options when it is needed.
Status Codes - The stats report shows page statuses, as well as the number of pages with each particular status for all processed pages. It's highly useful for showing the percentage of errors and success loads.
Warmed Pages - View Warmed Pages report to get the summary stats for requested pages for previous time periods. This way you can also understand when the crawler was most active.
Efficiency Report - The cache extension allows you to get a full picture of cache warmer efficiency. Choose the time period and see the percentage of hits and misses, track the performance by the crawler response time, etc.
Check page statuses on the frontend.
The module displayed detailed information about not cacheable blocks.