=== Shrinkwell Image Optimizer ===
Contributors: levmedia123
Tags: image optimization, webp, image compression, media library, performance
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.14.18
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Optimize images locally, create WebP, run safe media library optimization, and prove saved space with backups and delivery checks.

== Description ==

Optimize images without losing control.

Shrinkwell Image Optimizer is a local-first image optimizer for WordPress. All core optimization runs directly on your server - no external API, no account required. It keeps original backups, generates WebP versions, and gives you clear proof of saved space before handing a site back to a client.

= Optimization & Compression =

* Automatically optimize JPEG, PNG, and WebP uploads on upload.
* Choose from Balanced, High compression, Near lossless, or Custom compression profiles.
* Fine-tune compression with a 1-10 strength slider.
* Resize oversized images to a maximum width and height.
* Optimize thumbnails and strip image metadata/EXIF where possible.

= WebP Delivery =

* Generate WebP versions when supported by your server.
* Use the local `cwebp` binary when available, with WordPress image editor fallback.
* Generate missing WebP files without recompressing originals.
* Serve WebP on the frontend with safe JPEG/PNG fallback markup.

= Media Library Optimization & Testing =

* Run a safe 5-image optimization test before committing to a full media library run.
* Optimize existing images directly from Media > Shrinkwell.
* Run a Page Proof scan on a live frontend page to verify WebP delivery, estimate image payload savings, and identify cached JPG/PNG URLs.

= Backups & Restore =

* Keep original backups before replacing any files.
* Restore all optimized images at once from a single screen.

= Insights & Logging =

* View optimization status directly in the Media Library list view.
* Review an optimization log showing saved bytes, WebP counts, and skipped files with clear reasons such as file size, dimensions, and processing limits.
* Review current settings from the Overview page at a glance.

= Settings & Recommendations =

* Configure everything from the Shrinkwell admin page under Media > Shrinkwell.
* Scan your media library and receive tailored setting recommendations for your site.
* Apply recommended settings in one click after scanning.
* Scan for image SEO issues without automatically modifying content.

Review prompts appear only after Shrinkwell has produced measurable results.

= What Shrinkwell Does Not Do =

* Does not send images to an external optimization service for core local features.
* Does not require an account for free local optimization.
* Does not automatically rewrite SEO content.

== Privacy ==

Shrinkwell optimizes images locally on your WordPress server. The free plugin never sends media files to an external API.

== License & Assets ==

Shrinkwell is licensed under GPLv2 or later.

The included Shrinkwell logo and wordmark are original Levmedia brand assets and are distributed with this plugin under GPLv2 or later.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`.
2. Activate "Shrinkwell Image Optimizer" in WordPress.
3. Open Media > Shrinkwell.
4. Save your preferred settings and run the bulk optimizer.

== Frequently Asked Questions ==

= Does this use an external compression API? =

No. It uses the image editor available on your WordPress server, usually GD or Imagick.

= Does it convert images to AVIF? =

Not in the free local-first release. AVIF can be heavy on shared hosting, so Shrinkwell starts with WebP for stability.

= Can I restore originals? =

Yes. The plugin creates backup files when "Keep backups for restore" is enabled, and optimized items get a "Restore original" action in the Media Library.

= Does the SEO check rewrite alt text or filenames? =

No. Shrinkwell only reports missing alt text and weak filenames so you can review changes manually.

== Screenshots ==

1. Overview with current settings, compact site status, recommendations, and quick actions.
2. Settings tab with compression profiles, WebP settings, AVIF placeholder, and frontend delivery test.
3. Media Optimization tab with safe test workflow, progress, current image, and recent log.
4. SEO report for missing alt text and weak filenames.
5. Backup manager with original storage and restore controls.
6. Advanced safety limits for backups, large-image resizing, and maximum local processing size.

== Changelog ==

= 1.14.18 =
* Tweak: Simplified Advanced server status and moved technical engine details behind a disclosure.
* Tweak: Formatted PHP memory and safe image size values for normal users.
* Tweak: Clarified Page Proof cache/delivery guidance before release upload.

= 1.14.17 =
* Tweak: WebP-only runs now distinguish safe skips from real errors in the live progress UI.
* Tweak: Restore can recreate a missing current media file when a matching Shrinkwell backup exists.
* Tweak: Improved restore and WebP skip messages so missing files, already-WebP sources, and not-worth-keeping WebP copies are clearer.

= 1.14.16 =
* Tweak: Page Proof now ignores favicons and meta/social icons when measuring visible page image delivery.
* Tweak: Added a rewrite preview to show whether Shrinkwell can add WebP picture markup before cache/CDN output.
* Tweak: Added cache header details to Page Proof reports for easier cache troubleshooting.

= 1.14.15 =
* Tweak: Improved backup restore notices so partial restore failures show how many images need attention.
* Tweak: Added inline Image SEO alt text and title editing from the SEO scan table.
* Tweak: Split the media optimization log into attention items first and completed items below, with clearer skipped-image labels.

= 1.14.12 =
* Tweak: Added a compact skipped-image summary that groups recent optimization issues by cause.
* Tweak: Improved media optimization queue clarity while keeping the detailed log available.

= 1.14.11 =
* Fix: Page Proof now reports partial WebP evidence correctly instead of showing "not detected" when WebP markup exists but coverage is incomplete.
* Tweak: Added clearer cache guidance when WebP files are ready but cached page HTML still exposes JPG/PNG URLs.
* Tweak: Added Page Proof data for distinguishing missing WebP files from delivery/cache coverage issues.

= 1.14.10 =
* Added a lightweight frontend HTML pass so theme logos, page builder images, and other images outside post content can receive WebP delivery.
* Added WebP replacement for local upload background images when a matching WebP file exists.
* Improved WebP handling for image preload links on normal frontend pages.
* Added developer filters to disable frontend HTML, background image, or image preload rewriting on edge-case sites.

= 1.14.9 =
* Made the page proof scan stricter by detecting local JPG/PNG URLs that still appear uncovered even when WebP files are ready.
* Added WebP delivery coverage and uncovered image examples to the copyable page proof report.
* Improved page proof messaging for partially covered pages, including theme logos, page builder images, preloads, and cached markup.

= 1.14.8 =
* Split the media optimization queue into safe to optimize, already optimized, and too-large counts.
* Fixed the active optimization filename after skipped images so the running status no longer appears stuck.
* Clarified the public translation path through WordPress.org translation packs.

= 1.14.7 =
* Improved media optimization queue clarity when remaining images are too large for safe local processing.
* Count only processable images as ready to optimize and point oversized images to Advanced limits.
* Added a modest in-plugin WordPress.org review prompt after real optimization results.

= 1.14.6 =
* Made contextual help tips more subtle and kept them inline with their labels.

= 1.14.5 =
* Added visible log entries for single-image restores so restore testing is easier to verify.

= 1.14.4 =
* Improved page proof scan wording when WebP files exist but page HTML does not clearly serve them, and avoided negative savings wording.

= 1.14.3 =
* Added lightweight contextual help tips for settings, format delivery, advanced limits, and media optimization.

= 1.14.2 =
* Renamed homepage proof wording to page proof and added a copyable page proof report.

= 1.14.1 =
* Restored KPI icons using CSS masks so they remain visible while keeping Plugin Check output clean.

= 1.14.0 =
* Fixed Plugin Check findings for hidden files, escaped SVG output, sanitized AJAX input, and modern WordPress.org translation loading.

= 1.13.9 =
* Expanded the frontend proof scan so any same-site page URL can be scanned.
* Added page-level payload evidence that compares found original JPG/PNG file sizes with available WebP files.

= 1.13.8 =
* Increased dashboard KPI icon size for clearer visual balance.

= 1.13.7 =
* Added a frontend proof scan that checks live page HTML for WebP sources and flags JPG/PNG background images for manual review.

= 1.13.6 =
* Centered the dashboard metric icons and kept them magenta by preventing label styles from overriding the SVG color.

= 1.13.5 =
* Clarified the pending media metric by showing "Ready to re-optimize" when existing optimized images need processing again for current settings.

= 1.13.4 =
* Fixed metric card icons by replacing small admin-font icons with lightweight inline SVG icons.
* Clarified that the 10 MB local processing limit is a starting point and that pixel dimensions also affect memory use.

= 1.13.3 =
* Replaced prototype-style metric icons with lightweight Dashicons-based admin icons.
* Added a maximum file-size setting for local optimization limits.
* Improved skipped-image details with file size, dimensions, and configured limits where available.
* Improved the Image SEO scan with thumbnails, status labels, and practical suggestions.
* Prepared the plugin for WordPress locale-based translations through a languages directory.

= 1.13.2 =
* Kept AVIF disabled in the free local-first flow to avoid memory-heavy failures on normal hosting.
* Made skipped-image messages shorter and easier to read during media optimization.
* Modernized the media optimization log styling.

= 1.13.1 =
* Updated the admin UI look and feel with stronger header actions, modern tabs, larger metric cards, and softer dashboard cards.
* Renamed the user-facing library workflow to Media Optimization.

= 1.13.0 =
* Renamed the Bulk tab to Library for a clearer user-facing workflow.
* Merged Optimize and Formats into one Settings page.
* Made recommended settings more conservative by leaving AVIF optional instead of enabling it automatically.
* Added safer local AVIF limits and raised the WordPress image memory limit before local processing where WordPress allows it.

= 1.12.5 =
* Refined the Bulk page into a more compact control center with a circular progress meter.
* Added live run stats for saved space and skipped images.
* Kept the safe workflow visible without adding extra advanced filter choices.

= 1.12.4 =
* Added a clear warning to keep the Bulk page open while optimization is running.
* Added a browser leave warning during active bulk optimization.
* Added visible skipped-image errors during the current run.
* Added client-side error logging so failed browser requests also appear in the recent bulk log.

= 1.12.3 =
* Made bulk optimization more reliable on shared hosting by processing one image per request.
* If one image request fails, Shrinkwell now skips that item, logs the problem, and continues instead of stopping the whole run.
* Added local safety checks for very large files and dimensions to reduce memory-related failures.
* Removed the visible advanced filter block from the Bulk page to keep the scan and bulk workflows clearer.
* Updated the admin header and bulk copy around local-first, safety-focused positioning.

= 1.12.2 =
* Simplified the Overview page by removing internal launch/proof panels and moving site status into a compact sidebar.
* Removed automatic bulk-start remnants from the recommendation flow.

= 1.12.1 =
* Changed the recommended settings flow so applying recommendations no longer starts bulk optimization automatically.
* Cleaned up the remaining Plugin Check sanitization warning for admin result notices.

= 1.12.0 =
* Simplified admin navigation to Overview, Optimize, Formats, Bulk, SEO, Backups, and Advanced.
* Merged the settings summary into the Overview page.
* Added safe extension hooks for AVIF availability, bulk batch sizing, review URL, and after-optimization events.
* Added an in-plugin review request that only appears after real usage and no recent errors.

= 1.11.1 =
* Cleaned up Plugin Check findings for translator comments, read-only admin URL handling, AJAX input sanitization, file replacement, and the readme short description.

= 1.11.0 =
* Renamed internal public prefixes from the older short prefix to the safer `shrinkwell_`, `SHRINKWELL_`, and `shrinkwell-` patterns for WordPress.org review.
* Simplified the public plugin name to `Shrinkwell Image Optimizer`.
* Updated the WordPress.org contributor account to `levmedia123`.

= 1.10.0 =
* Added a launch readiness checklist and optimization proof overview.
* Stored delivery test and SEO scan results so site readiness is easier to review.
* Added a 5-image bulk test run for safer first use on client sites.
* Prevented WebP source files from being processed as duplicate WebP copies.
* Removed the dashboard widget from the first WordPress.org submission build to keep the admin footprint focused.

= 1.9.0 =
* Added smart bulk filters and an image SEO report for missing alt text and weak filenames.

= 1.8.0 =
* Rebranded the plugin to Shrinkwell, improved the bulk flow, and simplified Custom compression controls.

= 1.7.0 =
* Added a settings summary page and replaced the technical custom quality input with a 1-10 compression strength slider.

= 1.6.0 =
* Added an apply button for site scan recommendations and quick follow-up links.

= 1.5.0 =
* Improved compression explanations, clarified WebP/AVIF settings, added recommendation markers, and added a site recommendation scan.

= 1.4.0 =
* Added a backup manager tab with backup storage stats, per-image restore links, and restore-all support.

= 1.3.0 =
* Added bulk logs, WebP/AVIF delivery test, and a WordPress dashboard widget.

= 1.2.0 =
* Added tabbed settings pages, compression profiles, AVIF creation/serving, EXIF removal option, thumbnail optimization control, status checks, and improved bulk progress.

= 1.1.0 =
* Added frontend WebP serving with picture/source fallback.

= 1.0.0 =
* Initial version.
