[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fTf3yHg9a2uWf8VGP2VP8LhjtFXR3p3JcmG2Aa1KXfwU":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":141,"fingerprints":234},"bitpoke-geo-cache","Bitpoke Geo Cache","1.3.0","Bitpoke","https:\u002F\u002Fprofiles.wordpress.org\u002Fbitpokeio\u002F","\u003Cp>Bitpoke Geo Cache is a powerful WordPress plugin designed to manage full-page caching with a CDN provider of your\u003Cbr \u002F>\nchoice. Currently, it supports BunnyCDN and Cloudflare, with more providers to be added in future updates.\u003Cbr \u002F>\nThis plugin helps improve your website’s performance by caching pages and serving them to your users from the nearest edge location.\u003C\u002Fp>\n\u003Ch3>Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Full Page Caching:\u003C\u002Fstrong> Cache your entire WordPress pages to improve load times.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>BunnyCDN Integration:\u003C\u002Fstrong> Seamlessly integrate with BunnyCDN to manage your cache.\n\u003Cul>\n\u003Cli>\u003Cstrong>Edge Rules Management:\u003C\u002Fstrong> Create and manage edge rules for caching policies.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cache Purging:\u003C\u002Fstrong> Purge specific URLs or cache zones as needed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Settings Management:\u003C\u002Fstrong> Easy-to-use settings interface for configuring your CDN provider.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cloudflare Integration:\u003C\u002Fstrong> Seamlessly integrate with Cloudflare to manage your cache.\n\u003Cul>\n\u003Cli>\u003Cstrong>Cache Purging:\u003C\u002Fstrong> Purge specific URLs or cache zones as needed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Settings Management:\u003C\u002Fstrong> Easy-to-use settings interface for configuring your CDN provider.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to the \u003Ccode>Bitpoke Geo Cache\u003C\u002Fcode> settings page.\u003C\u002Fli>\n\u003Cli>Enter your BunnyCDN or Cloudflare API key and configure the cache zone.\u003C\u002Fli>\n\u003Cli>Save the settings.\u003C\u002Fli>\n\u003Cli>Synchronize predefined rules for common scenarios like skipping cache for authenticated users or setting long expiry for static resources.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Use Cases\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Improving Website Performance:\u003C\u002Fstrong> By caching full pages, you can significantly reduce load times and server load, providing a better user experience.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Geographical Distribution:\u003C\u002Fstrong> Serve cached content from the nearest edge location to your users, reducing latency and improving load times.\u003C\u002Fli>\n\u003C\u002Ful>\n","Manage WordPress full-page cache with a provider of your choice.",0,1108,"2025-05-22T16:24:00.000Z","6.8.5","6.6","7.4",[18,19,20,21,22],"bunny-cdn","cache","cdn","cloudflare","full-page-cache","https:\u002F\u002Fwww.bitpoke.io\u002Fwordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbitpoke-geo-cache.1.3.0.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"bitpokeio",2,30,94,"2026-04-04T15:23:00.210Z",[36,54,79,100,117],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":25,"downloaded":44,"rating":25,"num_ratings":31,"last_updated":45,"tested_up_to":46,"requires_at_least":47,"requires_php":48,"tags":49,"homepage":48,"download_link":52,"security_score":53,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"purge-cloud-flare","Purge Cloud Flare","1.6","webrangers","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebrangers\u002F","\u003Cp>It clears whole CloudFlare cache for desired domain.\u003Cbr \u002F>\nPurge is done from WordPress admin panel or plugin’s page. Current version contains functionality which purges individual files by URL and clears CloudFlare cache after Save Post action.\u003C\u002Fp>\n\u003Cp>THINGS YOU NEED TO KNOW:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Whenever you get error clearing the cache alert popup appears with CloudFlare Api response.\u003C\u002Fli>\n\u003Cli>This version allows you to purge whole CF cache and specific files by their urs.\u003C\u002Fli>\n\u003Cli>Clear cached files to force Cloudflare to fetch a fresh version of those files from your web server. You can purge files selectively or all at once.\u003C\u002Fli>\n\u003Cli>Purging the cache may temporarily degrade performance for your website.\u003C\u002Fli>\n\u003C\u002Ful>\n","Purge CloudFlare makes clearing CloudFlare cache as simple as one click.",4904,"2017-02-22T14:02:00.000Z","4.7.32","3.1","",[19,20,21,50,51],"free","performance","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpurge-cloud-flare.zip",85,{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":62,"downloaded":63,"rating":64,"num_ratings":65,"last_updated":66,"tested_up_to":67,"requires_at_least":68,"requires_php":69,"tags":70,"homepage":74,"download_link":75,"security_score":76,"vuln_count":77,"unpatched_count":11,"last_vuln_date":78,"fetched_at":27},"speedycache","SpeedyCache – Cache, Optimization, Performance","1.3.7","Softaculous","https:\u002F\u002Fprofiles.wordpress.org\u002Fsoftaculous\u002F","\u003Cp>SpeedyCache is a WordPress cache plugin that helps you improve performance of your WordPress site by caching, minifying, and compressing your website.\u003C\u002Fp>\n\u003Cp>You can find our official documentation at \u003Ca href=\"https:\u002F\u002Fspeedycache.com\u002Fdocs\" rel=\"nofollow ugc\">https:\u002F\u002Fspeedycache.com\u002Fdocs\u003C\u002Fa>. We are also active in our community support forums on wordpress.org if you are one of our free users. Our Premium Support Ticket System is at \u003Ca href=\"https:\u002F\u002Fsoftaculous.deskuss.com\" rel=\"nofollow ugc\">https:\u002F\u002Fsoftaculous.deskuss.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fspeedycache.com\" title=\"SpeedyCache Homepage\" rel=\"nofollow ugc\">Home Page\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fsoftaculous.deskuss.com\" title=\"SpeedyCache Support\" rel=\"nofollow ugc\">Support\u003C\u002Fa> | \u003Ca href=\"http:\u002F\u002Fspeedycache.com\u002Fdocs\" title=\"Documents\" rel=\"nofollow ugc\">Documents\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Other than caching SpeedyCache can also do the following:-\u003Cbr \u002F>\n1. It can minify and combine CSS\u002FJS giving even better optimization as it reduces the file sizes and reduces the HTTP requests to the server.\u003Cbr \u002F>\n2. Eliminate render-blocking JavaScript resources helping your website to load faster.\u003Cbr \u002F>\n3. Lazy load images so that the images can be requested only if they come into the viewport.\u003Cbr \u002F>\n4. GZIP files to reduce the size of the file sent from the server.\u003C\u002Fp>\n\u003Ch3>Free Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Caching:\u003C\u002Fstrong> Storing copies of the web pages of the desktop version. Caching happens when a user visits a webpage on your website\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Preload:\u003C\u002Fstrong> Preload makes sure the user always sees the cached version of your website as it periodically creates cache.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Combine CSS:\u003C\u002Fstrong> Combines CSS files present in the header of the page reducing HTTP requests.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Minify CSS:\u003C\u002Fstrong> Reduces the size of the CSS files.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic Cache:\u003C\u002Fstrong> Creates cache of post when it gets deleted if preload is enabled.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Combine JS:\u003C\u002Fstrong> Combines JS files present in the header of the page reducing HTTP requests.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GZIP:\u003C\u002Fstrong> It applies GZIP compression on the files hence reducing the file size sent from the server.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Browser Caching:\u003C\u002Fstrong> Caches the website on the browser of the client for repeating visitors.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>DNS-Prefetch:\u003C\u002Fstrong> DNS prefetch is a technique that improves website performance by resolving domain names in advance, before they are needed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Disable Emojis:\u003C\u002Fstrong> You can remove the emoji inline CSS and wp-emoji-release.min.js.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Exclude:\u003C\u002Fstrong> You can exclude certain Pages, User-Agent, Cookies, CSS, or JS from being cached.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CDN:\u003C\u002Fstrong> CDN helps improve website speed by placing the static files of your cached on their network of servers hence helping deliver content faster at any point in the world.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Display Swap:\u003C\u002Fstrong> Adds display swap to Google font URL, so when Google font loads the font will stay visible this is enabled by default.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Purge Varnish:\u003C\u002Fstrong> If enabled it will purge Varnish cache, whenever cache from SpeedyCache is purged.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Gravatar Cache:\u003C\u002Fstrong> Host Gravatars on your server.\u003C\u002Fli>\n\u003Cli>*Improve Font Rendering:** Adding CSS property of text-rendering to prioritize speed of render of Fonts.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>GET SUPPORT AND PRO FEATURES\u003C\u002Fh3>\n\u003Cp>Get professional support and more features to make your website load faster with \u003Ca href=\"https:\u002F\u002Fspeedycache.com\u002Fpricing\" rel=\"nofollow ugc\">SpeedyCache\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Pro Features:-\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Image Optimization:\u003C\u002Fstrong> Image optimization is a way to convert an image to next-gen image formats like webp which load images faster on the web.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Instant Page:\u003C\u002Fstrong> It loads the page just before user clicks the link, reducing the page load time.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Fonts:\u003C\u002Fstrong> Google fonts are also seen as render-blocking so this feature helps load Google fonts asynchronously.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Local Google Fonts:\u003C\u002Fstrong> Cache the Google fonts to be compliant with the GDPR rules.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lazy Load:\u003C\u002Fstrong> Loading all assets at once can make the page load slower hence lazy load helps by only loading certain resources when they come into the viewport.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Minify HTML:\u003C\u002Fstrong> It removes empty lines, line breaks, minifies inline Js And Css, removes comments and space in Tags\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Minify JS:\u003C\u002Fstrong> Reduces JS file size.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delay JS:\u003C\u002Fstrong> Delays the JS to load on user interaction to reduce or remove the issue of Unused JS.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced Combine JS:\u003C\u002Fstrong> Combines JS files placed in the footer section helping reduce HTTP calls.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Render blocking JS:\u003C\u002Fstrong> Before rendering a page the browser parses the HTML to create a DOM tree and if an external script comes it has to stop and wait for the script to execute hence the rendering of the page ends up taking time, hence Render blocking JS feature helps in deferring the load of JS after the render has happened hence the first load get faster.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delete Cache Stats:\u003C\u002Fstrong> Provides statistics about the cached files of Desktop or Mobile version and combined\u002F minified version of CSS and JS.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mobile Cache:\u003C\u002Fstrong> Caches the mobile version of your website and shows that version on mobile devices.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Database Cleanup:\u003C\u002Fstrong> Database cleanup helps you free up your database storage from temporary data, trashed contents, and post revisions which may take a lot of your database storage.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PreConnect:\u003C\u002Fstrong> Preconnect improves website loading times by establishing early connections to third-party domains.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Preload:\u003C\u002Fstrong> Preload improves website performance by downloading resources in advance, before they are needed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Critical CSS:\u003C\u002Fstrong> Extracts the CSS used by the page in the visible viewport at the time of load.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Unused CSS:\u003C\u002Fstrong> Removes the unused CSS, keeping the CSS that is being used by the paged, which reduces the size of CSS used on the page.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Object Cache:\u003C\u002Fstrong> It makes the object to persist by using Redis, to improve availability of the cache.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bloat Remover:\u003C\u002Fstrong> Options to remove unnecessary features of WordPress or WooCommerce.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Image Dimension:\u003C\u002Fstrong> Adds dimensions to the image tag which does not have width or height, to reduce (CLS)Cumulative Layout Shift.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lazy Render HTML:\u003C\u002Fstrong> User can lazy render HTML elements which are not in view-port.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Preload Critical Images:\u003C\u002Fstrong> Preload above-the-fold images to improve LCP(Largest Contentful paint).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Caching\u003C\u002Fh3>\n\u003Cp>SpeedyCache caches the website by creating static files on the server and delivers those static files to most of the users who visit the website, The static files eliminate the heavy load of Querying the database for data hence the load of your website is faster.\u003C\u002Fp>\n\u003Cp>You can preload as many pages as you want, and preloading caches the website in regular intervals of time to reduce the load on the server.\u003C\u002Fp>\n\u003Cp>Deleting Cache on New\u002Fupdating Post.\u003Cbr \u002F>\nYou can decide to delete the cache on the creation or updating of a post so that the cache can always stay updated.\u003C\u002Fp>\n\u003Ch3>Minifying\u002FCombining CSS and JS\u003C\u002Fh3>\n\u003Cp>SpeedyCache helps minify the JS and CSS hence it reduces the file sizes.\u003Cbr \u002F>\nCombining JS combines the CSS and JS fines reducing the file count and making the server handle lesser requests.\u003C\u002Fp>\n\u003Ch3>Cache Lifespan\u003C\u002Fh3>\n\u003Cp>Cache Lifespan is a way to schedule the deletion of cache.\u003C\u002Fp>\n\u003Ch3>Exclude\u003C\u002Fh3>\n\u003Cp>Exclude is a way to prevent SpeedyCache from caching certain files\u002F user-agents\u002F cookies.\u003C\u002Fp>\n\u003Ch3>CDN (Content Delivery Network)\u003C\u002Fh3>\n\u003Cp>CDN helps you host your static content on a distributed network optimized to deliver internet content faster it’s not a replacement to a web host. It caches your files on the network edge and delivers the content to the user through the closest and fastest server.\u003Cbr \u002F>\nSpeedyCache helps you integrate a CDN by rewriting the URLs of the static files you want to host on the CDN or in the Case of Cloudflare it helps with the purging of the cache on the Cloudflare servers.\u003C\u002Fp>\n\u003Ch3>[Pro] Image Optimization\u003C\u002Fh3>\n\u003Cp>Image optimization is a way to convert your images from old formats like JPG and PNG to the new next-gen formats like webp which is designed with the web as the target platform to load images faster. webp images result in smaller and richer images that make the web faster.\u003Cbr \u002F>\nWe provide 3 ways to convert your images to webp.\u003Cbr \u002F>\nGD(a PHP extension), Imagick(a PHP extension), and cwebp(a webp conversion utility from Google).\u003C\u002Fp>\n\u003Ch3>[Pro] Bloat Remover\u003C\u002Fh3>\n\u003Cp>SpeedyCache has 12 bloat removal options which are listed below.\u003Cbr \u002F>\n1. Disable Dashicons\u003Cbr \u002F>\n2. Update Heartbeat\u003Cbr \u002F>\n3. Limit Post Revisions\u003Cbr \u002F>\n4. Disable XML-RPC\u003Cbr \u002F>\n5. Disable Google Fonts\u003Cbr \u002F>\n6. Disable jQuery Migrate\u003Cbr \u002F>\n7. Disable RSS feeds\u003Cbr \u002F>\n8. Disable Gutenberg\u003Cbr \u002F>\n9. Disable OEmbeds\u003Cbr \u002F>\n10. Disable Block Editor CSS\u003Cbr \u002F>\n11. Disable Cart Fragments\u003Cbr \u002F>\n12. Disable WooCommerce Assets\u003C\u002Fp>\n\u003Ch3>[Pro] Database Cleanup\u003C\u002Fh3>\n\u003Cp>Data cleanup cleans the database by removing the following data:-\u003Cbr \u002F>\n1. Post Revisions\u003Cbr \u002F>\n2. Trashed Content\u003Cbr \u002F>\n3. Trashed and Spam comments\u003Cbr \u002F>\n4. Trackbacks and pingbacks\u003Cbr \u002F>\n5. All Transient options\u003Cbr \u002F>\n6. Expired Transient Options\u003C\u002Fp>\n","SpeedyCache is a WordPress cache plugin that helps you improve performance of your WordPress site by caching, minifying, and compressing your website.",600000,3893408,90,28,"2025-12-18T13:42:00.000Z","6.9.4","4.7","7.0",[19,20,71,72,73],"minify","pagespeed","seo","https:\u002F\u002Fspeedycache.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fspeedycache.1.3.7.zip",97,4,"2024-08-16 00:00:00",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":89,"num_ratings":90,"last_updated":91,"tested_up_to":67,"requires_at_least":92,"requires_php":16,"tags":93,"homepage":48,"download_link":96,"security_score":97,"vuln_count":98,"unpatched_count":11,"last_vuln_date":99,"fetched_at":27},"breeze","Breeze Cache","2.4.1","Cloudways","https:\u002F\u002Fprofiles.wordpress.org\u002Fcloudways\u002F","\u003Cp>Breeze is a free, simple (yet powerful) and user-friendly caching plugin developed by the Cloudways team. It offers various options to optimize WordPress site performance at various levels. It works equally great with WordPress, WordPress with WooCommerce and WordPress Multisite.\u003C\u002Fp>\n\u003Cp>Breeze excels in the following areas:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Performance:\u003C\u002Fstrong> Breeze improves website speed and resource optimization. Other features include file level cache system, database cleanup, minification, support for Varnish cache and simplified CDN integration options.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Convenience:\u003C\u002Fstrong> Breeze is easy to install and configure directly from WordPress. Configuring Breeze is easy and most of the default options work well right out of the box. The recommended settings should work on all your WordPress websites seamlessly.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Simplicity:\u003C\u002Fstrong> Breeze is designed to be simple for all users. Just install and activate the plugin and you’ll see the results instantaneously.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>What makes Breeze Cache Plugin awesome is that it comes with builtin support for Varnish. If Varnish is not installed on your servers, Breeze will utilize its internal cache mechanism to boost up your WordPress site performance.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>FEATURES\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Seamless integration with Varnish Cache for efficient content delivery. No manual adjustments needed – all settings come pre-configured for your convenience.\u003C\u002Fli>\n\u003Cli>Optimize performance using Cloudflare’s caching capabilities. No specific Breeze configurations are needed – it works out of the box.\u003C\u002Fli>\n\u003Cli>Effortlessly integrate your preferred Content Delivery Network (CDN) for global content distribution with Breeze instead of using the the CDN providers’ plugins.\u003C\u002Fli>\n\u003Cli>Trim WordPress database bloat effortlessly. Breeze’s Database Options optimize and declutter your database, boosting performance by removing unneeded data like post revisions and trashed content.\u003C\u002Fli>\n\u003Cli>Take command over caching exclusions. With Breeze, you have the power to prevent specific URLs, JS files, and CSS files from being cached.\u003C\u002Fli>\n\u003Cli>Achieve smaller page sizes and faster load times through HTML, CSS, and JavaScript minification, including inline CSS and JavaScript minification.\u003C\u002Fli>\n\u003Cli>Load images when they’re visible, not all at once, for faster webpage performance by implementing lazy loading for images.\u003C\u002Fli>\n\u003Cli>Load JS files with deferred loading, enhancing overall performance.\u003C\u002Fli>\n\u003Cli>Supercharge your site’s speed with Breeze’s advanced preloading features: load fonts early, quicken link clicks, and enhance DNS requests for a seamless user experience.\u003C\u002Fli>\n\u003Cli>Master real-time interactions with Breeze’s Heartbeat API management. Fine-tune notifications, sales data, autosaves, and more to optimize WordPress website performance by adjusting API call frequencies.\u003C\u002Fli>\n\u003Cli>Effortlessly manage Breeze settings using Import\u002FExport. Download your configurations as a .json file for backup, or effortlessly import existing settings to quickly fine-tune your optimization.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Support:\u003C\u002Fstrong> We love to provide support! Post your questions on the WordPress.org support forums, or if you are a Cloudways Customer you may ask questions on the \u003Ca href=\"https:\u002F\u002Fcommunity.cloudways.com\u002F\" rel=\"nofollow ugc\">Cloudways Community Forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cp>PHP 7.4, PHP 8 recommended for better performance, WordPress 6.0+\u003C\u002Fp>\n","Breeze is a caching plugin developed by Cloudways. Breeze uses advance caching systems to improve site loading times exponentially.",400000,13597399,72,125,"2026-03-03T09:14:00.000Z","6.0",[19,94,20,51,95],"caching","wp-cache","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbreeze.2.4.1.zip",95,8,"2026-02-18 15:43:14",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":25,"num_ratings":110,"last_updated":111,"tested_up_to":67,"requires_at_least":112,"requires_php":16,"tags":113,"homepage":115,"download_link":116,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"pantheon-advanced-page-cache","Pantheon Advanced Page Cache","2.1.2","Pantheon Systems","https:\u002F\u002Fprofiles.wordpress.org\u002Fgetpantheon\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fcircleci.com\u002Fgh\u002Fpantheon-systems\u002Fpantheon-advanced-page-cache\" rel=\"nofollow ugc\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>For sites wanting fine-grained control over how their responses are represented in their edge cache, Pantheon Advanced Page Cache is the golden ticket. Here’s a high-level overview of how the plugin works:\u003C\u002Fp>\n\u003Col>\n\u003Cli>When a response is generated, the plugin uses surrogate keys based on WordPress’ main \u003Ccode>WP_Query\u003C\u002Fcode> object to “tag” the response with identifers for the data used in the response. See the “Adding Custom Keys” section for including your own surrogate keys.\u003C\u002Fli>\n\u003Cli>When WordPress data is modified, the plugin triggers a purge request for the data’s corresponding surrogate keys.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Because of its surrogate key technology, Pantheon Advanced Page Cache empowers WordPress sites with a significantly more accurate cache purge mechanism, and generally higher cache hit rate. It even works with the WordPress REST API.\u003C\u002Fp>\n\u003Cp>Go forth and make awesome! And, once you’ve built something great, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpantheon-systems\u002Fpantheon-advanced-page-cache\u002Fissues\" rel=\"nofollow ugc\">send us feature requests (or bug reports)\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Cp>Pantheon Advanced Page Cache makes heavy use of surrogate keys, which enable responses to be “tagged” with identifiers that can then later be used in purge requests. For instance, a home page response might include the \u003Ccode>Surrogate-Key\u003C\u002Fcode> header with these keys:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Surrogate-Key: front home post-43 user-4 post-41 post-9 post-7 post-1 user-1\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Similarly, a \u003Ccode>GET\u003C\u002Fcode> requests to \u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u003C\u002Fcode> might include the \u003Ccode>Surrogate-Key\u003C\u002Fcode> header with these keys:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Surrogate-Key: rest-post-collection rest-post-43 rest-post-43 rest-post-9 rest-post-7 rest-post-1\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Because cached responses include metadata describing the data therein, surrogate keys enable more flexible purging behavior like:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>When a post is updated, clear the cache for the post’s URL, the homepage, any index view the post appears on, and any REST API endpoints the post is present in.\u003C\u002Fli>\n\u003Cli>When an author changes their name, clear the cache for the author’s archive and any post they’ve authored.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>There is a limit to the number of surrogate keys in a response, so we’ve optimized them based on a user’s expectation of a normal WordPress site. See the “Emitted Keys” section for full details on which keys are included, and the “Adding Custom Keys” section following for information on how to add your own.\u003C\u002Fp>\n\u003Ch4>Adding Custom Keys\u003C\u002Fh4>\n\u003Cp>By default, Pantheon Advanced Page Cache generates surrogate keys based on an interpretation of the main \u003Ccode>WP_Query\u003C\u002Fcode> query object. Because WordPress sends headers before the page is rendered, you need to use the \u003Ccode>pantheon_wp_main_query_surrogate_keys\u003C\u002Fcode> filter to include additional surrogate keys for any data present on the page.\u003C\u002Fp>\n\u003Cp>For example, to include surrogate keys for a sidebar rendered on the homepage, you can filter the keys using the \u003Ccode>is_home()\u003C\u002Fcode> template tag:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n * Add surrogate key for the featured content sidebar rendered on the homepage.\n *\u002F\nadd_filter( 'pantheon_wp_main_query_surrogate_keys', function( $keys ){\n    if ( is_home() ) {\n        $keys[] = 'sidebar-home-featured';\n    }\n    return $keys;\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Then, when sidebars are updated, you can use the \u003Ccode>pantheon_wp_clear_edge_keys()\u003C\u002Fcode> helper function to emit a purge event specific to the surrogate key:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n * Trigger a purge event for the featured content sidebar when widgets are updated.\n *\u002F\nadd_action( 'update_option_sidebars_widgets', function() {\n    pantheon_wp_clear_edge_keys( array( 'sidebar-home-featured' ) );\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Similarly, to include surrogate keys for posts queried on the homepage, you can pre-fetch the posts before the page is rendered:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n * An example of pre-fetching a WP_Query to tag the\n * response with queried data. You'd use `papcx_wp_query()`\n * a second time within your template to use the data.\n *\u002F\nadd_filter( 'pantheon_wp_main_query_surrogate_keys', function( $keys ) {\n    if ( is_home() ) {\n        $query = papcx_wp_query( array(\n            'post_type' => 'page',\n        ) );\n        foreach( $query->posts as $post ) {\n            $keys[] = 'post-' . $post->ID;\n        }\n    }\n    return $keys;\n});\n\n\u002F**\n * Register a 'papc-non-persistent' cache group to cache data\n * in a non-persistent manner. We only want data in this group\n * to be cached within the page request.\n *\u002F\nadd_action( 'init', function(){\n    wp_cache_add_non_persistent_groups( array( 'papc-non-persistent' ) );\n});\n\n\u002F**\n * Helper function to instantiate a WP_Query object only\n * once per page request.\n *\n * @param array $args Arguments to pass to WP_Query.\n * @return WP_Query\n *\u002F\nfunction papcx_wp_query( $args = array() ) {\n    $cache_key = md5( serialize( $args ) );\n    \u002F\u002F WP_Query object will be in cache the second time we use the function.\n    $cache_value = wp_cache_get( $cache_key, 'papc-non-persistent' );\n    if ( false !== $cache_value ) {\n        return $cache_value;\n    }\n    $query = new WP_Query( $args );\n    wp_cache_set( $cache_key, $query, 'papc-non-persistent' );\n    return $query;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Because Pantheon Advanced Page Cache already handles WordPress post purge events, there’s no additional call to \u003Ccode>pantheon_wp_clear_edge_keys()\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Lastly, the \u003Ccode>pantheon_wp_rest_api_surrogate_keys\u003C\u002Fcode> filter lets you filter surrogate keys present in a REST API response.\u003C\u002Fp>\n\u003Ch4>Additional purging by path\u003C\u002Fh4>\n\u003Cp>When a post is published for the first time, the permalink’s path is also purged even if it has no matching keys. This can be further filtered with the \u003Ccode>pantheon_clear_post_path\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    add_action('pantheon_clear_post_path', function($paths) {\n        \u002F\u002F Add or remove paths from $paths\n        return $paths\n    }, 10, 3);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Need a bit more power? In addition to \u003Ccode>pantheon_wp_clear_edge_keys()\u003C\u002Fcode>, there are two additional helper functions you can use:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>pantheon_wp_clear_edge_paths( $paths = array() )\u003C\u002Fcode> – Purge cache for one or more paths.\u003C\u002Fli>\n\u003Cli>\u003Ccode>pantheon_wp_clear_edge_all()\u003C\u002Fcode> – Warning! With great power comes great responsibility. Purge the entire cache, but do so wisely.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Ignoring Specific Post Types\u003C\u002Fh4>\n\u003Cp>By default, Pantheon Advanced Page Cache is pretty aggressive in how it clears its surrogate keys. Specifically, any time \u003Ccode>wp_insert_post\u003C\u002Fcode> is called (which can include any time a post of any type is added or updated, even private post types), it will purge a variety of keys including \u003Ccode>home\u003C\u002Fcode>, \u003Ccode>front\u003C\u002Fcode>, \u003Ccode>404\u003C\u002Fcode> and \u003Ccode>feed\u003C\u002Fcode>. To bypass or override this behavior, since 1.5.0 we have a filter allowing an array of post types to ignore to be passed before those caches are purged. By default, the \u003Ccode>revision\u003C\u002Fcode> post type is ignored, but others can be added:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n* Add a custom post type to the ignored post types.\n*\n* @param array $ignored_post_types The array of ignored post types.\n* @return array\n*\u002F\nfunction filter_ignored_posts( $ignored_post_types ) {\n    $ignored_post_types[] = 'my-post-type'; \u002F\u002F Ignore my-post-type from cache purges.\n    return $ignored_post_types;\n}\n\nadd_filter( 'pantheon_purge_post_type_ignored', 'filter_ignored_posts' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This will prevent the cache from being purged if the given post type is updated.\u003C\u002Fp>\n\u003Ch4>Setting the Cache Max Age with a filter\u003C\u002Fh4>\n\u003Cp>The cache max age setting is controlled by the \u003Ca href=\"https:\u002F\u002Fdocs.pantheon.io\u002Fguides\u002Fwordpress-configurations\u002Fwordpress-cache-plugin\" rel=\"nofollow ugc\">Pantheon Page Cache\u003C\u002Fa> admin page. As of 2.0.0, there are three cache age options by default — 1 week, 1 month, 1 year. Pantheon Advanced Page Cache automatically purges the cache of updated and related posts and pages, but you might want to override the cache max age value and set it programmatically. In this case, you can use the \u003Ccode>pantheon_cache_default_max_age\u003C\u002Fcode> filter added in \u003Ca href=\"https:\u002F\u002Fdocs.pantheon.io\u002Fguides\u002Fwordpress-configurations\u002Fwordpress-cache-plugin#override-the-default-max-age\" rel=\"nofollow ugc\">Pantheon MU plugin 1.4.0+\u003C\u002Fa>. For example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pantheon_cache_default_max_age', function() {\n    return 10 * DAY_IN_SECONDS;\n} );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>When the cache max age is filtered in this way, the admin option is disabled and a notice is displayed.\u003C\u002Fp>\n\u003Ch4>Updating the cache max age based on nonces\u003C\u002Fh4>\n\u003Cp>Nonces created on the front-end, often used to secure forms and other data, have a lifetime, and if the cache max age is longer than the nonce lifetime, the nonce may expire before the cache does. To avoid this, you can use the \u003Ccode>pantheon_cache_nonce_lifetime\u003C\u002Fcode> action to set the \u003Ccode>pantheon_cache_default_max_age\u003C\u002Fcode> to less than the nonce lifetime. For example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>do_action( 'pantheon_cache_nonce_lifetime' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>It’s important to wrap your \u003Ccode>do_action\u003C\u002Fcode> in the appropriate conditionals to ensure that the action is only called when necessary and not filtering the cache max age in cases when it’s not necessary. This might mean only running on certain pages or in certain contexts in your code.\u003C\u002Fp>\n\u003Ch3>WP-CLI Commands\u003C\u002Fh3>\n\u003Cp>This plugin implements a variety of \u003Ca href=\"https:\u002F\u002Fwp-cli.org\" rel=\"nofollow ugc\">WP-CLI\u003C\u002Fa> commands. All commands are grouped into the \u003Ccode>wp pantheon cache\u003C\u002Fcode> namespace.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ wp help pantheon cache\n\nNAME\n\n  wp pantheon cache\n\nDESCRIPTION\n\n  Manage the Pantheon Advanced Page Cache.\n\nSYNOPSIS\n\n  wp pantheon cache \u003Ccommand>\n\nSUBCOMMANDS\n\n  purge-all       Purge the entire page cache.\n  purge-key       Purge one or more surrogate keys from cache.\n  purge-path      Purge one or more paths from cache.\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Use \u003Ccode>wp help pantheon cache \u003Ccommand>\u003C\u002Fcode> to learn more about each command.\u003C\u002Fp>\n\u003Ch3>Debugging\u003C\u002Fh3>\n\u003Cp>By default, Pantheon’s infrastructure strips out the \u003Ccode>Surrogate-Key\u003C\u002Fcode> response header before responses are served to clients. The contents of this header can be viewed as \u003Ccode>Surrogate-Key-Raw\u003C\u002Fcode> by adding on a debugging header to the request.\u003C\u002Fp>\n\u003Cp>A direct way of inspecting headers is with \u003Ccode>curl -I\u003C\u002Fcode>. This command will make a request and show just the response headers. Adding \u003Ccode>-H \"Pantheon-Debug:1\"\u003C\u002Fcode> will result in \u003Ccode>Surrogate-Key-Raw\u003C\u002Fcode> being included in the response headers. The complete command looks like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl -IH \"Pantheon-Debug:1\" https:\u002F\u002Fscalewp.io\u002F\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Piping to \u003Ccode>grep\u003C\u002Fcode> will filter the output down to just the \u003Ccode>Surrogate-Key-Raw\u003C\u002Fcode> header:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl -IH \"Pantheon-Debug:1\" https:\u002F\u002Fscalewp.io\u002F | grep -i Surrogate-Key-Raw\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Tada!\u003C\u002Fp>\n\u003Ch3>Emitted Keys and Purge Events\u003C\u002Fh3>\n\u003Ch4>Emitted Keys on Traditional Views\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Home \u003Ccode>\u002F\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>home\u003C\u002Fcode>, \u003Ccode>front\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode> (all posts in main query)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Single post \u003Ccode>\u002F2016\u002F10\u002F14\u002Fsurrogate-keys\u002F\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>single\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode>, \u003Ccode>post-user-\u003Cid>\u003C\u002Fcode>, \u003Ccode>post-term-\u003Cid>\u003C\u002Fcode> (all terms assigned to post)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Author archive \u003Ccode>\u002Fauthor\u002Fpantheon\u002F\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>archive\u003C\u002Fcode>, \u003Ccode>user-\u003Cid>\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode> (all posts in main query)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Term archive \u003Ccode>\u002Ftag\u002Fcdn\u002F\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>archive\u003C\u002Fcode>, \u003Ccode>term-\u003Cid>\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode> (all posts in main query)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Day archive \u003Ccode>\u002F2016\u002F10\u002F14\u002F\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>archive\u003C\u002Fcode>, \u003Ccode>date\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode> (all posts in main query)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Month archive \u003Ccode>\u002F2016\u002F10\u002F\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>archive\u003C\u002Fcode>, \u003Ccode>date\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode> (all posts in main query)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Year archive \u003Ccode>\u002F2016\u002F\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>archive\u003C\u002Fcode>, \u003Ccode>date\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode> (all posts in main query)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Search \u003Ccode>\u002F?s=\u003Csearch>\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>search\u003C\u002Fcode>, either \u003Ccode>search-results\u003C\u002Fcode> or \u003Ccode>search-no-results\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode> (all posts in main query)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Not found (404)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Emits surrogate keys: \u003Ccode>404\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Emitted Keys on REST API Endpoints\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Posts\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-post-collection\u003C\u002Fcode>, \u003Ccode>rest-post-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F\u003Cid>\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-post-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Pages\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fpages\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-page-collection\u003C\u002Fcode>, \u003Ccode>rest-post-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fpages\u002F\u003Cid>\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-post-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Categories\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-category-collection\u003C\u002Fcode>, \u003Ccode>rest-term-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories\u002F\u003Cid>\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-term-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Tags\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Ftags\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-post_tag-collection\u003C\u002Fcode>, \u003Ccode>rest-term-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Ftags\u002F\u003Cid>\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-term-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Comments\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-comment-collection\u003C\u002Fcode>, \u003Ccode>rest-comment-post-\u003Cpost-id>\u003C\u002Fcode>, \u003Ccode>rest-comment-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments\u002F\u003Cid>\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-comment-post-\u003Cpost-id>\u003C\u002Fcode>, \u003Ccode>rest-comment-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Users\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fusers\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-user-collection\u003C\u002Fcode>, \u003Ccode>rest-user-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fusers\u002F\u003Cid>\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-user-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Settings\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fwp-json\u002Fwp\u002Fv2\u002Fsettings\u003C\u002Fcode> emits surrogate keys: \u003Ccode>rest-setting-\u003Cname>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Purge Events\u003C\u002Fh4>\n\u003Cp>Different WordPress actions cause different surrogate keys to be purged, documented here.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>wp_insert_post \u002F transition_post_status \u002F before_delete_post \u002F delete_attachment\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>home\u003C\u002Fcode>, \u003Ccode>front\u003C\u002Fcode>, \u003Ccode>404\u003C\u002Fcode>, \u003Ccode>post-\u003Cid>\u003C\u002Fcode>, \u003Ccode>user-\u003Cid>\u003C\u002Fcode>, \u003Ccode>term-\u003Cid>\u003C\u002Fcode>, \u003Ccode>rest-\u003Ctype>-collection\u003C\u002Fcode>, \u003Ccode>rest-comment-post-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: homepage, single post, any page with 404 header, any archive where post displays, author archive, term archive, REST API collection and resource endpoints\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>clean_post_cache\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>post-\u003Cid>\u003C\u002Fcode>, \u003Ccode>rest-post-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: single post, REST API resource endpoint\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>created_term \u002F edited_term \u002F delete_term\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>term-\u003Cid>\u003C\u002Fcode>, \u003Ccode>post-term-\u003Cid>\u003C\u002Fcode>, \u003Ccode>rest-\u003Ctaxonomy>-collection\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: term archive, any post where the term is assigned, REST API collection and resource endpoints\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>clean_term_cache\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>term-\u003Cid>\u003C\u002Fcode>, \u003Ccode>rest-term-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: term archive, REST API resource endpoint\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>wp_insert_comment \u002F transition_comment_status\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>rest-comment-collection\u003C\u002Fcode>, \u003Ccode>rest-comment-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: REST API collection and resource endpoints\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>clean_comment_cache\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>rest-comment-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: REST API resource endpoint\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>clean_user_cache\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>user-\u003Cid>\u003C\u002Fcode>, \u003Ccode>rest-user-\u003Cid>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: author archive, any post where the user is the author\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>updated_option\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purges surrogate keys: \u003Ccode>rest-setting-\u003Cname>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Affected views: REST API resource endpoint\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Surrogate Keys for taxonomy terms\u003C\u002Fh3>\n\u003Cp>Setting surrogate keys for posts with large numbers of taxonomies (such as WooCommerce products with a large number of global attributes) can suffer from slower queries. Surrogate keys can be skipped for ‘product’ post types’ taxonomy terms (or any other criteria you see fit) with the following filter:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function custom_should_add_terms($should_add_terms, $wp_query) {\n    if ( $wp_query->is_singular( 'product' ) ) {\n        return false;\n    }\n    return $should_add_terms;\n}\nadd_filter('pantheon_should_add_terms', 'custom_should_add_terms', 10, 2);\u003Ch3>Other Filters\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>pantheon_apc_disable_admin_notices\u003C\u002Fh4>\n\u003Cp>Since 2.0.0, Pantheon Advanced Page Cache displays a number of admin notices about your current cache max age value. You can disable these notices with the \u003Ccode>pantheon_apc_disable_admin_notices\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pantheon_apc_disable_admin_notices', '__return_true' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Alternately, the function callback is passed into the \u003Ccode>pantheon_apc_disable_admin_notices\u003C\u002Fcode> filter, allowing you to specify precisely \u003Cem>which\u003C\u002Fem> notice to disable, for example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pantheon_apc_disable_admin_notices', function( $disable_notices, $callback ) {\n    if ( $callback === '\\\\Pantheon_Advanced_Page_Cache\\\\Admin_Interface\\\\admin_notice_maybe_recommend_higher_max_age' ) {\n        return true;\n    }\n    return $disable_notices;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The above example would disable \u003Cem>only\u003C\u002Fem> the admin notice recommending a higher cache max age.\u003C\u002Fp>\n\u003Ch3>Plugin Integrations\u003C\u002Fh3>\n\u003Cp>Pantheon Advanced Page Cache integrates with WordPress plugins, including:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-graphql\u002F\" rel=\"ugc\">WPGraphQL\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contributing\u003C\u002Fh3>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpantheon-systems\u002Fwp-saml-auth\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md\" rel=\"nofollow ugc\">CONTRIBUTING.md\u003C\u002Fa> for information on contributing.\u003C\u002Fp>\n","Automatically clear related pages from Pantheon's Edge when you update content. High TTL. Fresh content. Visitors never wait.",10000,1039772,1,"2025-12-16T18:21:00.000Z","6.4",[19,20,114],"pantheon","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpantheon-advanced-page-cache\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpantheon-advanced-page-cache.2.1.2.zip",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":125,"downloaded":126,"rating":127,"num_ratings":128,"last_updated":129,"tested_up_to":130,"requires_at_least":131,"requires_php":16,"tags":132,"homepage":137,"download_link":138,"security_score":139,"vuln_count":110,"unpatched_count":11,"last_vuln_date":140,"fetched_at":27},"ilab-media-tools","Media Cloud for Bunny CDN, Amazon S3, Cloudflare R2, Google Cloud Storage, DigitalOcean and more","4.6.4","interfacelab","https:\u002F\u002Fprofiles.wordpress.org\u002Finterfacelab\u002F","\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F3tB3rKkwAJY?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>Media cloud is a revolutionary plug-in for WordPress that will supercharge the performance of your website and radically transform the way that you work with media in WordPress.\u003C\u002Fp>\n\u003Cp>Media Cloud works by moving your images, media and other files from your WordPress server to online cloud storage such as Amazon S3, Google Cloud Storage, DigitalOcean Spaces, DreamHost Object Storage and many others.  You can then serve that media through a CDN like Amazon Cloud front, Cloudflare, Fastly and others.\u003C\u002Fp>\n\u003Cp>Beyond cloud storage, Media Cloud also has deep integration with Imgix, the leading real-time image manipulation and optimization CDN.  Media Cloud is the first plugin for WordPress to bring the full benefit of what Imgix offers – simplifying your development efforts, reducing your site’s page load times and opening up creative options that simply haven’t existed until now.\u003C\u002Fp>\n\u003Cp>Media Cloud also provides advanced image editing tools that provide improved cropping options, effects, filters, watermarking and more.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: This plugin requires PHP 7.1 or higher\u003C\u002Fp>\n\u003Ch4>Upload to S3, Cloudflare R2, Minio, Google Cloud Storage, Digital Ocean Spaces, DreamHost Object Storage and others\u003C\u002Fh4>\n\u003Cp>Automatically copy media uploads to the cloud and serve them directly from your cloud storage provider, CloudFront or any other CDN.\u003C\u002Fp>\n\u003Ch4>Video Encoding with Mux\u003C\u002Fh4>\n\u003Cp>Upload videos and encode them nearly instantly to adaptive bitrate HLS that plays back smoothly and beautifully on any device regardless of bandwidth.  Requires an account with \u003Ca href=\"https:\u002F\u002Fmux.com\" rel=\"nofollow ugc\">Mux\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Integrate with Imgix\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fimgix.com\" rel=\"nofollow ugc\">Imgix\u003C\u002Fa> will radically change the way that you build your WordPress sites and themes.  This plugin is the best integration available for WordPress.  Upload your images to S3 with our S3 tool and then host the media with Imgix, providing you with real-time image processing and automatic format delivery.  Forget ImageMagick, Imgix is light years ahead in quality and speed.\u003C\u002Fp>\n\u003Ch4>Native support for Google Cloud Storage\u003C\u002Fh4>\n\u003Cp>Now supports using Google Cloud Storage for uploads without having to use Google’s S3 compatible interop mode.\u003C\u002Fp>\n\u003Ch4>Automatically Tag, Categorize and Caption with Amazon Rekognition\u003C\u002Fh4>\n\u003Cp>Use Amazon’s latest AI tools to tag and categorize your images when uploading to Amazon S3.  With Rekognition, you can automatically detect objects, scenes, and faces in images.\u003C\u002Fp>\n\u003Ch4>Advanced Image Editing\u003C\u002Fh4>\n\u003Cp>When integrating with \u003Ca href=\"https:\u002F\u002Fimgix.com\" rel=\"nofollow ugc\">Imgix\u003C\u002Fa>, Media Cloud by ILAB provides the most advanced WordPress image editor.  Alter contrast, saturation, vibrancy and over 30 other image editing operations – in real time right inside the WordPress admin interface!  Completely non-destructive!\u003C\u002Fp>\n\u003Ch4>Image Cropping\u003C\u002Fh4>\n\u003Cp>Media Cloud by ILAB ships with the most advanced image cropping tool available for WordPress, based on Chen Fengyuan’s amazing Cropper plugin for jQuery.\u003C\u002Fp>\n\u003Ch4>Compatible With Leading Image Optimizers\u003C\u002Fh4>\n\u003Cp>Compatible with Short Pixel, EWWW, Smush and Imagify image optimization plugins!\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Upload to any of a variety of cloud storage providers (Amazon S3, Cloudflare R2, Google Cloud Storage, Minio, Backblaze, DigitalOcean Spaces or any other S3 compatible service)\u003C\u002Fli>\n\u003Cli>Host your media directly from your cloud storage provider or specify a CDN\u003C\u002Fli>\n\u003Cli>Integrate with Imgix media hosting\u003C\u002Fli>\n\u003Cli>Use Amazon Rekognition to automatically tag and categorize images\u003C\u002Fli>\n\u003Cli>Use third party cloud file providers that use S3 compatible APIs\u003C\u002Fli>\n\u003Cli>Advanced image cropping tool\u003C\u002Fli>\n\u003Cli>Advanced image editing with saturation, contrast, auto-correct,\u003Cbr \u002F>\nsharpen, blur and more (only when integrated with Imgix)\u003C\u002Fli>\n\u003Cli>Automatically import your settings from WP Offload Media and WP-Stateless\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Premium Upgrade with Improved Support Options and More Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Built-in image optimization using leading image optimization services like ShortPixel, TinyPNG, Imagify and Kraken.io.  No more third party plugins needed because it’s built into Media Cloud’s process.\u003C\u002Fli>\n\u003Cli>Advanced security for encoded videos and a feature rich video player\u003C\u002Fli>\n\u003Cli>Easily import your existing media library with the push of a button\u003C\u002Fli>\n\u003Cli>WP-CLI support: Import your media library to the cloud, regenerate thumbnails and process your library with Amazon Rekognition using WP-CLI commands.\u003C\u002Fli>\n\u003Cli>Direct uploads integrated directly into WordPress’s media library\u003C\u002Fli>\n\u003Cli>Cloud storage browser that allows you to import media to your media library from the cloud\u003C\u002Fli>\n\u003Cli>WPML, WooCommerce and Easy Digital Downloads integration\u003C\u002Fli>\n\u003Cli>Blubrry Pod Casting, Ultimate Membership integrations\u003C\u002Fli>\n\u003Cli>Push\u002Fpull your CSS and JS assets to the cloud and serve them from a CDN\u003C\u002Fli>\n\u003Cli>Use Google Cloud Vision as a computer vision provider\u003C\u002Fli>\n\u003Cli>Image size manager\u003C\u002Fli>\n\u003Cli>Network level multisite support\u003C\u002Fli>\n\u003Cli>and more!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fmediacloud.press\u002Fcomparison\u002F\" rel=\"nofollow ugc\">Compare the premium plans\u003C\u002Fa>\u003C\u002Fp>\n","Automatically store media on Amazon S3, Cloudflare R2, Google Cloud Storage, DigitalOcean Spaces + others. Serve CSS\u002FJS assets through CDNs.",7000,539664,70,116,"2024-04-09T11:12:00.000Z","6.5.8","4.9",[133,134,21,135,136],"amazon","bunnycdn","offload","s3","https:\u002F\u002Fgithub.com\u002Finterfacelab\u002Filab-media-tools","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Filab-media-tools.4.6.4.zip",92,"2024-03-25 00:00:00",{"attackSurface":142,"codeSignals":221,"taintFlows":229,"riskAssessment":230,"analyzedAt":233},{"hooks":143,"ajaxHandlers":217,"restRoutes":218,"shortcodes":219,"cronEvents":220,"entryPointCount":11,"unprotectedCount":11},[144,150,155,160,163,166,168,171,175,180,185,189,193,198,202,205,209,212,214],{"type":145,"name":146,"callback":147,"file":148,"line":149},"action","init","start_buffering","includes\\class-bitpoke-geo-cache-content-length.php",55,{"type":145,"name":151,"callback":152,"priority":11,"file":153,"line":154},"template_redirect","send_cache_control_headers","includes\\class-bitpoke-geo-cache-headers.php",37,{"type":145,"name":156,"callback":157,"file":158,"line":159},"publish_post","post_changed","includes\\class-bitpoke-geo-cache-purge.php",87,{"type":145,"name":161,"callback":157,"file":158,"line":162},"edit_post",88,{"type":145,"name":164,"callback":157,"file":158,"line":165},"delete_post",89,{"type":145,"name":167,"callback":157,"file":158,"line":64},"publish_phone",{"type":145,"name":169,"callback":157,"file":158,"line":170},"edit_attachment",91,{"type":145,"name":172,"callback":173,"file":158,"line":174},"shutdown","purge",93,{"type":145,"name":176,"callback":177,"file":178,"line":179},"bitpoke_geo_cache_purge","refetch","includes\\class-bitpoke-geo-cache-refetch.php",34,{"type":145,"name":146,"callback":181,"priority":182,"file":183,"line":184},"init_settings",11,"includes\\class-bitpoke-geo-cache-settings.php",61,{"type":145,"name":186,"callback":187,"file":183,"line":188},"admin_init","register_settings",64,{"type":145,"name":190,"callback":191,"file":183,"line":192},"admin_menu","add_menu_item",67,{"type":194,"name":195,"callback":196,"file":183,"line":197},"filter","bitpoke_geo_cache_menu_settings","configure_settings",79,{"type":145,"name":146,"callback":199,"priority":11,"file":200,"line":201},"load_localisation","includes\\class-bitpoke-geo-cache.php",60,{"type":145,"name":146,"callback":146,"priority":203,"file":200,"line":204},20,63,{"type":194,"name":206,"callback":207,"file":200,"line":208},"bitpoke_geo_cache_settings_fields","closure",133,{"type":145,"name":176,"callback":173,"file":210,"line":211},"includes\\providers\\class-bunny-cdn.php",84,{"type":194,"name":213,"callback":207,"file":210,"line":159},"wp_is_mobile",{"type":145,"name":176,"callback":173,"file":215,"line":216},"includes\\providers\\class-cloudflare.php",40,[],[],[],[],{"dangerousFunctions":222,"sqlUsage":223,"outputEscaping":225,"fileOperations":11,"externalRequests":31,"nonceChecks":110,"capabilityChecks":110,"bundledLibraries":228},[],{"prepared":11,"raw":11,"locations":224},[],{"escaped":226,"rawEcho":11,"locations":227},22,[],[],[],{"summary":231,"deductions":232},"The \"bitpoke-geo-cache\" plugin v1.3.0 demonstrates a generally strong security posture based on the provided static analysis.  It exhibits excellent adherence to secure coding practices by having no identified dangerous functions, all SQL queries utilizing prepared statements, and all output correctly escaped. The complete absence of vulnerabilities in its history, including no recorded CVEs, further strengthens this impression.  The limited external HTTP requests and presence of a nonce and capability check are also positive indicators.",[],"2026-03-17T06:49:09.131Z",{"wat":235,"direct":242},{"assetPaths":236,"generatorPatterns":238,"scriptPaths":239,"versionParams":240},[237],"\u002Fwp-content\u002Fplugins\u002Fbitpoke-geo-cache\u002Fassets\u002Fsettings.js",[],[237],[241],"bitpoke-geo-cache\u002Fassets\u002Fsettings.js?ver=",{"cssClasses":243,"htmlComments":244,"htmlAttributes":245,"restEndpoints":246,"jsGlobals":247,"shortcodeOutput":248},[],[],[],[],[],[]]