=== Cache Autopilot ===
Contributors: ekesto
Tags: cache, cache purge, preload, cache clearing, performance
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.1.12
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Keeps WordPress cache fresh by purging affected pages, then preloading them safely in the background.

== Description ==

**Stop clearing the entire cache just because one thing changed.**

Update content, and Cache Autopilot determines which frontend pages should refresh — then purges and preloads them in the background while keeping unaffected pages cached where possible.

That means:

* **Fewer stale-page surprises** — shared content refreshes where it actually appears.
* **Fewer manual cache clears** — no chasing individual URLs or flushing the entire cache just to be safe.
* **Less cold-cache traffic** — unaffected pages can stay cached while purged pages are preloaded automatically.
* **Less client guesswork** — set the rules once; future publishing is handled without extra steps.

= Where this matters =

Cache plugins are excellent at storing and serving pages fast. What they can't always see is *where else* your content shows up — so a single change can leave related pages stale.

Common examples:

* A post appears in a **Query Loop** on a *non-archive* page.
* A **synced pattern** is reused across multiple pages.
* A **shortcode** outputs shared content across several pages.
* A **custom block** pulls in content from another source.
* A **form** is embedded on multiple pages.
* A **widget** or WordPress option changes output across pages WordPress does not explicitly connect.

Cache Autopilot resolves those affected frontend pages and asks your cache plugin to purge the corresponding URLs. If it cannot safely determine every affected page, it can fall back more broadly rather than risk stale content.

= Built for handover =

Configure it once, then hand the site off. Your client publishes normally, and Cache Autopilot handles the resolution in the background — no chasing URLs, no manual cache clearing as a routine step.

= What you get with the free version =

* **Zero-config Gutenberg & block theme support** — synced patterns, template parts, templates, Navigation and global styles.
* **Classic theme support** — standard content works normally; custom layouts can be mapped through targeting and developer filters.
* **Zero-config form plugin support** — refresh pages using a changed form from a supported plugin.
* **Manual targeting** — explicitly choose which pages should refresh for selected content changes.
* **Developer filters** — map post, option, widget/sidebar and meta changes to the right pages.
* **Paced background preload** — automatically preload purged pages without hammering the server.

The documentation includes ready-to-use filter examples for mapping custom changes to specific pages, post types or the whole site — without building your own cache-purge logic.

= Supported cache plugins =

Cache Autopilot currently works with:

* [LiteSpeed Cache](https://wordpress.org/plugins/litespeed-cache/) (Free)
* [Cache Enabler](https://wordpress.org/plugins/cache-enabler/) (Free)
* [Breeze](https://wordpress.org/plugins/breeze/) (Free)
* [FlyingPress](https://flyingpress.com/)
* [WP Rocket](https://wp-rocket.me/)

Support depends on reliable URL-level purging. Some widely used cache plugins are not listed because they do not expose a suitable URL-level purge API.

[Read the full cache adapter explanation](https://wpcacheautopilot.com/docs/supported-integrations/#cache-adapters).

= How it works =

1. Something changes — a post update, synced pattern edit, option or widget change, form update, or structural site edit.
2. Cache Autopilot resolves which frontend pages are affected.
3. Your supported cache plugin purges those URLs.
4. Cache Autopilot queues them for safe, paced background preload.

Resolution happens automatically for standard content and block themes. Custom layouts, classic themes, and advanced setups can be extended through settings and developer filters.

= Free features in detail =

**Block theme / Site Editor support — zero configuration**

Block themes reuse templates, template parts, synced patterns, Navigation, and Styles across the site. Cache Autopilot follows those relationships through the WordPress template hierarchy. If WordPress cannot resolve every affected page, it falls back to a full purge and site-wide preload.

Cache Autopilot understands Gutenberg's structural model:

* Template parts — follows references through synced patterns and Site Editor templates, with a full-site fallback when WordPress cannot determine every page that inherits the shared part.
* Site Editor templates — supports archive templates, single templates, post-type-specific templates, and slug-specific templates.
* Synced patterns — finds pages embedding the pattern and refreshes those pages.
* Navigation blocks — refreshes affected pages after navigation changes.
* Global styles — treated as a site-level design change.

Learn more about [Block Theme / Site Editor support](https://wpcacheautopilot.com/docs/supported-integrations/#gutenberg).

**Manual targeting and developer filters**

Some pages show dynamic lists or shared content outside a normal archive — a shortcode, Query Loop block, custom block, widget area, theme option output.

Settings and developer filters let you define which pages refresh when that content or setting changes.

* [Post changes](https://wpcacheautopilot.com/docs/developer-reference/#filter-ekesto_ci_post_selectors) — refresh selected pages when a specific post type changes.
* [Option changes](https://wpcacheautopilot.com/docs/developer-reference/#filter-ekesto_ci_option_triggers) — refresh selected pages when specific WordPress options change.
* [Widget/sidebar changes](https://wpcacheautopilot.com/docs/developer-reference/#filter-ekesto_ci_widget_selectors) — map widget areas or Classic theme templates to the pages that use them.
* [Meta changes](https://wpcacheautopilot.com/docs/developer-reference/#filter-ekesto_ci_meta_change_post_types) — catch selected custom field updates from imports or integrations.

View [developer reference](https://wpcacheautopilot.com/docs/developer-reference/).

**Targeted cache clearing for standard content**

* Posts and custom post types — configured per post type.
* Archive and taxonomy pages — post type archives, paginated archives, categories, tags, and custom taxonomy archives.
* Comments — refresh affected content when comments change.

**Form plugin support**

When a supported form is updated, Cache Autopilot finds pages embedding the changed form via shortcodes or Gutenberg blocks, then refreshes only those pages.

View [Supported form plugins](https://wpcacheautopilot.com/docs/supported-integrations/#form-plugins-compatibility).

**Background cache preload**

Pages cleared by Cache Autopilot are queued for background preload:

* Auto-paced batch execution based on past server response times.
* Priority ordering so important pages warm first.
* New URLs added during a run join at the current position.
* Safe to deactivate — no leftover jobs or database clutter.

**Debug and support logging**

* Debug log available from the WordPress admin.
* Support Debug Mode creates a downloadable log file for troubleshooting.

= Cache Autopilot PRO =

Watch the full 100-second overview, or jump straight to the [integration demos](https://youtu.be/oe0o5mSb1BY?si=3Aa3JjP7l_ZO8cdj&t=39).

*The video includes examples from both Cache Autopilot Free and PRO.*

https://www.youtube.com/watch?v=oe0o5mSb1BY

Cache Autopilot PRO adds automatic handling for builders, ecommerce, content relationships, multilingual sites, and scheduled refreshes:

* **[Elementor (PRO)](https://wpcacheautopilot.com/docs/supported-integrations/#elementor)** — templates, global widgets, reusable components, display conditions, Theme Builder archive and single templates, and full nesting chain handling. Zero configuration for standard setups.

* **[WooCommerce (PRO)](https://wpcacheautopilot.com/docs/supported-integrations/#woocommerce)** — product pages, shop page, product archives, variations, grouped products, upsells, and cross-sells.

* **[ACF relationship propagation (PRO)](https://wpcacheautopilot.com/docs/supported-integrations/#advanced-custom-fields-acf)** — follows configured ACF relationship and post object fields across multi-level content chains such as Country → Venue → Event → Pages.

* **[Advanced content relationships (PRO)](https://wpcacheautopilot.com/docs/developer-reference/#filter-ekesto_ci_relationship_meta_keys)** — general relationship propagation beyond ACF, configurable per post type.

* **[Multilingual (PRO)](https://wpcacheautopilot.com/docs/supported-integrations/#multilingual-compatibility)** — WPML, Polylang, and TranslatePress support for refreshing translated target URLs.

* **[Timed cache refresh (PRO)](https://wpcacheautopilot.com/docs/cache-invalidator/#timed-invalidation)** — scheduled rules for refreshing specific pages at set times, plus automatic handling of WordPress scheduled posts.

* **[Access control (PRO)](https://wpcacheautopilot.com/docs/cache-invalidator/#access-control)** — grant plugin access by role or user without giving full WordPress admin rights.

* **Pro developer filters** — additional extension points for relationship, multilingual, and resolver customization.

[Compare free and PRO](https://wpcacheautopilot.com/free-vs-pro/).

= What Cache Autopilot does *not* do =

* It does not replace your cache plugin — it works alongside it.
* It does not handle cache storage or page delivery.
* It cannot function without a supported cache plugin.
* It does not guarantee instant background preload on every host — preload timing depends on WP-Cron and available server resources.
* It does not flush the entire cache on every content change – full purges happen only as a fallback or when triggered manually.

== Documentation ==

* [Official Cache Autopilot website](https://wpcacheautopilot.com/)
* [Getting started](https://wpcacheautopilot.com/docs/getting-started/)
* [Supported integrations](https://wpcacheautopilot.com/docs/supported-integrations/)
* [Developer reference](https://wpcacheautopilot.com/docs/developer-reference/)
* [Troubleshooting](https://wpcacheautopilot.com/docs/troubleshooting/)

== Developer extension ==

Cache Autopilot exposes filters at every major resolution decision, so developers can extend which pages refresh without touching plugin code.

View [developer reference](https://wpcacheautopilot.com/docs/developer-reference/).

== Installation ==

1. Install and activate one supported cache plugin.
2. Install and activate Cache Autopilot.
3. Open Cache Warmup and add your sitemap XML.
4. Edit a page or supported content item.
5. Check the Cache Warmup log.

More details on [how to get started](https://wpcacheautopilot.com/docs/getting-started/).

== Frequently Asked Questions ==

= Is Cache Autopilot a WordPress caching plugin? =

No — and you still need one. Your cache plugin stores and serves cached pages. Cache Autopilot adds the missing context: it determines which pages are affected by a change, asks your cache plugin to purge those URLs, and preloads them in the background.

= Which WordPress cache plugins are supported? =

LiteSpeed Cache, Cache Enabler, Breeze, FlyingPress, and WP Rocket. A supported cache plugin is required.

[View supported cache adapters](https://wpcacheautopilot.com/docs/supported-integrations/#cache-adapters).

= Do I need to clear the entire WordPress cache after every update? =

Usually not. Cache Autopilot targets affected pages where possible. A full purge is used only when triggered manually or when the affected URLs cannot be resolved safely.

= Why does my WordPress site still show old content after an update? =

Cache plugins know how to store, serve, and purge cached pages efficiently, but they cannot always know everywhere changed content is reused — such as non-archive pages, Query Loops, shortcodes, synced patterns, template parts or templates.

Cache Autopilot adds that context and tells your cache plugin which affected URLs to purge.

= How does Cache Autopilot know which pages to purge? =

It resolves where a change can appear on the frontend. Targets can include the edited page, archives, taxonomy pages, shared block content, and configured target pages.

Those URLs are then purged through your cache plugin and queued for preload.

= Does Cache Autopilot work with Gutenberg and block themes? =

Yes. The free version supports Site Editor templates, template parts, synced patterns, Navigation, global styles, archives, and standard WordPress content.

= Does Cache Autopilot work with classic WordPress themes? =

Yes. Standard content works normally. Custom layouts can be mapped through settings and developer filters for post, option, widget, meta, and custom-hook changes.

= Does Cache Autopilot preload pages after purging them? =

Yes. Purged URLs are preloaded in paced background batches, subject to WP-Cron and server resources.

= What happens if Cache Autopilot cannot determine which pages are affected? =

Where a complete mapping is required but cannot be resolved safely, Cache Autopilot can fall back to a broader purge and preload instead of risking stale pages.

= What does Cache Autopilot PRO add? =

PRO adds Elementor, WooCommerce, ACF and advanced content relationships, multilingual support, timed cache refresh, and access-control options.

[Compare free and PRO](https://wpcacheautopilot.com/free-vs-pro/).

== Screenshots ==

1. Toggling Post Type Tabs in Cache Invalidator settings
2. Defining target pages in enabled Post Type Tab.
3. Adding a sitemap XML in Cache Warmup settings
4. Defining cache preload priorities
5. The Cache Warmup log
6. Automatic adjustment of preload limits based on server capacity and past warmup performance.

== Changelog ==

Note: Free and PRO packages share the same version number. Some releases may only affect PRO features, but version alignment keeps package compatibility, support, and upgrade paths consistent.

= 1.1.12 =
*Release Date 28th August 2026*

* [PRO] Fix: Prevented unnecessary full cache refreshes when publishing Elementor pages with newly created components.
* Fix: Prevented invalid duration values from appearing in warmup run logs.

= 1.1.11 =
*Release Date 26th August 2026*

* [PRO] Fix: Prevented delegated-access admin menu conflicts and kept both Cache Autopilot menus neatly together.
* Enhancement: Improved the plugin readme for clarity and feature discovery.

= 1.1.10 =
*Release Date 22nd August 2026*

* Enhancement: Polished the settings experience with clearer user search feedback and priority controls that follow the selected WordPress admin color scheme.
* Fix: Made warmup transport diagnostics clearer and more accurate about browser-profile requests and standard fallbacks.
* [PRO] Fix: Prevented Elementor autosaves from triggering premature cache refreshes.

= 1.1.9 =
*Release Date 14th August 2026*

* [PRO] Enhancement: Preserved the active WPML language after multilingual form changes.
* Enhancement: Updated WordPress compatibility to 7.1.
* Fix: Ensured shared block theme changes refresh all affected pages when template usage cannot be resolved completely.

= 1.1.8 =
*Release Date 13th August 2026*

* Enhancement: Warmup diagnostics are now cleaner, easier to understand, and more precise about browser-profile performance and fallbacks.
* [PRO] Enhancement: Priority pages and Home now start multilingual full refreshes in the right order across configured languages.
* Enhancement: Improved settings navigation and made priority-page choices easier to refresh reliably.

= 1.1.7 =
*Release Date 12th August 2026*

* Enhancement: Improved targeted Brotli cache warming compatibility by routing browser-profile requests through the WordPress HTTP API.
* Enhancement: Full cache refreshes now begin rebuilding pages promptly after manual actions and automated updates.

= 1.1.6 =
*Release Date 29th July 2026*

* Improvement: Added a dedicated, lightweight kick for new warmup runs on sites using server cron, without triggering unrelated WordPress cron tasks.

= 1.1.5 =
*Release Date 28th July 2026*

* Fix: Prevented overlapping warmup runs from becoming stuck while preparing after concurrent plugin or theme updates.

= 1.1.4 =
*Release Date 27th July 2026*

* Fix: Improved targeted warmup coordination for late-arriving URLs and concurrent multilingual invalidations.
* [PRO] Fix: Resolved WPML post type archive URLs in their target-language context.
* [PRO] Fix: Made targeted run labels distinguish distinct content changes from related multilingual emissions.
* Enhancement: Improved warmup log clarity and status presentation.

= 1.1.3 =
*Release Date 7th July 2026*

* Enhancement: Release workflow optimizations.

= 1.1.2 =
*Release Date 6th July 2026*

* Security: Hardened trusted cache-clear handling and plugin access checks.
* Fix: Improved support-log protection, cron loopbacks, and internal storage prefixes.
* Fix: Resolved remaining Plugin Check naming warnings for legacy plugin constants.

= 1.1.1 =
*Release Date 25th June 2026*

* Fix: Preserved settings when deleting Free or PRO while the other edition remains installed.

= 1.1.0 =
*Release Date 23nd June 2026*

* Fix: Improved WordPress.org compatibility for plugin prefixes, admin notices, diagnostics data, and cache purge permissions.

= 1.0.2 =
*Release Date 19th June 2026*

* [PRO] Fix: Improved Plugin Check compatibility for PRO integrations.

= 1.0.1 =
*Release Date 19th June 2026*

* Enhancement: Admin notification optimized for first installs.

= 1.0.0 =
*Release Date 18th June 2026*

* Initial public release of Cache Autopilot after extended production use on real WordPress sites, including large installations with more than 1,200 pages.
* Added Free/PRO-ready internal structure while keeping the free plugin fully functional on its own.
* Preserved historical changelogs for the former two separate plugins [Cache Invalidator](https://ekesto.github.io/cache-autopilot-site/docs/changelog/cache-invalidator/) and [Cache Warmup](https://ekesto.github.io/cache-autopilot-site/docs/changelog/cache-warmup/).

[View the full changelog](https://ekesto.github.io/cache-autopilot-site/docs/changelog/cache-autopilot/)
