=== UltraCache ===
Contributors: orloxgr
Tags: cache, redis, varnish, webp, avif
Donate link: https://iniotakis.com/
Requires at least: 6.9
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 2.59.09.32
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

WordPress page and Redis/APCu/SQLite object caching, AVIF/WebP, CSS/font and JavaScript optimization, warm-up, Varnish, and diagnostics.

== Description ==
UltraCache is a WordPress performance plugin for site owners who want fast public page delivery with visible controls.

It provides WordPress page caching, Redis/APCu/SQLite object caching, AVIF/WebP media tools, CSS/font optimization, smart JavaScript error fixing, warm-up, Varnish helpers, image conversion and diagnostics from one dashboard.

= Main features =

* HTML page cache for eligible anonymous public requests, with optional Apache Static HTML Delivery on compatible servers.
* Optional automatic page-cache and frontend-asset invalidation after successful WordPress core, active plugin, and active parent/child theme updates, without flushing object cache or optimized images.
* Object-cache drop-in with Redis, APCu, SQLite, and Disk backends plus a runtime-only fallback.
* Media Rewrite for AVIF/WebP URLs using a primary output format, fallback format, and shared image compression level.
* Batch media conversion, generation on upload, background generation of missing variants, and opt-in regeneration of existing optimized images.
* Media Library Replacement for promoting verified AVIF/WebP rewrite files into WordPress attachment originals and generated sizes, with metadata, database-reference, and Theme CSS updates.
* Resumable Check, Prepare, Do, Verify, and Delete Originals stages with server-side progress, validation, pause/resume, retry, and guarded destructive actions.
* Dashboard image conversion comparison tests for reviewing original, WebP, and AVIF output before larger media operations.
* Google Fonts localization and self-hosted font CSS optimization.
* Optional delayed icon-font loading.
* CSS bundling with visible exclusions and bundle summaries.
* LCP priority with exact manual CSS selectors or automatic browser-observed fallback, SVG image candidates, persistent per-viewport mappings in a dedicated table, and targeted page-cache refresh through the existing warm queue.
* Lazy image loading, CLS image dimensions, Main Thread Relief, and Critical Request Chain Relief controls.
* Smart JavaScript Error Fixer with browser runtime scans and pasted console-error analysis for generating `Defer Instead of Delay` and `Do Not Defer or Delay` fixes.
* Scheduled and manual warm-up for the homepage, menu URLs, selected URLs, and full-site queues.
* Optional Varnish purge/test helpers for configured Varnish environments.
* Dashboard diagnostics for page cache, object cache, media, CSS, storage, OPcache/APCu, Varnish, and STORE profiles.

= Object cache =

Recommended backend order:

1. Redis
2. APCu
3. SQLite for persistent local storage on single-server sites

= Media Rewrite and image conversion =

Media Rewrite changes frontend image URLs to AVIF/WebP variants when those files exist and match the selected output policy. The Image Output Format selects the primary format, the Fallback Format controls the secondary compatible output, and the shared Image compression level is used by AVIF/WebP media optimization, upload generation, and Media Library Replacement.

WebP is the default output for fresh installations. AVIF generation and delivery are enabled only after UltraCache successfully encodes, decodes, and validates both its bundled opaque JPEG and transparent RGBA test images.

Actual media files are generated by batch conversion, generation on upload, or the missing-media queue. Normal frontend requests stay lookup-only and do not encode images. The dashboard also provides a sample conversion comparison and an opt-in Regen. existing control for recompressing already optimized media with the current quality setting.

= Media Library Replacement =

Media Library Replacement can promote verified UltraCache-generated AVIF/WebP rewrite files into the WordPress Media Library by replacing existing JPG/PNG attachment originals and registered intermediate sizes. It updates attachment metadata and can replace matched media references in current-install WordPress database tables and active parent/child theme CSS files.

= CSS, JavaScript, and fonts =

UltraCache includes CSS bundling, async CSS controls, JavaScript defer/delay tools, Google Fonts localization, self-hosted font CSS optimization, optional delayed icon-font loading, and an advanced runtime font CSS rewrite switch.

The Smart JavaScript Error Fixer can scan a selected frontend URL for browser runtime errors or analyze console errors pasted by an administrator.

= Warm-up and diagnostics =

Warm-up tools can build cache for the homepage, menu URLs, selected URLs, or full-site queues.

== WP-CLI ==

UltraCache includes WP-CLI commands for status, purge, warm-up, object-cache flush, media queue work, CSS diagnostics, Google Fonts rebuilds, Varnish helpers, settings, stats, cleanup, and STORE profiles.

Examples:

* `wp ultracache status --format=json`
* `wp ultracache purge --all`
* `wp ultracache warm_frontpage_html_css`
* `wp ultracache media status --media-format=both --format=json`
* `wp ultracache flush_object_cache`

== External services ==

UltraCache does not require an external SaaS account and does not send visitor data to an UltraCache-owned service.

= Google Fonts =

When Local Google Fonts Optimization is enabled by an administrator, UltraCache may request CSS and font files from Google Fonts in order to build local copies in `ultracache/google-fonts/` below the active WordPress uploads directory.

This may contact:

* `fonts.googleapis.com`
* `fonts.gstatic.com`

Data sent: the server makes HTTP requests for the configured Google Fonts CSS/font files. UltraCache does not intentionally send visitor personal data to Google Fonts.

Service provider: Google LLC  
Terms: https://policies.google.com/terms  
Privacy: https://policies.google.com/privacy  
Google Fonts privacy FAQ: https://developers.google.com/fonts/faq/privacy

= Optional support and donation links =

The dashboard includes optional support/donation links shown only to administrators. If an administrator opens a PayPal link, PayPal receives the normal browser request for that visit.

Service provider: PayPal  
Terms: https://www.paypal.com/us/legalhub/paypal/useragreement-full  
Privacy: https://www.paypal.com/us/legalhub/paypal/privacy-full

== Privacy ==

UltraCache stores cache files, generated assets, settings, queue records, and diagnostics locally on the WordPress installation.

== Installation ==
1. Install the ZIP from the WordPress Plugins screen, or place the `ultracache` folder in the active WordPress plugins directory.
2. Activate UltraCache and open its dashboard from the WordPress admin menu or the admin bar.
3. Select the Aggressive profile and save the settings.
4. Under Cache Engine, run the HTML Compression check so UltraCache can use the server result.
5. In Warm Cache, select the main frontend menu and the required depth. First-level menu URLs suit most websites.
6. Under Full-site warm-up sources, select Homepage / blog index, Selected menu URLs, Pages, Posts, and Categories as required.
7. In Media Library Replacement, enable Convert new uploads and set Maximum upload image side. A value of 1920 suits most websites.
8. Select the primary image format and fallback format. AVIF with WebP fallback is a strong general-purpose configuration.
9. Select the image compression level. Compact suits most website images.
10. When using AVIF, run Image conversion test and then Check test.
11. In Fonts Optimization, enable Local Google Fonts Optimization, Bundle Generated Font-Mix CSS, and Delay icon fonts.
12. For WooCommerce, enable Suppress empty-cart execution. For MailerLite, enable Lazy MailerLite nonce refresh.
13. Confirm the detected Object Cache backend. When Varnish is present, enter its connection and purge details.
14. In Automation & Scheduling, enable Cron Warm Up and Start Cron Warm Up after Scheduled Cleanup.
15. Save the settings and run Flush All Cache.

For the initial preparation of the website:

* Run Warm Up Menu HTML Cache + Separate CSS Bundles to prepare the main pages immediately.
* Run Start / Resume Conversion under AVIF / WebP Batch Conversion to prepare existing Media Library images.
* Run Full-site warm-up when the complete selected URL set should be cached.

= Must-do post-install check =

1. Open the public website in a private window: `Ctrl+Shift+N` in Chrome or Edge, or `Ctrl+Shift+P` in Firefox.
2. Press `F12`, open the Console, and reload the page.
3. If no JavaScript errors appear, the check is complete. If errors appear, copy the red error lines and stack traces.
4. Open UltraCache and expand JS Defer / Delay Safeguards & Diagnostics.
5. Paste the errors into Console Error Handler and click Extract Console Error Suggestions.
6. Append the proposed fixes to Defer Instead or Do Not Defer or Delay, then click Save Both Lists.
7. Run Flush All Cache and warm the front page again. Front-page warm-up is enough while testing.
8. Repeat the check until the Console loads without JavaScript errors.

The fixed `Help for the installed version` button in the lower-right corner of the UltraCache dashboard opens the detailed setup, post-install guide, and complete FAQ for the installed release.

== Screenshots ==
1. UltraCache dashboard overview.
2. Cache engine and object cache controls.
3. Media, CSS, fonts, warm-up, and diagnostics panels.