Description
Visits website pages to warm (create) the cache if you have any caching solutions configured.
Settings
- Configure cache warming entry points and the depth of the warming;
- Add all public site posts as entry points;
- Add entry point sites sitemaps as entry points;
- Select which types of assets to load, with 4 checkboxes: scripts, styles, images, fonts;
- Set custom URL params (?foo=bar);
- Set custom user agent;
- Set custom request headers;
- Set custom cookies;
- Set connection timeout;
- Set speed limit (pages to visit per minute);
- Autorun Interval: to run the warming each N minutes;
- Exclude pages (by substring or regex);
- Rewrite URLs to HTTPS;
- Visit pages second time without custom URL params (if they are set);
- Warm-up posts (on their publication and edit (Can be seen in Logs -> Triggered)):
- Set custom posts warming interval.
- Use object cache for tree storage, when it’s available.
Additional
- Adds a graph to your dashboard with page load time before and after the warming (2 lines) per day.
- Cleans up Action Scheduler log after itself (older than 30 days for failed actions, and older than 2 days for completed actions).
External services
- Connect to paid service for warming from external global servers.
Run from code
- Start:
\Cache_Warmer\AJAX::start_warm_up( false );
- Stop:
\Cache_Warmer\AJAX::stop_warm_up( false );
Run from WP CLI
- Start:
wp cache-warmer start
- Stop:
wp cache-warmer stop
Required PHP extensions
- json
- simplexml (optional)
Bug reports / Questions / Suggestions
Screenshots
Reviews
ikx94
November 24, 2024
Perfect plugin, not much to change. Litespeed Cache is pretty bad without this, and incredible when paired with this. Also, I like it much more than even the official Litespeed crawler.
rsmith4321
October 29, 2024
I have been looking for a plugin like this for a long time. With Redis full page caching, they are only added to the cache on first load and then dropped after 4 hours in the cache. This is a really nicely made plugin that will preload these files into cache at regular intervals. It’s an amazing plugin.
nemovich
October 1, 2024
I waisted so much time with other “top” plugins trying to fix preloading cache and then this plugin shows up and simply did the job. Masterful work! Thanks
p15h
September 25, 2024
This is a well thought-out plugin.
A notable feature is that the log shows these three headers: cf-cache-status, x-cache and X-WP-Super-Cache. Which means you’ll know at one glance the status of Cloudflare’s edge cache, httpd’s mod_cache disk cache, and, I suppose, the WP Super Cache plugin’s less efficient disk cache if that’s what you’re using.
fis2022
July 24, 2024
Thank you for this plugin.
It is a lifesaver, when you need a reliable cache warming tool. In my installation the standard preload of WP Rocket didn’t work as expected. I tried to find a solution for months.
Cache warmer now reliable preloads all given sitemaps in a defined interval.
Dale Reardon
June 23, 2024
This plugin has dramatically helped my sites perform better and increase their speed and TTFB.
Even with great hosting and really good caching setup (Cloudflare etc) you still have a speed issue when the pages of your site need to go to the cache for the first time.
This plugin causes your site pages to be loaded into cache and hence visitors get a great experience.
This plugin is even more useful for sites with smaller traffic as your caching solution needs refreshing regularly and you can set this plugin to refresh cache on a regular interval.
The support has also been excellent as a plugin like this can have issues across many different hosting setups.
Dale.
Contributors & Developers
“Cache Warmer” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Cache Warmer” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.3.8 2024-11-18
Bugfixes
- Fix UI rendering bugs.
1.3.7 2024-11-02
Bugfixes
- Fix interval scheduling issue.
1.3.6 2024-10-21
Enhancements
- Add WP-CLI support.
1.3.5 2024-10-20
Bugfixes
- Fix fatal error on plugin update.
1.3.4 2024-10-19
Enhancements
- Add support for WP CLI.
Bugfixes
- Fix scheduled intervals.
1.3.3 2024-10-05
Enhancements
- Instead for checking for intervals in constructors on every page load, check for them only once on plugin activation. Add a button and other interval (which is scheduled in constructor) to fix any missing intervals.
1.3.2 2024-09-29
Bugfixes
- Warming start bug fix.
1.3.1 2024-09-29
Enhancements
- Add support for external warmer – simply for each page visit, and with the intervals.
- Added functionality to start / stop the warming from code (or with WP CLI with “wp eval”).
Bugfixes
- Fix the warming interval stuck bug.
1.3.0 2024-06-24
Enhancements
- Speed up warmings (optimization).
Bugfixes
- Fix stuck object cache bug.
1.2.5 2024-06-23
Bugfixes
- Fix stuck object cache bug.
1.2.4 2024-06-23
Changes
- Do not schedule notifications fetch action.
1.2.3 2024-06-05
Bugfixes
- Fix Action Scheduler bug.
1.2.2 2024-05-26
Bugfixes
- Fix Fatal Error with explode on Windows by using DIRECTORY_SEPARATOR constant.
1.2.1 2024-05-02
Enhancements
- Use standard Action Scheduler interval.
- Update WP-Plugins-Core.
1.2.0 2024-04-23
Bugfixes
- Fix the unscheduled warming with empty data (which results in PHP Warnings).
1.1.9 2024-03-12
Bugfixes
- Fix the “depth” setting.
1.1.8 2024-03-11
Bugfixes
- Fix the sitemaps parsing (didn’t visit them at all previously).
- Fix ID for “external warmer” setting fields.
- Fix “speed limit” bug.
1.1.7 2024-02-28
Bugfixes
- Fix settings import button color.
- Fix a bug when the scheduling time is drifting.
- Fix the wrong warming “Duration”.
- Fix “speed limit” bug.
Enhancements
- Warm sitemaps and posts first (with prio), and only then entry points.
1.1.6 2024-01-14
Bugfixes
- Fix “Request: DOMDocument::loadHTML(): Argument #1 ($source) must not be empty”.
1.1.5 2024-01-13
Enhancements
- Update default User-Agent to the newer version of Chrome.
- Increase URL params limit from 5 to 50.
- Add a setting to specify custom request headers.
- Add a setting to visit pages second time without custom cookies (when they are set).
- Improve canonicals logic, to add a log icon with the canonical to the warm-up log; and if ‘skip pages with warmed canonical’ setting is off, then also warm the canonical page immediately.
Bugfixes
- Fix table cells style (overflow: auto for all).
- Logs in the site’s timezone.
- Fix a bug when resetting settings does not change posts warming enqueue.
- Fix user-agent table width when no values are set.
1.1.4 2023-09-23
Bugfixes
- Fix canonicals logic.
- Do not untrailingslash all URLs, but keep them as they are.
- Allow to specify “localhost” as entry points.
- Fix URL column style (overflow: auto).
1.1.2 2023-09-16
Enhancements
- Add an option to specify several User-Agents.
- Dynamically escape regex characters when enabling regex. And de-escape on uncheck.
- For headers-based requests classification, do not show 0, but instead show nothing; so that people could not misinterpret it as another request.
- Add a setting to skip the pages with the warmed canonical.
- Add optional “Comment” column to the warm log.
- Change number of pages in batch size from 10 to 1 to increase the robustness.
- Add a setting for logs retention time.
- New menu layout.
Bugfixes
- Make “Rewrite to HTTPS” to work for the “URL to warm” on page edit block, and for entry points pages exclusion.
- Fix update_failed_to_retrieve_links() and update_retrieved_links() added links check, to not add duplicates.
- Improve RegExes robustness by using “lazy” quantifiers, instead of the greedy ones.
1.0.54 2023-07-18
Enhancements
- Use wp_options table instead of cache for the lock of migrations.
- Set min PHP version to 7.4.
1.0.51 2023-07-16
Enhancements
- Cleans up Action Scheduler log after itself (older than 30 days for failed actions, and older than 2 days for completed actions).
- Added index to the table to make the post edit page open faster.
- Entry points limit lifted.
- Can specify homepage relative paths as entry points.
- Add support for “html” files warming.
- Add a notice when the plugin is being updated instead of blocking the whole logic.
Bugfixes
- Fix table creation error.
- Fix action scheduler scheduling (improve initialization check).
- Fix a bug to not warm “mailto:” URLs, but only the ones that start from “https://” or “https://”.
- Add checks in case wp_parse_url() is false.
- Add Author metadata to the plugin main file.
- Do not add URL params to files with ‘XML’ extensions.
- Fix a bug when URL params to sitemap pages were not added.
- Fix a bug when “sitemaps” setting was not reset.
1.0.44 2023-06-11
Bugfixes
- Add pagination to blog posts.
- Support pagination for plaintext URLs structure.
1.0.43 2023-06-08
Bugfixes
- Fix URLs overlap over the post edit content box.
1.0.41 2023-06-07
Enhancements
- Add pages support for taxonomies.
- Better migration routine.
1.0.40 2023-06-07
Bugfixes
- Add missing libraries.
1.0.38 2023-06-06
Bugfixes
- Fix the plugin (didn’t start previously).
1.0.37 2023-06-06
Enhancements
- Decrease plugin size from 8 MiB to 2.8 MiB by removing irrelevant files.
1.0.36 2023-06-03
Enhancements
- Rename “Interval” tab to “Autorun Interval”.
- Capitalize first letters of all tab words.
- Add post URL, and with URL params (if presents) to the post edit block.
- Add option to exclude pages by regex.
Bugfixes
- Fix interval-based warming.
1.0.35 2023-05-15
Enhancements
- Add an option to skip pages (that match URL a substring).
- Add links (tag ) to the warm-up URL column.
1.0.34 2023-04-30
Bugfixes
- Fixed error when the host was undefined.
1.0.25 2023-02-23
Enhancements
- Check page load time pre warmer.
- Add Varnish and Cloudfront support.
1.0.20 2023-02-15
Bugfixes
- Redundant dashboard query deleted.
1.0.19 2023-02-14
Bugfixes
- Min PHP version required downgraded to 5.6.20.
1.0.17 2023-02-08
Optimizations
- Dashboard query to consider only the previous 30 days.
Bugfixes
- Default sitemap priority changed from 0 to 0.5.
- Add terms to the tree query fixed.
1.0.16 2023-02-08
Enhancements
- Improved accuracy for server IP address detection.
1.0.15 2023-02-08
Bugfixes
- Regexes fixed and improved (now work more accurately and catch more links).
1.0.11 2023-02-08
Enhancements
- Consider priority for sitemaps.
1.0.10 2023-02-08
Enhancements
- Optimized dashboard widget by using a faster query for the dashboard widget.
Bugfixes
- Do not get empty afterload time for the dashboard widget.
1.0.9 2023-02-08
Enhancements
- Add term links and archives to the posts also.
1.0.8 2023-02-05
Enhancements
- Option to sitemaps of entry points as entry points
1.0.7 2023-02-04
Enhancements
- Option to add all public site posts (of any type) as entry points.
Bugfixes
- Batch size reduced from 10 to 1.
1.0.6 2023-02-02
Enhancements
- Post warm details.
1.0.5 2023-02-02
Enhancements
- Slow down when hit 429 or 500 error: first 2 times slower for 15 minutes from the previous avg speed, then 8 times slower, then pause for an hour.
Bugfixes
- Speed limit is now working properly.
1.0.4 2023-01-30
Enhancements
- Show a notification when a page is blocked by Cloudflare or other firewall (403, 502, 504 codes).
Bugfixes
- Infinite loop during fake tree creation when the initial passed depth is 0.
1.0.3 2023-01-29
Enhancements
- Changelog added.