=== RasterRake Image Size Cleaner ===
Contributors: jordennabbe
Tags: image sizes, disable thumbnails, thumbnail cleaner, disk space, regenerate thumbnails
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Audit image-size disk use, disable future thumbnails, and preview-delete metadata-tracked retired derivatives without touching originals.

== Description ==

WordPress, themes and plugins can create many image sizes for every upload. RasterRake Image Size Cleaner shows the sizes WordPress knows about and totals the files and disk space recorded for each one.

Use clear controls to stop selected core or custom sizes from being generated on future uploads. Nothing changes on activation, and every size starts enabled. Large-image scaling can remain at the core default, be disabled, or use a custom threshold.

Cleanup always starts with a dry run. The plugin offers only derivative files that are explicitly named in attachment metadata for a size that is disabled or no longer registered. Attached files and original-image paths are hard exclusions, and a CSV is available before deletion.

A retired derivative can still be referenced by a manually pasted URL, custom code or cached content, so review the preview and keep a backup. When a needed size is re-enabled, Regenerate creates missing enabled derivatives in batches. The audit, cleanup and regeneration work locally and never send your files anywhere.

A Pro version adds scheduled cleanup with email summaries, WP-CLI commands, multisite network reports, a disk history, object-storage adapters and size-policy presets. See the Upgrade to Pro section below for the link.

**What the plugin does**

* Audits every size key recorded in `_wp_attachment_metadata`, with dimensions, crop mode, file count, missing files and bytes.
* Stops selected core or custom sizes — including 1536x1536 and 2048x2048 — from being created for future uploads.
* Keeps the large-image threshold at the core default, disables it, or sets a custom value between 2560 and 10000 pixels.
* Previews retired derivatives in the browser, limited to metadata-recorded files inside the uploads folder.
* Deletes only after an explicit size selection and the typed phrase DELETE RETIRED SIZES, then removes the matching metadata entry.
* Regenerates missing enabled derivatives in resumable batches.
* Exports the size report and the cleanup preview as CSV files.

**What the plugin does not do**

* It does not look for unattached or unused media, and it does not scan the filesystem for orphan files.
* It does not delete attached files, original uploads, scaled originals or anything outside the local uploads folder.
* It does not claim that a derivative is unused in your content; retired means disabled or no longer registered.
* It adds no scheduled tasks, custom tables or advertising.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` or install it from the WordPress plugins screen.
2. Activate the plugin. Every image size stays enabled and nothing is changed on your site.
3. Open Tools > Image Size Cleaner and press Scan image sizes to build the audit.
4. Use the Size Controls tab to choose which sizes WordPress creates for future uploads.
5. Use the Cleanup tab to preview retired derivatives, download the CSV and, if you are sure, delete them.

== Upgrade to Pro ==

A Pro version of RasterRake Image Size Cleaner exists. It adds scheduled metadata-tracked cleanup with opt-in email summaries, WP-CLI commands, multisite network reports and per-site controls, a before-and-after disk history, adapters for supported object-storage plugins and agency presets for size policies. Everything described above stays in the free version.

Details: https://factory.novaworks.pt/p/rasterrake-image-size-cleaner

== Frequently Asked Questions ==

= Will this plugin delete original uploads? =

No. Original and attached-file paths are never eligible. Cleanup is limited to derivative file names recorded in attachment metadata, with path and duplicate-reference checks.

= Does retired mean unused everywhere? =

No. It means the size is disabled or no longer registered. Custom code or old content may still contain a direct URL, so inspect the dry run and the CSV before deleting.

= What happens when I disable a size? =

It is left out of future image generation. Existing files remain on disk until you explicitly preview and confirm a cleanup.

= Can I restore a size later? =

Re-enable it and use Regenerate to create the missing enabled derivatives from the preserved source file, where WordPress can process it.

= Does it support offloaded media? =

The free version supports only files that are available in the local WordPress uploads directory. Files that are not present locally are reported as missing and are never deletion candidates.

= Does the plugin send any data? =

No. The audit, cleanup and regeneration run on your own server and never send files or image data anywhere. The free version distributed on WordPress.org contains no licensing code and makes no external requests. The Pro version includes the Freemius SDK for licence handling; it may ask once whether you want to share basic site information, and you can skip that.

== Screenshots ==

1. See every registered and historic image size with file counts, missing files, and disk usage.
2. Choose which image sizes WordPress should create for future uploads.
3. Preview metadata-tracked retired derivatives and reclaimable space before deleting anything.
4. Regenerate missing enabled image sizes in resumable browser batches.

== Changelog ==

= 1.1.2 =
* New: an Upgrade to Pro tab on the plugin's own screen that lists what the paid version adds and links to it. It is plain markup and loads nothing from the internet.
* New: one short "Available in Pro" hint next to the cleanup controls, for the scheduled cleanup.
* Changed: the review request now waits until the plugin completed a scan, cleanup or regeneration ten times; hiding it is still permanent.
* No change to the audit, size controls, cleanup or regeneration.

= 1.1.1 =
* Changed: the free version no longer bundles the Freemius SDK and its plugin updater, which WordPress.org does not allow in hosted plugins. The SDK ships only with the Pro version.
* Changed: the free version removes its options and transients through the WordPress uninstall hook; the Pro version keeps using the SDK's uninstall event.
* No change to the audit, size controls, cleanup or regeneration.

= 1.1.0 =
* New: licensing through the bundled Freemius SDK, with an optional opt-in that can be skipped.
* New: extension points for audit reports, finished cleanups, report rows and cleanup protection.
* Every free feature stays available without a licence or an opt-in.

= 1.0.0 =
* First release: per-size audit with CSV export, size generation controls, large-image threshold control, dry-run cleanup of metadata-recorded retired derivatives and batched regeneration.
