=== SSF Speed Cache – Page Cache & Performance ===
Contributors: ssfllc
Tags: cache, performance, page cache, lazy load, speed
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Public-page caching with clear bypass reasons, media controls and reversible settings. No SSF account required.

== Description ==

SSF Speed Cache provides a local early page cache for eligible cookie-free public GET requests. It includes content-change invalidation, exclusions, a cache inspector, lazy content images, explicit hero priority, reviewed standalone-script deferral and previous-settings restore.

The Free edition works independently. Pro and Agency are separate add-ons; no paid implementation is locked inside this package.

The cache deliberately skips forms, tokens, private pages, sessions, query strings, cart/checkout/account paths and unsupported response variations. Custom dynamic sites require explicit exclusions and staging tests. Up to 1,000 published paths are supported. Multisite is not supported in 1.0.

== Installation ==

1. Back up and test on staging. Keep one page-cache owner and review host/CDN caching separately.
2. Install and activate the ZIP.
3. Ensure WP_CACHE is defined as true before wp-settings.php in wp-config.php, using the host's file editor. Do not add a duplicate definition.
4. Open SSF Speed Cache and enable early page caching. Existing foreign drop-in files are not overwritten.
5. Verify an eligible page twice without cookies; inspect X-SSF-Speed-Cache response headers. Test all dynamic and private journeys.

== Frequently Asked Questions ==

= Does it guarantee a score or ranking? =
No. Hosting, content, themes, extensions, third-party scripts and visitor conditions affect results.

= Why does a page bypass caching? =
Requests with cookies, authentication, query strings or protected paths bypass. Responses with forms, input fields, request tokens, private cache headers or unsupported variations also bypass. The inspector explains configuration decisions; real request conditions can add more exclusions.

= How do I disable it? =
Use Recovery to disable caching, or deactivate the plugin. Deactivation removes only SSF's own advanced-cache.php. Saved settings remain available.

= Does it modify server configuration? =
No. It does not edit wp-config.php, server compression, the site's root .htaccess, CDN settings or a foreign advanced-cache.php. The private cache folder receives its own access-protection files.

= Does it send data externally? =
No telemetry or SSF account is required. The optional [ssf_speed_video id="VIDEO_ID" title="Watch video"] shortcode contacts YouTube after the visitor clicks. See https://www.youtube.com/t/terms and https://policies.google.com/privacy. No remote YouTube thumbnail is fetched before the click.

== Changelog ==

= 1.0.0 =
* First release: early public-page cache, exclusions, invalidation, media controls, diagnostics and recovery.

== Upgrade Notice ==

= 1.0.0 =
First release. Test staging and all private/interactive journeys before enabling a production cache.
