{"id":389085,"date":"2026-10-24T19:18:22","date_gmt":"2026-10-24T19:18:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/softminal-cache\/"},"modified":"2026-11-02T17:47:01","modified_gmt":"2026-11-02T17:47:01","slug":"softminal-cache","status":"publish","type":"plugin","link":"https:\/\/mlt.wordpress.org\/plugins\/softminal-cache\/","author":23440212,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Softminal Cache","header_author":"Softminal","header_description":"Fast, safe page cache for WordPress. 100% free \u2013 no Pro version, no upsells, no ads.","assets_banners_color":"edf7f2","last_updated":"2026-11-02 17:47:01","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buy.polar.sh\/polar_cl_fFLQ2tAhmfgJh1rmIz9pKN8YhWk1LNAslvk6K2T8IdK","header_plugin_uri":"https:\/\/softminalcache.com","header_author_uri":"https:\/\/softminal.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":415,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"softminal","date":"2026-10-24 19:17:53","revision":3763680},"1.1.0":{"tag":"1.1.0","author":"softminal","date":"2026-10-27 04:27:41","revision":3767726},"1.1.1":{"tag":"1.1.1","author":"softminal","date":"2026-10-27 04:43:15","revision":3767753},"1.1.2":{"tag":"1.1.2","author":"softminal","date":"2026-10-28 05:51:55","revision":3769976},"1.1.3":{"tag":"1.1.3","author":"softminal","date":"2026-10-29 06:52:32","revision":3772221},"1.1.4":{"tag":"1.1.4","author":"softminal","date":"2026-10-31 09:24:51","revision":3776583},"1.2.0":{"tag":"1.2.0","author":"softminal","date":"2026-11-02 17:47:01","revision":3780420}},"upgrade_notice":{"1.2.0":"<ul>\n<li>New: AI access for Claude, ChatGPT and more (off by default), and a side menu for Cache and Optimize.<\/li>\n<\/ul>","1.1.4":"<ul>\n<li>New: Google PageSpeed scores and Bunny CDN.<\/li>\n<\/ul>","1.1.3":"<ul>\n<li>New: cache rules, widget cache, image compression and seven languages. A simpler Dashboard.<\/li>\n<\/ul>","1.1.2":"<ul>\n<li>New: critical and unused CSS, Redis object cache, speed hints, YouTube preview, lazy backgrounds, main image preload and lazy render.<\/li>\n<\/ul>","1.1.1":"<ul>\n<li>Security fix for multisite networks: only a network admin can set the CDN address or use a shared Cloudflare token.<\/li>\n<\/ul>","1.1.0":"<ul>\n<li>New: CDN, Cloudflare and Varnish clearing, delay JavaScript, combine CSS and JS, and minify HTML. Everything new is off until you turn it on.<\/li>\n<\/ul>","1.0.0":"<p>Big update: Optimize (JavaScript, CSS, fonts, images, Script Manager), Database, Tools and a speed audit with one-click fixes. Your cache settings are kept.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3763679,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3763679,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3769975,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3769975,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3763679,"resolution":"1","location":"assets","locale":"","width":1920,"height":1732},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3763679,"resolution":"2","location":"assets","locale":"","width":1920,"height":1896},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3763679,"resolution":"3","location":"assets","locale":"","width":1920,"height":1048},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3763679,"resolution":"4","location":"assets","locale":"","width":1920,"height":1596},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3763679,"resolution":"5","location":"assets","locale":"","width":1920,"height":1426},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3763679,"resolution":"6","location":"assets","locale":"","width":1920,"height":1132}},"screenshots":{"1":"Dashboard: speed score with the change since the first audit, quick actions, recommended fixes with Fix and Fix all, the page cache card and profiles.","2":"Cache tab: page cache options, exclusions, preload and server rules.","3":"Optimize \u2192 JavaScript: minify, defer and jQuery Migrate, with the self-check result on the right.","4":"Optimize \u2192 Images: lazy loading, WebP\/AVIF copies, converting existing images, media audit.","5":"Database: clean-up with counts, scheduled cleaning, table sizes, autoloaded options.","6":"Tools: settings history with Restore, debug log, config file and WP-CLI reference."}},"plugin_section":[],"plugin_tags":[146,187,247,794,15376],"plugin_category":[52,54],"plugin_contributors":[254418],"plugin_business_model":[],"class_list":["post-389085","plugin","type-plugin","status-publish","hentry","plugin_tags-cache","plugin_tags-optimization","plugin_tags-performance","plugin_tags-speed","plugin_tags-webp","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-softminal","plugin_committers-softminal"],"banners":{"banner":"https:\/\/ps.w.org\/softminal-cache\/assets\/banner-772x250.png?rev=3769975","banner_2x":"https:\/\/ps.w.org\/softminal-cache\/assets\/banner-1544x500.png?rev=3769975","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/softminal-cache\/assets\/icon-128x128.gif?rev=3763679","icon_2x":"https:\/\/ps.w.org\/softminal-cache\/assets\/icon-256x256.gif?rev=3763679","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/softminal-cache\/assets\/screenshot-1.png?rev=3763679","caption":"Dashboard: speed score with the change since the first audit, quick actions, recommended fixes with Fix and Fix all, the page cache card and profiles."},{"src":"https:\/\/ps.w.org\/softminal-cache\/assets\/screenshot-2.png?rev=3763679","caption":"Cache tab: page cache options, exclusions, preload and server rules."},{"src":"https:\/\/ps.w.org\/softminal-cache\/assets\/screenshot-3.png?rev=3763679","caption":"Optimize \u2192 JavaScript: minify, defer and jQuery Migrate, with the self-check result on the right."},{"src":"https:\/\/ps.w.org\/softminal-cache\/assets\/screenshot-4.png?rev=3763679","caption":"Optimize \u2192 Images: lazy loading, WebP\/AVIF copies, converting existing images, media audit."},{"src":"https:\/\/ps.w.org\/softminal-cache\/assets\/screenshot-5.png?rev=3763679","caption":"Database: clean-up with counts, scheduled cleaning, table sizes, autoloaded options."},{"src":"https:\/\/ps.w.org\/softminal-cache\/assets\/screenshot-6.png?rev=3763679","caption":"Tools: settings history with Restore, debug log, config file and WP-CLI reference."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/softminalcache.com\/features\/\">Features<\/a> | <a href=\"https:\/\/softminalcache.com\/blog\/\">Blog<\/a> | <a href=\"https:\/\/support.softminal.com\">Get Support<\/a><\/p>\n\n<p>Softminal Cache makes your site fast and keeps it safe while doing so. \ud83d\udee1\ufe0f Risky changes are checked on your own site right after you save them, and every change can be undone.<\/p>\n\n<p>\ud83c\udf81 <strong>100% free, forever.<\/strong> There is no Pro version, no upsell, no ads and no account. Every feature is in this plugin, and nothing leaves your server.<\/p>\n\n<h4>\ud83e\udde9 More from Softminal<\/h4>\n\n<ul>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/imagecraft-ai-alt-text-file-renamer-image-seo\/\">ImageCraft<\/a><\/strong> \u2013 image optimizer: compression, WebP &amp; AVIF, AI alt text and titles, SEO file names and an image SEO audit. Works side by side with Softminal Cache.<\/li>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/softminal-b2b-wholesale-for-woocommerce\/\">B2B Suite for WooCommerce<\/a><\/strong> \u2013 wholesale prices, customer-group pricing, trade registration, quantity rules and a bulk order form.<\/li>\n<\/ul>\n\n<h4>\u26a1 Page cache<\/h4>\n\n<ul>\n<li>Pages are stored the first time they are built and served to the next visitors <strong>before WordPress loads<\/strong>, through a standard <code>advanced-cache.php<\/code> drop-in. If the drop-in cannot be installed, pages are still served from inside WordPress.<\/li>\n<li><strong>Clears itself<\/strong> when you publish or update content, approve a comment, change the theme, menus or widgets, or install updates. Purge everything or one page from the plugin screen or the admin bar.<\/li>\n<li><strong>Separate copy for phones<\/strong>, <strong>serve the old copy while rebuilding<\/strong> (stale-while-revalidate), and optional caching of 404 pages, feeds and <strong>logged-in users<\/strong> (private per-session copies, never for editors or administrators).<\/li>\n<li>Keep pages from 1 hour to 7 days; exclude URLs with wildcards or regular expressions; add your own never-cache cookies; tracking parameters such as <code>utm_*<\/code>, <code>fbclid<\/code> and <code>gclid<\/code> share one cached copy.<\/li>\n<li><strong>Cache rules:<\/strong> keep some pages for a different time (from 15 minutes to 7 days, by address pattern), never cache for chosen browsers or apps (user agent), clear extra pages whenever a post is updated, and tick <strong>Don't cache this page<\/strong> on any single post or page.<\/li>\n<li><strong>Widget and fragment cache:<\/strong> reuse the output of classic widgets, and of any slow part of a page with the <code>softminal_cache_fragment()<\/code> helper, even on pages that can't be cached as a whole (logged-in users, carts). Emptied with the page cache.<\/li>\n<li><strong>Multilingual sites<\/strong> (WPML, Polylang): a homepage that redirects by browser language is never cached, translations are cleared together, and preload covers every language.<\/li>\n<li><strong>Preload<\/strong> rebuilds pages in the background from your sitemap (or your homepage links), at a speed set from your host's limits.<\/li>\n<li><strong>Browser cache and compression<\/strong> rules for Apache and LiteSpeed, and a snippet to copy for Nginx.<\/li>\n<li><strong>Redis object cache:<\/strong> one switch after a connection test (address or socket, database, password stored encrypted, key prefix, TLS). Never replaces another object cache, only clears this site's keys, and pages keep working if Redis goes down.<\/li>\n<\/ul>\n\n<h4>\u2728 Optimize<\/h4>\n\n<ul>\n<li><strong>JavaScript:<\/strong> minify, load scripts after the page is visible (defer, WordPress 6.3+), wait for the visitor before running scripts (delay, cookie banners kept working), remove jQuery Migrate, combine neighbouring files, with an exclusion list.<\/li>\n<li><strong>Speed hints:<\/strong> connect early to other sites (preconnect, DNS prefetch, suggested from the speed audit), load chosen files first (preload), and open the next page before the click (WordPress 6.8+ speculative loading, configured; a tiny hover-prefetch script on older versions).<\/li>\n<li><strong>CSS:<\/strong> minify stylesheets and inline styles, combine neighbouring files, with an exclusion list. <strong>Critical CSS<\/strong> and <strong>remove unused CSS<\/strong>, generated in your own browser from sample pages of your site (no cloud service): the first screen's styles go into the page, and each stylesheet can be replaced by just the rules your pages use, with the full file loading on the visitor's first scroll or tap.<\/li>\n<li><strong>Cloudflare and Varnish:<\/strong> clear them whenever this cache is cleared (API token stored encrypted).<\/li>\n<li><strong>CDN:<\/strong> serve images, styles, scripts, fonts and media from one or more pull-zone CDN addresses, with a Test button and an exclusion list.<\/li>\n<li><strong>HTML:<\/strong> minify the page itself (spaces and comments), leaving code blocks, text boxes, scripts and styles as they are.<\/li>\n<li><strong>Fonts:<\/strong> host Google Fonts on your own site, show text while fonts load (<code>font-display: swap<\/code>), preload the main fonts.<\/li>\n<li><strong>Images:<\/strong> lazy-load images, videos and embeds (the first pictures always load at once), add missing width and height, <strong>WebP and AVIF copies<\/strong> of new uploads served through <code>&lt;picture&gt;<\/code> (when your server supports them; the screen shows it), convert existing images in the background, a media audit for huge images and missing alt text, a YouTube preview that loads the player only on click, lazy background images, the main image loaded first (preload), and lazy render for far-down sections.<\/li>\n<li><strong>Compress and resize<\/strong> new and existing JPEG and PNG uploads on your own server (GD or Imagick, no cloud), with the original kept so you can restore it, and a <strong>Resize<\/strong> button for huge images in the media audit. <strong>Gravatar pictures<\/strong> can be kept on your own site.<\/li>\n<li><strong>Script Manager:<\/strong> turn any script or stylesheet off everywhere, only on certain pages, or for logged-in users only. Files other files need are never removed.<\/li>\n<li><strong>Bloat:<\/strong> remove the emoji script, embeds, Dashicons for visitors, XML-RPC, head clutter, self-pingbacks and version numbers; slow down Heartbeat; limit revisions; turn off RSS feeds, Google Fonts added through WordPress and block styles on pages without blocks; close the WordPress REST API to logged-out visitors; load WooCommerce's cart fragments, styles and scripts only on shop pages; set the editor's autosave interval.<\/li>\n<\/ul>\n\n<h4>\ud83e\uddf9 Database<\/h4>\n\n<ul>\n<li>Clean post revisions (keeping the newest ones; autosaves are always kept), auto-drafts, trashed posts and comments, spam, expired transients, pingbacks, and data left behind by deleted posts, comments, users and categories, with a confirmation step and a scheduled clean-up (daily, weekly or monthly).<\/li>\n<li>Optimise tables and convert old MyISAM tables to InnoDB, each with a dry run first.<\/li>\n<li>See where your database space goes, which options are loaded on every page, and which scheduled tasks are stuck.<\/li>\n<\/ul>\n\n<h4>\ud83d\udcca Dashboard, profiles and safety<\/h4>\n\n<ul>\n<li><strong>Speed audit<\/strong> with a score out of 100, measured on your own site in your browser: page load, server response, page weight, requests and the largest image, each with its change since the first audit, a <strong>Fix<\/strong> button on each finding and <strong>Fix all safe ones<\/strong> in one click.<\/li>\n<li><strong>Quick actions<\/strong> on the Dashboard: purge the cache, start a preload, test the cache, and jump to the settings you use most.<\/li>\n<li><strong>Profiles:<\/strong> Safe (the default), Balanced and Aggressive, with a table of what each one turns on.<\/li>\n<li><strong>Self-check:<\/strong> after a change that could break pages, the plugin loads your homepage and a post, watches for errors, and switches the change back by itself if the site got worse.<\/li>\n<li><strong>Undo<\/strong> the latest change for 24 hours, a full settings history to restore any earlier one, and <strong>Safe Mode<\/strong> to pause every optimisation while you check something (the page cache keeps working).<\/li>\n<li>Detects other caching plugins and host caches (Kinsta, WP Engine, Flywheel, Pressable) and stays out of their way; detects other optimisation plugins and leaves their area to them.<\/li>\n<\/ul>\n\n<h4>\ud83e\uddf0 Tools<\/h4>\n\n<ul>\n<li>Import settings from WP Rocket, and (beta) from LiteSpeed Cache, W3 Total Cache, WP Fastest Cache, WP-Optimize, Autoptimize and Perfmatters. You see what came over and can undo it.<\/li>\n<li><strong>Factory reset<\/strong> (undoable), and a <strong>Purge<\/strong> menu in the admin bar for the roles you choose (editors, shop managers\u2026).<\/li>\n<li>Export and import settings as a JSON file; a debug log of what the cache did; a config file (<code>wp-content\/softminal-cache.json<\/code>) for sites managed from code; WP-CLI commands (<code>wp softminal-cache purge|preload|status|db clean|settings export|import<\/code>).<\/li>\n<\/ul>\n\n<h4>\ud83e\udd16 AI access (off by default)<\/h4>\n\n<ul>\n<li>Connect an AI app such as <strong>Claude<\/strong> or <strong>ChatGPT<\/strong> and ask about your cache in plain words: \"Is my homepage cached?\", \"What should I fix first?\", \"Clear the shop page\".<\/li>\n<li><strong>Paste one address<\/strong> into the app and click <strong>Allow<\/strong> in your own WordPress. Developer tools (Claude Code, Cursor, VS Code) connect with a token instead.<\/li>\n<li>You choose what each app may do: <strong>only look<\/strong>, or <strong>look and make changes<\/strong>. Every change goes into the settings history and can be undone.<\/li>\n<li>Risky actions (database cleanup, restoring old settings, imports, the object cache, CDN and Script Manager settings) wait for <strong>your approval<\/strong> in WordPress before they run.<\/li>\n<li>Every action an AI app takes is listed under <strong>AI \u2192 Activity<\/strong>. API keys and passwords are never shown to an AI app, and you can disconnect any app in one click.<\/li>\n<li>Built on the open Model Context Protocol (MCP), on your own site, with no account or service of ours in between.<\/li>\n<\/ul>\n\n<h4>\ud83c\udf0d Languages<\/h4>\n\n<p>The plugin screen is translated into Spanish, French, German, Italian, Portuguese (Brazil), Japanese and Dutch. Help translate it into your language on <a href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/softminal-cache\/\">translate.wordpress.org<\/a>.<\/p>\n\n<h4>\ud83d\udd12 Never cached, automatically<\/h4>\n\n<p>So carts, logins and private pages always stay correct:<\/p>\n\n<ul>\n<li>Logged-in users (unless you turn on their private copies) and recent commenters.<\/li>\n<li>Cart, checkout, account and receipt pages of WooCommerce, FluentCart and Easy Digital Downloads, and shoppers who have a cart.<\/li>\n<li>Search results, previews, password-protected and private pages, page-builder editors.<\/li>\n<li>Form submissions and any request that isn't a normal page view; pages that set a cookie.<\/li>\n<li>Any page where another plugin asks for no caching with the standard <code>DONOTCACHEPAGE<\/code> constant.<\/li>\n<\/ul>\n\n<h4>\ud83e\udd1d Contribute<\/h4>\n\n<p>Softminal Cache is developed and maintained by <a href=\"https:\/\/softminal.com\">Softminal<\/a>. Contributions are welcome: report a bug, suggest a feature or send a pull request on <a href=\"https:\/\/github.com\/softminal\/softminal-cache-public\">GitHub<\/a>.<\/p>\n\n<p>If another caching plugin is active, deactivate it first; two page caches fight each other.<\/p>\n\n<h3>Third-party services<\/h3>\n\n<p>Softminal Cache collects no data and has no service of its own. Only the features below make outside requests, and only after you turn them on:<\/p>\n\n<ul>\n<li><strong>Test cache, Preload, speed audit, self-check:<\/strong> these load pages of your own site (<code>home_url()<\/code>). Nothing goes anywhere else.<\/li>\n<li><strong>CDN<\/strong> (Cache \u2192 CDN, off by default): the <strong>Test<\/strong> button loads one WordPress core file (<code>wp-includes\/js\/jquery\/jquery.min.js<\/code>) from the CDN address you entered. When the CDN is on, visitors load your files from that CDN, under its own terms and privacy policy. The plugin sends it nothing else.<\/li>\n<li><strong>Cloudflare<\/strong> (Cache \u2192 CDN, Cloudflare and Bunny, off until you connect): with your API token, the plugin calls <code>api.cloudflare.com<\/code>. It finds your site's zone and clears Cloudflare's cache when this plugin clears its own (changed page addresses, or everything). Nothing else is sent. Cloudflare <a href=\"https:\/\/www.cloudflare.com\/website-terms\/\">terms<\/a> and <a href=\"https:\/\/www.cloudflare.com\/privacypolicy\/\">privacy policy<\/a>.<\/li>\n<li><strong>Bunny<\/strong> (Cache \u2192 CDN, Cloudflare and Bunny, off until you connect): with your API key, the plugin calls <code>api.bunny.net<\/code>. It finds the pull zone for this site and clears it when this plugin clears everything. Nothing else is sent. If you use that pull zone as your CDN, visitors load your files from Bunny. bunny.net <a href=\"https:\/\/bunny.net\/tos\/\">terms<\/a> and <a href=\"https:\/\/bunny.net\/privacy\/\">privacy policy<\/a>.<\/li>\n<li><strong>Keep Gravatar pictures on your site<\/strong> (Optimize \u2192 Images, off by default): your server downloads each Gravatar picture once from <code>secure.gravatar.com<\/code>, the address WordPress already uses. It then serves the picture from your site and refreshes it weekly. Nothing else is sent. Gravatar <a href=\"https:\/\/wordpress.com\/tos\/\">terms<\/a> and <a href=\"https:\/\/automattic.com\/privacy\/\">privacy policy<\/a>.<\/li>\n<li><strong>Google PageSpeed<\/strong> (Dashboard, only when you click <strong>Check with Google<\/strong>): the plugin sends one of your page addresses and your free Google API key to <code>www.googleapis.com<\/code>. Google tests that page and sends back the results, which stay on your site. Nothing runs in the background. <a href=\"https:\/\/developers.google.com\/terms\">PageSpeed Insights API terms<\/a> and Google's <a href=\"https:\/\/policies.google.com\/privacy\">privacy policy<\/a>.<\/li>\n<li><strong>Host Google Fonts on your site<\/strong> (Optimize \u2192 Fonts, off by default): your server downloads the fonts your theme already uses from <code>fonts.googleapis.com<\/code> and <code>fonts.gstatic.com<\/code>, once. Your site then serves them, so visitors stop connecting to Google. Google Fonts <a href=\"https:\/\/developers.google.com\/fonts\/terms\">terms<\/a> and <a href=\"https:\/\/policies.google.com\/privacy\">privacy policy<\/a>.<\/li>\n<li><p><strong>AI access<\/strong> (the AI tab, off by default): the plugin never calls an AI service itself. When you connect an AI app (for example Claude by Anthropic, ChatGPT by OpenAI, or Cursor or VS Code with the model you choose), that app sends requests to your site. The plugin answers only what the app is allowed to see:<\/p>\n\n<ul>\n<li>cache status and settings (never API keys, tokens or passwords)<\/li>\n<li>page check, speed audit and PageSpeed results<\/li>\n<li>settings history and database counts<\/li>\n<li>the last lines of the debug log, if it is on, with secrets removed<\/li>\n<\/ul>\n\n<p>This information goes to the company behind the app, under its own terms and privacy policy: Anthropic <a href=\"https:\/\/www.anthropic.com\/legal\/consumer-terms\">terms<\/a> and <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">privacy policy<\/a>, OpenAI <a href=\"https:\/\/openai.com\/policies\/terms-of-use\">terms<\/a> and <a href=\"https:\/\/openai.com\/policies\/privacy-policy\">privacy policy<\/a>. Apps that connect by address sign in with standard OAuth 2.1. You approve them on a page of your own WordPress, and their key works only for this site and only for what you allowed. Disconnect any app under AI \u2192 Connected apps.<\/p><\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20woocommerce%20and%20fluentcart%3F\"><h3>Does it work with WooCommerce and FluentCart?<\/h3><\/dt>\n<dd><p>Yes. Cart, checkout, account and receipt pages are never cached, and visitors who have a cart always get a live page, so nobody ever sees someone else's cart.<\/p><\/dd>\n<dt id=\"why%20does%20it%20change%20wp-config.php%3F\"><h3>Why does it change wp-config.php?<\/h3><\/dt>\n<dd><p>WordPress only loads a page cache early (before plugins and themes) when <code>WP_CACHE<\/code> is on. Softminal Cache adds <code>define( 'WP_CACHE', true ); \/\/ Added by Softminal Cache<\/code> near the top, and removes exactly that line when you deactivate it. If the file can't be written, nothing breaks: pages are still cached from inside WordPress, and the plugin screen shows the line so you can add it yourself.<\/p><\/dd>\n<dt id=\"where%20are%20cached%20pages%20stored%3F\"><h3>Where are cached pages stored?<\/h3><\/dt>\n<dd><p>In <code>wp-content\/cache\/softminal-cache\/<\/code> (each site has its own folder on a network). To use another folder, add <code>define( 'SOFTMINAL_CACHE_CACHE_DIR', '\/full\/path\/' );<\/code> to <code>wp-config.php<\/code>. Minified files, font copies and WebP\/AVIF images are kept in <code>wp-content\/cache\/softminal-cache-assets\/<\/code> and next to the original images.<\/p><\/dd>\n<dt id=\"how%20do%20i%20check%20that%20a%20page%20came%20from%20the%20cache%3F\"><h3>How do I check that a page came from the cache?<\/h3><\/dt>\n<dd><p>Open the page in a private window and look at the response headers: <code>X-Softminal-Cache: HIT<\/code> means it came from the cache, <code>MISS<\/code> means it was built and stored, and <code>BYPASS: reason<\/code> says why it wasn't cached. The Dashboard's <strong>Test cache<\/strong> does this for you.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20nginx%2C%20apache%20and%20litespeed%3F\"><h3>Does it work on Nginx, Apache and LiteSpeed?<\/h3><\/dt>\n<dd><p>Yes. Pages are served by PHP, so no server rules are needed for caching. Browser-cache and compression rules are written to <code>.htaccess<\/code> on Apache and LiteSpeed; on Nginx the plugin gives you a snippet to add to your server block. On Nginx, also add the snippet's <code>deny<\/code> rules: Apache reads the cache folder's <code>.htaccess<\/code>, Nginx does not, and the rules keep the cache folder and the config file from being opened directly.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site keeps its own settings and cached pages, and pages are served from inside WordPress. Table changes (optimise, InnoDB conversion) need a network administrator.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20other%20image%20plugins%3F\"><h3>Does it work with other image plugins?<\/h3><\/dt>\n<dd><p>Yes. If ImageCraft, ShortPixel, Performance Lab or Modern Image Formats already makes WebP\/AVIF copies, Softminal Cache leaves image formats to that plugin and its Dashboard says \"Handled by\" that plugin. Compression steps aside the same way for Smush, ShortPixel, Imagify, EWWW, TinyPNG, reSmush.it, Optimole and ImageCraft. Lazy loading and image sizes still work.<\/p><\/dd>\n<dt id=\"i%20use%20a%20host%20with%20its%20own%20page%20cache.\"><h3>I use a host with its own page cache.<\/h3><\/dt>\n<dd><p>Managed hosts such as Kinsta, WP Engine, Flywheel and Pressable already cache pages; Softminal Cache detects them, keeps its page cache off and still runs every other optimisation.<\/p><\/dd>\n<dt id=\"will%20it%20break%20my%20site%3F\"><h3>Will it break my site?<\/h3><\/dt>\n<dd><p>Every risky change is checked on your site right after you save it and switched back by itself if your homepage or a post got worse. If something still looks wrong, click <strong>Undo<\/strong>, turn on <strong>Safe Mode<\/strong>, or <strong>Purge<\/strong>.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20anything%20anywhere%3F\"><h3>Does the plugin send anything anywhere?<\/h3><\/dt>\n<dd><p>No. There is no account, no telemetry and no external service. See \"Third-party services\" below for the optional ones you turn on (Google Fonts download, your CDN, Cloudflare, Bunny, Google PageSpeed, and the AI apps you connect).<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20claude%20or%20chatgpt%3F\"><h3>How do I connect Claude or ChatGPT?<\/h3><\/dt>\n<dd><p>Open <strong>Softminal Cache \u2192 AI<\/strong> and switch on <strong>Let AI apps use Softminal Cache<\/strong>. Copy the address shown there. In Claude, open <strong>Settings \u2192 Connectors \u2192 Add custom connector<\/strong>, paste the address and click <strong>Connect<\/strong>; in ChatGPT, add it as a custom connector (where this is depends on your ChatGPT plan; it may need developer mode). A page from your own WordPress opens: choose <strong>Only look<\/strong> or <strong>Look and make changes<\/strong>, then click <strong>Allow<\/strong>. Your site must be online on https for this. For Claude Code, Cursor or VS Code, open <strong>For developers<\/strong> on the same screen, create a token and copy the ready-made setup. To disconnect an app, click <strong>Revoke<\/strong> under <strong>AI \u2192 Connected apps<\/strong>.<\/p><\/dd>\n<dt id=\"can%20an%20ai%20app%20break%20my%20site%3F\"><h3>Can an AI app break my site?<\/h3><\/dt>\n<dd><p>Only if you allow changes, and even then each change can be undone. Risky actions wait for your approval, the self-check switches a change back if your homepage or a post gets worse, and AI apps can never see or change API keys, passwords, the AI settings themselves, or files on your server.<\/p><\/dd>\n<dt id=\"how%20do%20i%20remove%20it%20completely%3F\"><h3>How do I remove it completely?<\/h3><\/dt>\n<dd><p>Deactivate it to remove the drop-in, the <code>WP_CACHE<\/code> line, the <code>.htaccess<\/code> rules and all cached pages. Delete it to also remove its settings, its history table, its cache folders and the WebP\/AVIF copies it made (copies made by another image plugin are left alone). To keep the settings when deleting, add <code>define( 'SOFTMINAL_CACHE_KEEP_DATA_ON_UNINSTALL', true );<\/code> to <code>wp-config.php<\/code>. If you compressed images, the untouched originals of images you still have stay in <code>wp-content\/uploads\/softminal-cache-originals\/<\/code> so they are never lost (originals of deleted images are removed); delete that folder yourself when you no longer need them. Apache and LiteSpeed never serve that folder; on Nginx, add <code>location ^~ \/wp-content\/uploads\/softminal-cache-originals\/ { deny all; }<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0 - 2 Nov, 2026<\/h4>\n\n<ul>\n<li>New: AI access. Connect Claude, ChatGPT, Cursor or VS Code and ask about your cache in plain words. Off by default.<\/li>\n<li>New: connect Claude or ChatGPT by pasting one address and clicking Allow in your own WordPress.<\/li>\n<li>New: choose what each AI app may do: only look, or look and make changes. Every change can be undone.<\/li>\n<li>New: risky AI actions wait for your approval in WordPress.<\/li>\n<li>New: every AI action is listed under AI \u2192 Activity, and you can disconnect any app in one click.<\/li>\n<li>New: works with the WordPress Abilities API and the MCP Adapter plugin.<\/li>\n<li>Improved: Cache and Optimize sections in a side menu, each with its own address.<\/li>\n<li>Improved: Exclusions and Cache rules have their own sections.<\/li>\n<li>Improved: shorter text on every card, with the details behind an (i).<\/li>\n<li>Improved: updated translations.<\/li>\n<\/ul>\n\n<h4>1.1.4 - 31 Oct, 2026<\/h4>\n\n<ul>\n<li>New: Google PageSpeed scores on the Dashboard.<\/li>\n<li>New: Bunny CDN support.<\/li>\n<li>New: a check that your cache folder is closed to the web.<\/li>\n<li>Improved: one main button on the Dashboard.<\/li>\n<li>Improved: a warning before you leave unsaved changes.<\/li>\n<li>Improved: better browser cache and compression checks.<\/li>\n<li>Improved: simpler times and fewer warnings.<\/li>\n<li>Improved: updated translations.<\/li>\n<\/ul>\n\n<h4>1.1.3 - 30 Oct, 2026<\/h4>\n\n<ul>\n<li>New: keep some pages for a different time, from 15 minutes to 7 days.<\/li>\n<li>New: never cache for chosen browsers or apps.<\/li>\n<li>New: clear extra pages when a post is updated.<\/li>\n<li>New: a \"Don't cache this page\" box in the post editor.<\/li>\n<li>New: widget cache, and a <code>softminal_cache_fragment()<\/code> helper for slow parts of a page.<\/li>\n<li>New: compress and resize JPEG and PNG images on your own server. Originals are kept.<\/li>\n<li>New: a Resize button for huge images in the media audit.<\/li>\n<li>New: keep Gravatar pictures on your own site.<\/li>\n<li>New: clean data left behind by deleted comments, users and categories.<\/li>\n<li>New: more bloat options, including RSS feeds, Google Fonts and WooCommerce cart fragments.<\/li>\n<li>New: factory reset, with Undo.<\/li>\n<li>New: a Purge menu in the admin bar for the roles you choose.<\/li>\n<li>New: support for WPML and Polylang sites.<\/li>\n<li>New: translated into Spanish, French, German, Italian, Portuguese (Brazil), Japanese and Dutch.<\/li>\n<li>Improved: a simpler Dashboard with quick actions and \"Fix all safe ones\".<\/li>\n<li>Fixed: speed changes are green only when the site got faster.<\/li>\n<\/ul>\n\n<h4>1.1.2 - 29 Oct, 2026<\/h4>\n\n<ul>\n<li>New: Critical CSS, generated in your own browser from sample pages of your site (no cloud service). The first screen's styles go into the page and the full stylesheets load without holding it back.<\/li>\n<li>New: Remove unused CSS, generated the same way. Each stylesheet is replaced by just the rules your pages use; the full file loads on the visitor's first scroll or tap. Pages that no longer match keep their normal CSS until you generate again.<\/li>\n<li>New: Redis object cache with a connection test, encrypted password, key prefix, database, socket and TLS. It never replaces another object cache, only clears this site's keys, and pages keep working if Redis goes down.<\/li>\n<li>New: Speed hints: connect early to other sites (preconnect and DNS prefetch, suggested by the speed audit) and load chosen files first (preload).<\/li>\n<li>New: Open the next page before the click (speculative loading), using WordPress's own on 6.8+ and a tiny script on older versions.<\/li>\n<li>New: YouTube preview: the video's picture and a play button; the player loads only when someone clicks.<\/li>\n<li>New: Lazy background images: backgrounds set on a section load as it comes into view.<\/li>\n<li>New: Main image loaded first (preload LCP image).<\/li>\n<li>New: Lazy render: far-down sections are drawn only when the visitor gets near them.<\/li>\n<li>Improved: the Cache tab is split into sections (Page cache, Browser and server, CDN and Cloudflare, Object cache).<\/li>\n<li>Improved: calmer focus style on text fields, and a plug icon on the Cloudflare Connect button.<\/li>\n<li>Profiles: Balanced now adds critical CSS, the YouTube preview and the main image preload; Aggressive adds all the new options. If you use one of these profiles, choose it again after updating to get them.<\/li>\n<\/ul>\n\n<h4>1.1.1 - 27 Oct, 2026<\/h4>\n\n<ul>\n<li>Security (multisite only): only a network admin can change the CDN address, because every script of the site loads from it. Site admins can still choose the file types and exclusions.<\/li>\n<li>Security (multisite only): a Cloudflare token set in wp-config.php is shared by the whole network, so only a network admin can connect, disconnect, switch purging or clear the whole zone with it. A purge started by a site admin clears only that site's pages.<\/li>\n<li>Single sites are not affected.<\/li>\n<\/ul>\n\n<h4>1.1.0 - 27 Oct, 2026<\/h4>\n\n<ul>\n<li>New: CDN. Serve images, styles, scripts, fonts and media from up to five pull-zone CDN addresses, with a Test button, file types and an exclusion list (Cache tab).<\/li>\n<li>New: Cloudflare and Varnish. Clear them whenever this plugin clears its cache: changed pages by address, or everything. The Cloudflare API token is stored encrypted, or set in wp-config.php (Cache tab).<\/li>\n<li>New: delay JavaScript until the visitor scrolls, taps or presses a key. jQuery, cookie banners and your exclusions keep running at once; logged-in users are not affected (Optimize \u2192 JavaScript \u2192 Advanced).<\/li>\n<li>New: combine CSS and combine JS. Neighbouring files become one without changing their order (Optimize \u2192 CSS \/ JavaScript \u2192 Advanced).<\/li>\n<li>New: minify HTML. Spaces and comments are removed; code blocks, text boxes, scripts and styles are left as they are (Optimize \u2192 CSS \u2192 HTML).<\/li>\n<li>The Aggressive profile now includes delay JS and combine CSS\/JS. A site that used Aggressive shows \"Custom\" until it picks Aggressive again.<\/li>\n<li>Importers carry over these settings from WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Fastest Cache, WP-Optimize, Autoptimize and Perfmatters.<\/li>\n<li>Fix: relative image and font addresses inside a stylesheet linked as \/wp-content\/\u2026 now keep working after minify.<\/li>\n<li>A small card on the plugin screen asks for a review a week after you start using the plugin. \"Maybe later\" asks again in two weeks; \"Write a review\" or \"I already did\" ends it.<\/li>\n<li>Help: the \"More from Softminal\" text now says each plugin has a free version on WordPress.org.<\/li>\n<\/ul>\n\n<h4>1.0.0 - 25 Oct, 2026<\/h4>\n\n<ul>\n<li>Optimize: minify and defer JavaScript, remove jQuery Migrate, minify CSS, local Google Fonts with swap and preload, lazy loading and missing image sizes, WebP\/AVIF copies of uploads with bulk conversion and a media audit, Script Manager, Bloat removal.<\/li>\n<li>Cache: separate copy for phones, stale-while-revalidate, 404 and feed caching, logged-in private copies, regular-expression exclusions, custom never-cache cookies and ignored parameters, preload from the sitemap, browser-cache and compression rules.<\/li>\n<li>Database: clean-up with confirmation and schedule, table optimise and InnoDB conversion with dry runs, autoloaded options, stuck scheduled tasks.<\/li>\n<li>Dashboard: speed audit with score, history and Fix buttons; Safe, Balanced and Aggressive profiles; self-check that undoes a change that broke the site; Undo for 24 hours and a settings history with Restore; Safe Mode.<\/li>\n<li>Help: a ? button in the top bar opens the docs, blog, support and more free plugins from Softminal.<\/li>\n<li>Tools: importers for seven other plugins (six of them in beta), settings history with pages, settings export\/import, debug log, config file, WP-CLI.<\/li>\n<li>Security: pages that set a cookie are never stored, full-length atomic writes, per-site cache and file folders on a network, private logged-in copies tied to WordPress's secret keys, wp-config.php edits written owner-only.<\/li>\n<\/ul>\n\n<h4>0.1.0 - 19 Oct, 2026<\/h4>\n\n<ul>\n<li>First release: page cache served before WordPress loads, Test cache, automatic clearing, Purge from the plugin screen and admin bar, cache lifetime and URL exclusions, safe handling of carts, logins and private pages, light and dark mode.<\/li>\n<\/ul>","raw_excerpt":"100% free WordPress cache plugin with AI access and everything others sell as Pro: page cache, critical CSS, WebP, Redis and more. No upsells, no ads.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/389085","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=389085"}],"author":[{"embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/softminal"}],"wp:attachment":[{"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=389085"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=389085"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=389085"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=389085"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=389085"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mlt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=389085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}