Change: The GetPageSpeed Amplify recommendation links (readme + Check Caching results) now point to the dedicated Varnish monitoring landing page for a more relevant first impression.
5.11.1 (2026-06)
Security: The manual “Purge Cache (This Page)” action (vhp_flush_do) now only purges URLs on this site’s own host, and requires a capability (filter: vhp_manual_purge_capability, default edit_published_posts) in addition to the nonce. Previously a low-privileged user could reuse the purge nonce to point the server’s outbound PURGE request at an arbitrary host – a blind SSRF reachability oracle. Reported privately by Austin Ginder.
5.11.0 (2026-06)
Fix: Async purge queue self-heals from the stuck full-queue state where vhp_process_purge_queue was silently never re-scheduled. Watchdog re-arms a ghost event when the queue is non-empty and vhp_varnish_last_queue_run is older than 5 minutes.
Fix: enqueue_urls() now ensures the cron event is scheduled even when a full purge is already queued.
Change: Cron-mode default flipped. DISABLE_WP_CRON no longer auto-enables async purging — opt in via VHP_ENABLE_CRON_PURGING, the vhp_varnish_cron_purging site option, or the vhp_purge_use_cron filter.
New: VHP_ENABLE_CRON_PURGING constant and vhp_purge_queue_watchdog_seconds filter.
Fix: Corrected @param/@return docblock types on purge_post(), purge_url(), and related methods so they match the values actually passed and returned, removing false IDE and static-analysis warnings (reported by Sjoerd Boerrigter). No runtime behavior changes.
New: CI lints PHPDoc parameter/return types against WordPress function signatures to catch docblock drift automatically.
5.9.1 (2026-05)
Update: Tested up to WordPress 7.0
Update: Requires PHP bumped from 5.6 to 7.4 to match WordPress 7.0’s PHP floor. Sites on PHP < 7.4 will not see this update.
5.8.1 (2026-03)
New: Regex purge URLs for category, tag, and blog listing pages to properly invalidate paginated archive pages (e.g., /category/news/page/2)
5.7.0 (2026-02)
New: Detection of “Vary: Accept” header which causes severe cache fragmentation.
New: Contextual Cacheability Pro recommendations in cache diagnostics, post-purge messages, plugin action links, admin menu, E2E test results, and Site Health.
5.6.4 (2026-01)
New: Added VHP_DISABLE_CRON_PURGING constant to force-disable background purging even when DISABLE_WP_CRON is enabled. Useful for low-traffic sites that use external cron but prefer immediate cache purges.
5.6.3 (2026-01)
Fix: Manual cache purge actions now execute immediately regardless of WP-Cron mode. Previously, “Purge Cache All Pages” and “Purge This Page” were queued when DISABLE_WP_CRON was enabled.
5.6.2 (2026-01)
Fix: Cacheability Pro recommendation moved to dismissable admin notice
5.6.0 (2026-01)
New: Added recommendation for Cacheability Pro cache warming plugin on settings page.
5.5.3 (2025-12)
New: End-to-End Cache Test in “Check Caching” admin page – a comprehensive 7-step test that verifies both caching AND purging work correctly, without relying on header detection heuristics.
Fix: Header Analysis tab now stays active after running a URL scan.
Fix: Removed duplicate introductory text in Header Analysis tab.
5.5.2 (2025-12)
Fix: Removed development files from WordPress.org distribution.
Fix: Added concurrency control to CI workflows to prevent SVN deploy race conditions.
5.5.1 (2025-12)
New: WP-CLI –all flag for explicit full site cache purge.
New: WP-CLI –url-only flag to purge exact URL without wildcard matching.
Doc: Fixed WP-CLI documentation – wp varnish purge correctly documented as full site purge.
Doc: Fixed “WP CLI” typo to “WP-CLI”.
Dev: Added PHPCS/PHPStan linting infrastructure and GitHub Actions CI.
Dev: New pytest coverage for WP-CLI purge command variants.
5.5.0 (2025-12)
Fix: Scheduled posts now properly purge cache when auto-published via WP-Cron. Previously, purges were queued but not processed until the next cron run, leaving stale content.
New: Added transition_post_status hook to handle future → publish transitions synchronously, ensuring immediate cache invalidation for scheduled posts.
New: Shortlink URLs (?p=XXX) are now purged when scheduled posts publish, clearing any cached 404 responses.
Doc: Added guidance on cron frequency for background purging mode – recommends every-minute cron for minimal stale content.
Dev: New pytest coverage for scheduled post publishing via WP-Cron.
5.4.0 (2025-12)
New (BETA): Optional Cache Tags / Surrogate Key purge mode, controlled via the “Use Cache Tags” setting.
New (BETA): Tag-mode enablement based on standard Surrogate-Capability headers from surrogates (Edge Architecture spec) or the VHP_VARNISH_TAGS wp-config define.
New: Admin UI improvements – properly associated labels for checkboxes and clearer explanatory copy.
Dev: Test VCL and pytest stack updated to cover tag-based purging behaviour.
5.3.0 (2025-09)
New: VHP_EXCLUDED_POST_STATUSES define to exclude statuses (e.g. drafts) from purge triggers.
New: varnish_http_purge_valid_post_statuses filter to customize statuses programmatically.
Fix: REST URL generation for tags and custom taxonomies; respect rest_base and use term IDs.
Fix: Avoid booleans in generated URL lists for REST entries.
Fix: Correct WP version check (pre-4.7 only) for deactivation logic.
Fix: Correct per-host IP loop in purge header filtering.
Fix: Properly strip query strings when deduplicating purge URLs.
Fix: Debugger wp_remote_get args and header checks (Via header scalar/array).