{"id":331372,"date":"2026-07-06T16:33:10","date_gmt":"2026-07-06T16:33:10","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/beky-cache-pilot\/"},"modified":"2026-09-25T21:25:23","modified_gmt":"2026-09-25T21:25:23","slug":"beky-cache-pilot","status":"publish","type":"plugin","link":"https:\/\/gax.wordpress.org\/plugins\/beky-cache-pilot\/","author":23514648,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1.2","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Beky Cache Pilot","header_author":"Beky","header_description":"Safe WordPress caching for builders and stores \u2014 compatibility-first page cache, optimization, and performance diagnostics for Elementor, Divi, Bricks, Beaver Builder, and WooCommerce.","assets_banners_color":"7669c6","last_updated":"2026-09-25 21:25:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/beky.io\/plugins-and-pricing\/beky-cache-plugin","header_author_uri":"https:\/\/beky.io\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":382,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"orthoplex","date":"2026-08-26 15:14:31","revision":3667345},"1.0.1":{"tag":"1.0.1","author":"orthoplex","date":"2026-08-26 15:47:10","revision":3667400},"1.0.2":{"tag":"1.0.2","author":"orthoplex","date":"2026-09-23 11:47:38","revision":3709249},"1.0.3":{"tag":"1.0.3","author":"orthoplex","date":"2026-09-23 12:29:24","revision":3709332},"1.0.4":{"tag":"1.0.4","author":"orthoplex","date":"2026-09-25 21:25:23","revision":3713607}},"upgrade_notice":{"1.0.4":"<p>Bug fix: stops a PHP fatal error during scheduled cache warming and cache cleanup. Recommended for all sites.<\/p>","1.0.3":"<p>Documentation-only update (plugin description and video). No code changes from 1.0.2.<\/p>","1.0.2":"<p>Adds Optimization Intelligence, a static asset cache, and CLS fixes. The static asset cache and real-visitor measurement are off by default; review the new Cache and Optimization tab settings after updating.<\/p>","1.0.1":"<p>Compatibility update for WordPress 7.1. No functional changes from 1.0.0.<\/p>","1.0.0":"<p>Initial release of Beky Cache Pilot. Enable Safe Mode and review compatibility detection before turning on full page cache on production sites.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3709249,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3709249,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3709249,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard overview \u2014 cache status, asset optimization, Safe Mode, and detected builder at a glance.","2":"Cache settings \u2014 full page cache, lifetime, warming, and exclusions.","3":"Optimization settings \u2014 CSS, JS, images, LCP, FCP, and third-party script delay.","4":"Asset unloading \u2014 smart presets for common plugins and page builders.","5":"Performance audit \u2014 diagnostics with actionable recommendations.","6":"Compatibility \u2014 builder detection and active adapters."}},"plugin_section":[],"plugin_tags":[146,3005,187,247,11676],"plugin_category":[52,54],"plugin_contributors":[270362],"plugin_business_model":[],"class_list":["post-331372","plugin","type-plugin","status-publish","hentry","plugin_tags-cache","plugin_tags-compatibility","plugin_tags-optimization","plugin_tags-performance","plugin_tags-preload","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-bekyplugins","plugin_committers-orthoplex"],"banners":{"banner":"https:\/\/ps.w.org\/beky-cache-pilot\/assets\/banner-772x250.png?rev=3709249","banner_2x":"https:\/\/ps.w.org\/beky-cache-pilot\/assets\/banner-1544x500.png?rev=3709249","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/beky-cache-pilot\/assets\/icon-128x128.gif?rev=3709249","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>https:\/\/vimeo.com\/1229513794\/2bfc509d0c<\/p>\n\n<p>Beky Cache Pilot is built for compatibility first: Safe Mode is enabled by default, builder detection runs before caching, and each module can be enabled independently \u2014 so you get Core Web Vitals gains without breaking editors, dynamic widgets, or checkout flows.<\/p>\n\n<p>Works on any hosting. No server lock-in. No aggressive defaults.<\/p>\n\n<h4>What's new<\/h4>\n\n<ul>\n<li><strong>Elementor pages with static dynamic tags are now cached<\/strong> \u2014 Buttons and links using Elementor's \"Internal URL\" (and other tags that are the same for every visitor, such as site and post titles, URLs, and the site logo) no longer force a page to skip the cache. Tags that change per visitor or over time still bypass it.<\/li>\n<li><strong>Full page cache works on more themes<\/strong> \u2014 Pages on block themes and lightweight classic themes are now cached, not only page-builder pages.<\/li>\n<li><strong>Optimization Intelligence<\/strong> \u2014 Measure real LCP, CLS, INP, FCP, and TTFB and apply one-click, reversible fixes for layout shifts and slow LCP.<\/li>\n<li><strong>Static asset cache<\/strong> \u2014 Optionally serve CSS, JavaScript, fonts, and images from a local cache with long-lived browser cache headers.<\/li>\n<li><strong>Lighter pages<\/strong> \u2014 The theme stylesheet is no longer downloaded twice, and no broken Google Fonts request is added to sites that don't use Google Fonts.<\/li>\n<\/ul>\n\n<h4>Why Beky Cache Pilot?<\/h4>\n\n<ul>\n<li><strong>Builder-safe full page cache<\/strong> \u2014 Detects Elementor, Divi, Bricks, Beaver Builder, and WP Bakery. Scans Elementor pages for real dynamic triggers (menus, carts, forms) and only bypasses cache when needed. Static builder pages can be cached when safe.<\/li>\n<li><strong>Safe Mode on by default<\/strong> \u2014 Conservative optimizations until you explicitly opt in.<\/li>\n<li><strong>WooCommerce that actually works<\/strong> \u2014 Automatic bypass on cart, checkout, account, and dynamic product queries. Personalized cart markup is stripped from stored HTML. Shop assets load only where needed.<\/li>\n<li><strong>Smart conditional asset unloading<\/strong> \u2014 One-click presets for Contact Form 7, WooCommerce, Elementor core, Elementor Swiper (carousel only), Elementor gallery, WP Bakery, Beaver Builder, and SiteOrigin Page Builder.<\/li>\n<li><strong>Site-aware LCP optimization<\/strong> \u2014 Hero detection understands Elementor backgrounds, Divi, Bricks, WooCommerce product galleries, and WordPress core blocks.<\/li>\n<li><strong>Built-in performance audit<\/strong> \u2014 Detects oversized images, third-party scripts, unused plugin CSS, and render-blocking resources \u2014 with actionable recommendations linked to settings.<\/li>\n<li><strong>Logged-in caching without duplicate pools<\/strong> \u2014 One optimized guest HTML pool per URL. Logged-in visitors receive personalization on cache HIT (admin bar and user tokens restored live).<\/li>\n<li><strong>Modern React dashboard<\/strong> \u2014 Clear modules for cache, optimization, asset unloading, preload, compatibility, performance audit, and tools. REST API\u2013backed settings.<\/li>\n<li><strong>Optimization Intelligence<\/strong> \u2014 A lightweight probe measures real LCP, CLS, INP, FCP, and TTFB, pinpoints the elements causing layout shifts or slow LCP, and offers one-click, reversible fixes. Real-visitor measurement (RUM) is off by default.<\/li>\n<li><strong>Static asset cache<\/strong> \u2014 Optionally serves theme, plugin, upload, and third-party CSS\/JS\/fonts\/images from a local cache with long-lived browser cache headers.<\/li>\n<li><strong>Modular by design<\/strong> \u2014 Enable only what you need. Page cache, LCP\/FCP optimizations, and asset unloading work independently.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<p>Beky Cache Pilot detects your active page builder, scans for truly dynamic content, and only caches what is safe. You get full page cache, smart asset unloading, LCP\/FCP optimization, and a built-in performance audit on standard WordPress hosting (Apache, nginx, or managed hosts).<\/p>\n\n<h4>Full page cache<\/h4>\n\n<ul>\n<li>Static HTML cache with mobile and desktop variants<\/li>\n<li>Cache warming on publish<\/li>\n<li>Configurable cache lifetime and query-parameter exclusions<\/li>\n<li>Builder query vars excluded by default (Visual Composer, Beaver Builder previews, and more)<\/li>\n<li>Debug-friendly cache status for front-end requests<\/li>\n<\/ul>\n\n<h4>Asset optimization<\/h4>\n\n<ul>\n<li>CSS minification and JavaScript defer<\/li>\n<li>Lazy loading and responsive image optimization (srcset\/sizes)<\/li>\n<li>Third-party script delay (Google Analytics, GTM, Facebook, Hotjar, HubSpot, Clarity, and custom patterns)<\/li>\n<li>FCP \/ Speed Index optimization for render-blocking resources<\/li>\n<li>Critical resource preloading and resource hints<\/li>\n<li>TTFB link preload for LCP candidates<\/li>\n<li>CLS protection: reserved space for images, embeds, and Elementor background videos, plus font-display: swap<\/li>\n<\/ul>\n\n<h4>Builder and e-commerce compatibility<\/h4>\n\n<p>Beky Cache Pilot ships dedicated compatibility adapters for:<\/p>\n\n<ul>\n<li>Elementor (dynamic content scanner and safe cache policy)<\/li>\n<li>Divi Builder<\/li>\n<li>Bricks<\/li>\n<li>Beaver Builder and WP Bakery (standard builder adapter)<\/li>\n<li>WooCommerce (shop, product, cart, checkout, and account routes)<\/li>\n<\/ul>\n\n<p>The compatibility tab in the dashboard shows detected builders and active adapters.<\/p>\n\n<h4>Who is Beky Cache Pilot for?<\/h4>\n\n<ul>\n<li><strong>Agencies<\/strong> \u2014 Deploy once across Elementor, Divi, Bricks, and WooCommerce sites.<\/li>\n<li><strong>Elementor users<\/strong> \u2014 Cache static Elementor pages without breaking dynamic widgets.<\/li>\n<li><strong>WooCommerce stores<\/strong> \u2014 Faster shop pages with a safe checkout.<\/li>\n<li><strong>Site owners who want a cautious rollout<\/strong> \u2014 Safe Mode first. Speed second.<\/li>\n<li><strong>Developers<\/strong> \u2014 REST API settings, WordPress filters throughout, and a modular PHP architecture.<\/li>\n<\/ul>\n\n<h3>Affiliation<\/h3>\n\n<p>Beky Cache Pilot is a product of <a href=\"https:\/\/beky.io\/\">Beky<\/a>. Official site: <a href=\"https:\/\/beky.io\/\">beky.io<\/a>. Documentation: <a href=\"https:\/\/beky.io\/docs\">beky.io\/docs<\/a>. Support: support@beky.io<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>The React admin dashboard source is in <code>src\/dashboard\/<\/code>. Build with:<\/p>\n\n<p>npm install\n  npm run build<\/p>\n\n<p>Requires Node.js 18+. Uses @wordpress\/scripts (webpack). Compiled assets are shipped in <code>assets\/build\/<\/code> for production installs.<\/p>\n\n<h3>External services<\/h3>\n\n<h4>Beky API (api.beky.io)<\/h4>\n\n<p>When the Beky Platform companion is active, the plugin may connect to <code>https:\/\/api.beky.io\/api\/v1<\/code> for license validation, settings sync, and plugin update checks. Data sent includes your site URL, plugin version, and license key (when you activate a license). Terms: https:\/\/beky.io\/terms \u2014 Privacy: https:\/\/beky.io\/privacy<\/p>\n\n<h4>Beky storefront (beky.io)<\/h4>\n\n<p>License purchase and account management links may open <a href=\"https:\/\/beky.io\/\">beky.io<\/a>. No data is sent until you visit those pages in your browser. Sales inquiries: sales@beky.io<\/p>\n\n<h4>Stripe<\/h4>\n\n<p>Subscription checkout and the customer billing portal (when licensed features use billing) are handled on Stripe-hosted pages. Billing is initiated only by a site administrator. Privacy: https:\/\/stripe.com\/privacy \u2014 Terms: https:\/\/stripe.com\/legal<\/p>\n\n<h4>Static asset cache: external assets (optional)<\/h4>\n\n<p>When the static asset cache is enabled and \"mirror external assets\" is on, your server downloads the CSS, JavaScript, font, and image files that your pages already load from third-party hosts (for example Google Fonts or a CDN) and serves local copies. Only the public file URL is requested; no visitor or site data is sent. You can exclude hosts or turn external mirroring off in the Cache tab. Each host's own privacy policy applies to those requests.<\/p>\n\n<h4>Optimization Intelligence (local only)<\/h4>\n\n<p>The performance probe reports page-speed metrics and the page element involved (tag, CSS selector, media URL) to your own site's REST API. Real-visitor measurement is off by default and sampled when enabled. The data is stored in your WordPress database only and is never sent to Beky or any third party.<\/p>\n\n<h4>Third-party scripts (optional delay feature)<\/h4>\n\n<p>When you enable third-party script delay, the plugin defers loading of scripts matching patterns you configure (defaults include Google Analytics, Google Tag Manager, Facebook, Hotjar, HubSpot, and Microsoft Clarity). Those services load in the visitor's browser per your site configuration; the plugin does not send visitor data to those providers from your server. See each provider's privacy policy for details.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>beky-cache-pilot<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Beky \u2192 Cache Pilot<\/strong> in the admin menu to open the dashboard.<\/li>\n<li>Enable <strong>Full page cache<\/strong> on the Cache tab when you are ready.<\/li>\n<li>Review the <strong>Compatibility<\/strong> tab to confirm your builder was detected.<\/li>\n<li>Run a <strong>Performance audit<\/strong> to see recommended optimizations.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20beky%20cache%20pilot%20break%20my%20elementor%20or%20divi%20layouts%3F\"><h3>Will Beky Cache Pilot break my Elementor or Divi layouts?<\/h3><\/dt>\n<dd><p>Beky Cache Pilot is designed for compatibility first. Safe Mode is enabled by default, and the plugin scans Elementor pages for dynamic widgets before deciding whether to cache. Editor, preview, and builder query requests are always bypassed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20cart%20and%20checkout%3F\"><h3>Does it work with WooCommerce cart and checkout?<\/h3><\/dt>\n<dd><p>Yes. Cart, checkout, my account, and dynamic product listing queries bypass the cache automatically. WooCommerce mini-cart markup is neutralized in stored HTML so cached pages do not serve stale cart state.<\/p><\/dd>\n<dt id=\"do%20i%20need%20litespeed%20or%20a%20specific%20host%3F\"><h3>Do I need LiteSpeed or a specific host?<\/h3><\/dt>\n<dd><p>No. Beky Cache Pilot works on shared hosting, nginx, Apache, Cloudways, Kinsta, and other common WordPress environments.<\/p><\/dd>\n<dt id=\"can%20i%20use%20page%20cache%20without%20aggressive%20asset%20optimization%3F\"><h3>Can I use page cache without aggressive asset optimization?<\/h3><\/dt>\n<dd><p>Yes. Modules are independent. You can enable full page cache alone, or combine it with LCP optimization, asset unloading, and other features as needed.<\/p><\/dd>\n<dt id=\"does%20it%20cache%20logged-in%20users%3F\"><h3>Does it cache logged-in users?<\/h3><\/dt>\n<dd><p>Optionally. When enabled, logged-in visitors can receive cache HITs with live personalization (admin bar and user-specific tokens injected on serve) from a single guest HTML pool per URL.<\/p><\/dd>\n<dt id=\"what%20page%20builders%20are%20supported%3F\"><h3>What page builders are supported?<\/h3><\/dt>\n<dd><p>Elementor, Divi, Bricks, Beaver Builder, WP Bakery (Visual Composer), and SiteOrigin Page Builder, with WooCommerce compatibility for shop sites.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixed: A PHP fatal error (ArgumentCountError in HookCompat) when WP-Cron ran the scheduled cache warm and cache expiration cleanup jobs. These background jobs now run normally again.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added a product video and a \"What's new\" section to the plugin description. No code changes.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: Optimization Intelligence \u2014 measures LCP, CLS, INP, FCP, and TTFB, attributes layout shifts and slow LCP elements, and offers one-click, reversible fixes.<\/li>\n<li>New: Static asset cache with local mirroring and long-lived browser cache headers (off by default).<\/li>\n<li>New: CLS layout optimizer \u2014 reserves space for images, embeds, and Elementor background videos; font-display: swap.<\/li>\n<li>Improved: LCP detection and preloading, asset unloading presets and conditions, and cache invalidation.<\/li>\n<li>Improved: Dashboard text fields now save when you leave the field.<\/li>\n<li>Improved: Cache Pilot notices now render only inside Cache Pilot screens (never on the global admin notice area), and every PHP file has a direct-access guard.<\/li>\n<li>Security: the public performance beacon is rate limited, validates and clips all input, and only accepts media from your own site; the lab probe only runs against your own site; external asset downloads refuse private network addresses.<\/li>\n<li>Updated the bundled Beky Platform library.<\/li>\n<li>Fixed: Full page cache now stores pages on block themes and lightweight classic themes (previously only builder-heavy pages with 5+ stylesheets were cached).<\/li>\n<li>Fixed: The static asset cache now mirrors CSS and JavaScript files (they were rejected as text\/plain).<\/li>\n<li>Fixed: The preconnect hint to fonts.googleapis.com is no longer turned into a broken font stylesheet request.<\/li>\n<li>Fixed: JavaScript files get long-lived browser cache headers on Apache servers that send them as text\/javascript.<\/li>\n<li>Fixed: Cache Pilot status notices now show on the Cache Pilot screen when running inside the Beky menu.<\/li>\n<li>Fixed: \"Translation loading triggered too early\" notice on WordPress 6.7+.<\/li>\n<li>Fixed: Uninstalling from WP-CLI now removes all plugin data, and uninstall removes the .htaccess files Cache Pilot created.<\/li>\n<li>Fixed: Elementor pages whose only dynamic tags are static (for example buttons using the \"Internal URL\" option) are now cached; tags that change per visitor or over time still bypass the cache. Pages scanned by an earlier version are re-scanned automatically.<\/li>\n<li>Fixed: The critical stylesheet preload now uses the exact enqueued URL (including ?ver=), so the theme stylesheet is no longer downloaded twice, and nothing is preloaded when the theme does not load style.css.<\/li>\n<li>Fixed: Classic-theme pages that were not built with a page builder are cached even when a page builder plugin is active.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Declared compatibility with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: full page cache, asset optimization, conditional asset unloading, LCP\/FCP optimization, performance audit, and builder compatibility layer.<\/li>\n<\/ul>","raw_excerpt":"Compatibility-first WordPress performance for Elementor, Divi, Bricks, Beaver Builder, and WooCommerce \u2014 fast sites that do not break your builder.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/331372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=331372"}],"author":[{"embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/orthoplex"}],"wp:attachment":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=331372"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=331372"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=331372"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=331372"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=331372"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=331372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}