For more details see how Full Page Cache Warmer for Magento 2 extension works.
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.
To solve this problem, clean the Generated folder by running the command below in the Magento root:
rm -rf generated
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.
Auto-generate Queue in Background - if enabled, warmer queue will be regenerated in background via cron and will not affect admin side performance.
Enable Cache Flushes Logging - with this option, the extension will set the record of any cache flushes attempts in your Magento 2 instance. Learn more how to work with the log in the Cache Flushes Log part of the user manual.
Exclude Classes from Log - This setting is only available when Enable Cache Flushes Logging is set to Yes. You can specify the cache classes to exclude from the cache flushes log.
Cache Flushes Log Auto-Cleaning - Enable this option to clean the log automatically after a specified period.
Auto-Cleaning Period in Days - Provide a period after which the log should be cleaned.
Enable Customers' Activity Log - Set 'Yes' to let such features as FPC Warmer Reports and “Queue Generation Source” use the data from the log.
Activity Log Full-Cleaning - Select ‘Yes’ if you want to automatically clean all the records that are available at the time of cleaning by Cron.
Full-Cleaning Schedule - Enter the cron expression to set the schedule for automatic Activity log cleaning. Example: 0 0 1 * * - run once a month at midnight on the first day of the month. Read more about cron expressions here.
Performance Reports Data Auto-Cleaning - Activate the feature to clean reports data automatically after a particular period.
Auto-Cleaning Period in Days - Specify a period after which reports should be cleaned.
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.
5. Page Types and Text File Together - Using this option, you can create a file with the most valuable pages to warm first and then warm other pages according to their type and priority. Specify the Queue Links File Path and configure pages priority as in the settings above.
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.
You can also warm pages based on customer groups with the Persistent Shopping Cart enabled.
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
10. Etc.
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 Magento 2 block from the cache lifetime, 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 Context Data - if enabled, you can click the Toggle Context Debug in a status bar to see the current context parameters and those parameters with which the page is warmed up.
See the example:
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.
If you have Lazy Load or Google Page Speed Optimizer installed, you can warm pages according to user agents with or without WebP support.
User Agents - Select the required user agents for warming.
Images Resolution - Choose the resultions to warm.
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.
Also, the extension is compatible with Varnish. You can monitor and Cache Coverage Rate in Warmer Log when using Varnish cache and see the Performance Reports.
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.
When working with Magento 2 in your store, you may sometimes notice that the FPC cache is flushed due to some unknown event. It can be very challenging and resources-consuming to find the exact reason that causes the cache flushes.
If you have faced such an issue, start by setting the Enable Cache Flushes Logging to Yes. This config is located in Stores → Configuration → Full Page Cache Warmer → General Settings. Then, all actions that cause cache flushes will be logged.
Also, if you know that some methods are secure and work without causing cache flush issues, you can exclude such methods from the log. This way, the cache flushes log will be shorter, which makes it easier to identify the reason for unusual cache flushes.
You can access the log with details on cache flushes attempts by going to System → Amasty FPC Warmer → Cache Flushes Log.
The grid has the following data:
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.