=== ZeroConfig – Performance & Image Engine ===
Contributors: zeroconfig
Tags: cache, performance, webp, pagespeed, core web vitals, minify, lazy load, cdn, critical css, optimization
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

One switch. Page cache, WebP/AVIF image CDN, critical CSS and safe JS deferral – all processed on our edge, never on your server. Nothing to configure, nothing to break.

== Description ==

**Speed plugins break sites because they ask you questions you cannot answer.** "Minify CSS?" "Delay JavaScript?" "Combine files?" Tick the wrong box and your slider stops, your layout jumps, your checkout dies.

ZeroConfig has one switch. Turn it on. That's it.

* **Page cache** served from disk before WordPress even loads.
* **Image CDN**: every image is converted to WebP or AVIF, resized per device and served from a global edge network. Your server does nothing.
* **CSS & JS minified on the edge**, deferred only when it is safe, with known third parties (Tag Manager, Pixel, chat widgets) delayed until the visitor interacts.
* **Automatic Critical CSS** (Pro) so the page paints instantly.
* **Safety Check**: after you turn it on we render your site with and without the engine in a real browser. If anything differs, the feature responsible is switched off by itself. You never see a broken site.
* **Score Guard** (Pro): weekly PageSpeed check with an e-mail if your score drops.

= Why your server stays cool =
Other plugins convert images and parse CSS with PHP on your hosting. On a $5 plan that means 100 % CPU and a dead site. ZeroConfig sends that work to its own edge workers and only rewrites URLs in your HTML. Your hosting serves cached HTML and nothing else.

= Free vs Pro =
Free: page cache, edge minify, safe deferral, 500 images a month converted to WebP/AVIF in every size, and 5 GB of edge bandwidth. Optionally show a small "Powered by ZeroConfig" badge (your choice, one checkbox) and both limits double.
Pro ($39/year): unlimited images, 50 GB of image and asset traffic a month, critical CSS, third-party script delay, weekly PageSpeed check (Score Guard), 30-day money-back guarantee.
Business and Agency plans cover 5 and 25 sites with white-label reports.

= Everything a speed plugin should do, done for you =
Page caching served by Apache rewrite rules or a drop-in before PHP starts. Minify CSS and minify JavaScript on the edge. Defer JavaScript and delay JS for third-party tags. Convert images to WebP and AVIF, resize them per device, lazy load below the fold with LCP-aware priority above it. Critical CSS inline, Google Fonts with display=swap, browser caching and expires headers, gzip. Cloudflare cache purge, Varnish purge, clear cache by URL, WP-CLI. Polylang and WPML aware. Tracking parameters (utm, fbclid, gclid, gbraid, srsltid, yclid…) served from cache. Core Web Vitals, PageSpeed Insights, GTmetrix: green.

= What we deliberately do NOT do =
No database "cleanup". No combine CSS / combine JS (pointless on HTTP/2, breaks layouts). No preload bots that hammer your hosting. No forty checkboxes. Those are the things that break sites.

= Compatible with =
WooCommerce, Elementor, Divi, Bricks, Oxygen, WPBakery, Beaver Builder, Avada, Astra, GeneratePress, Kadence, Blocksy, Contact Form 7, WPForms, Gravity Forms, Yoast SEO, Rank Math, Polylang, WPML, Complianz, Cookie Notice, Wordfence, Really Simple SSL, UpdraftPlus, MonsterInsights, Revolution Slider, LayerSlider, Smart Slider. Known-fragile scripts are on a remotely updated safe list, and the Safety Check verifies the rest on your actual site.

== External services ==

This plugin relies on the ZeroConfig optimisation service (https://zeroconfigwp.com), operated by the plugin author, OmniPure Marketing LLC (United States). Nothing is sent to it until a site administrator presses **Turn on** in Settings → ZeroConfig, under a notice listing what is sent.

* **What is sent, once at Turn on and then hourly while the engine is on:** the site address and name, WordPress and PHP versions, the active theme and the names of active plugins, the web server type, and the plugin's own settings state. The administrator e-mail is sent only if the administrator ticks the optional box under Turn on.
* **What the service fetches from the public site:** images, CSS and JavaScript files referenced by your pages, and a few public pages for the Safety Check and critical CSS. Optimised copies are stored on the service's servers and delivered through its CDN. Original files are never modified.
* **Safety Check evidence:** when a check has to switch a feature off, the service keeps the browser error messages, the addresses of files that failed to load and before/after screenshots of that public page for 30 days on its own servers (not on the CDN), so the incompatibility can be fixed. They are deleted earlier if the site is forgotten.
* **"Something looks off?" form:** sends only when an administrator submits it: the message, the optional page address (pages of this site only), the theme and plugin names and which features are on.
* **What is never sent:** visitor data, user accounts, orders, form entries or passwords.
* **Scheduled tasks:** when a site's own background tasks have not run for two hours, the service opens its public `wp-cron.php` once. Pages served from the cache never start WordPress, so without this nudge expired cached pages would not be cleaned up on quiet sites.
* **Stopping it:** turning the engine off stops all background calls. Deleting the plugin asks the service to forget the site.
* **Sub-processors:** content delivery by Bunny.net; payments for paid plans by a merchant of record named at checkout.

Terms of service: https://zeroconfigwp.com/terms
Privacy policy: https://zeroconfigwp.com/privacy

The optional Cloudflare integration calls the Cloudflare API (https://api.cloudflare.com) with a token you enter, only to purge your own zone's cache. Cloudflare terms: https://www.cloudflare.com/terms/ and privacy: https://www.cloudflare.com/privacypolicy/

Score Guard (paid plans) asks the Google PageSpeed Insights API to measure your public home page weekly. Google terms: https://developers.google.com/terms and privacy: https://policies.google.com/privacy

== Installation ==
1. Install and activate.
2. Go to Settings → ZeroConfig and press **Turn on**.
3. Done. Check your PageSpeed score in five minutes.

== Frequently Asked Questions ==

= Will this break my site? =
Anything can break a site, which is why the engine tests itself. A minute after you turn it on, a real browser loads your home page, a post and a page with and without each feature and compares them. A feature that changes how your site looks or logs JavaScript errors is switched off automatically. You can also press "Something looks off?" at any time.

= How do I undo everything? =
Press Turn off in Settings → ZeroConfig, or deactivate the plugin. Your site goes back to exactly how it was: the page cache is emptied, its .htaccess lines and wp-config.php line are removed, images and files come from your own server again. Your original files are never changed.

= My site is broken and I cannot reach wp-admin. What now? =
Rename or delete the folder wp-content/plugins/zeroconfig over FTP or your host's file manager. The cache stops serving pages immediately, because both the .htaccess rules and the cache drop-in check that the plugin is still there. Alternatively add `define( 'ZEROCONFIG_DISABLE', true );` to wp-config.php: pages go out untouched and the cache files and rules are removed on the next page load.

= I use Cloudflare. Will visitors see stale pages? =
The plugin notices Cloudflare in front of your site and shows a single token field. Paste a token with Zone:Read and Cache Purge and both caches clear together, per URL on edits.

= Can my deploy script clear the cache? =
Yes. The admin card shows a purge URL with a private token: `/?zc_purge=TOKEN` clears everything, add `&url=` for one page. WP-CLI: `wp zeroconfig purge [url]`. Varnish users define `ZEROCONFIG_VARNISH_HOST`.

= Do you store my images? =
We cache optimised copies on the edge so the second visitor gets them instantly. Originals stay on your server. Turn the engine off and every URL points back to your server immediately.

= Does it work with WooCommerce / Elementor / Divi? =
Yes. Cart, checkout and account pages are never cached. Builders and sliders are on our known-safe list so their scripts are never deferred.

= What happens if your service is down? =
Nothing visible. The page cache runs on your own server, and the plugin falls back to your original image and asset URLs. Speed degrades; the site does not.

= How do I know it is really working on my host? =
Settings → ZeroConfig → "Is it working?" asks your server for your home page the way a visitor does and shows five checks (setup, page cache, web server shortcut, edge, features). Anything not green comes with the reason, who can fix it (you, your host, or us) and the exact text to paste. From the command line: wp zeroconfig doctor.

= How fresh are cached pages? =
A change you make (a post, a product, a menu) clears the affected pages at once. Otherwise a cached page lives at most 9 hours, shorter if your site uses shorter login nonces. On Apache the web server serves cached files without starting PHP, so expired files are removed by an hourly clean-up rather than at the exact second: a page can be up to about an hour older than that limit, never long enough to break a form.

= My site is behind a proxy or in Docker and the refill after a purge is skipped =
After a purge ZeroConfig refills your 10 most important addresses by asking its own server for them. If HTTPS ends at a proxy in front of WordPress, tell it where the web server listens: define( 'ZEROCONFIG_LOOPBACK', 'http://127.0.0.1:80' ); in wp-config.php.

== Changelog ==
= 1.0.0 =
* First release.
