{"id":252904,"date":"2025-10-05T07:58:28","date_gmt":"2025-10-05T07:58:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/prune-thumbnails\/"},"modified":"2026-08-30T04:27:36","modified_gmt":"2026-08-30T04:27:36","slug":"thumbnail-manager","status":"publish","type":"plugin","link":"https:\/\/uz.wordpress.org\/plugins\/thumbnail-manager\/","author":21137534,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.1","stable_tag":"1.5.1","tested":"7.0.4","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Thumbnail Manager","header_author":"YoOhw.com","header_description":"Clean up unused thumbnails with progress; find orphan -WxH files; disable sizes for future uploads.","assets_banners_color":"77787b","last_updated":"2026-08-30 04:27:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/yoohw.com\/product\/thumbnail-manager\/","header_author_uri":"https:\/\/yoohw.com","rating":4.5,"author_block_rating":0,"active_installs":100,"downloads":1546,"num_ratings":2,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"yoohw","date":"2025-10-05 07:58:14","revision":3373055},"1.0.1":{"tag":"1.0.1","author":"yoohw","date":"2025-12-03 02:11:14","revision":3408688},"1.1":{"tag":"1.1","author":"yoohw","date":"2026-03-19 04:47:53","revision":3486134},"1.2":{"tag":"1.2","author":"yoohw","date":"2026-05-09 03:10:17","revision":3526963},"1.3":{"tag":"1.3","author":"yoohw","date":"2026-06-12 04:58:42","revision":3569575},"1.4.0":{"tag":"1.4.0","author":"yoohw","date":"2026-08-01 04:35:12","revision":3630618},"1.5.0":{"tag":"1.5.0","author":"yoohw","date":"2026-08-29 12:53:34","revision":3671541},"1.5.1":{"tag":"1.5.1","author":"yoohw","date":"2026-08-30 04:27:36","revision":3672024}},"upgrade_notice":{"1.5.1":"<p>Fixes enabled-size regeneration, adds conservative reviewed cleanup for legacy and historical thumbnails, improves format-conversion cleanup, and hardens Prune resume behavior.<\/p>","1.5.0":"<p>Improves regeneration reliability, cleanup safety, recommendations, large-library performance, and Regenerate scope selection.<\/p>","1.4.0":"<p>Adds persistent resumable jobs, explicit manifest approval, folder-limited scans, and a safer workflow for large Media Libraries.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":1,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3517019,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3517019,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3517019,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3517019,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.1","1.1","1.2","1.3","1.4.0","1.5.0","1.5.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3673347,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3673347,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3673347,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3673347,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":[]},"plugin_section":[],"plugin_tags":[3786,3473,233,30630,2956],"plugin_category":[50],"plugin_contributors":[223812],"plugin_business_model":[],"class_list":["post-252904","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-image-sizes","plugin_tags-media-library","plugin_tags-regenerate-thumbnails","plugin_tags-thumbnails","plugin_category-media","plugin_contributors-yoohw","plugin_committers-yoohw","plugin_support_reps-jacobb26"],"banners":{"banner":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/banner-772x250.png?rev=3517019","banner_2x":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/banner-1544x500.png?rev=3517019","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/icon-128x128.png?rev=3517019","icon_2x":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/icon-256x256.png?rev=3517019","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-1.png?rev=3673347","caption":""},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-2.png?rev=3673347","caption":""},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-3.png?rev=3673347","caption":""},{"src":"https:\/\/ps.w.org\/thumbnail-manager\/assets\/screenshot-4.png?rev=3673347","caption":""}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/yoohw.com\/product\/thumbnail-manager\/\">Product page<\/a> | <a href=\"https:\/\/docs.yoohw.com\/category\/thumbnail-manager\/\">Documentation<\/a> | <a href=\"https:\/\/workspace.yoohw.com\/\">Support<\/a><\/p>\n\n<p>Thumbnail Manager helps regenerate WordPress image sizes, prevent future thumbnail bloat, and review generated files before cleanup. Use it after changing themes or WooCommerce image settings, migrating a site, or finding obsolete sizes in a long-running Media Library.<\/p>\n\n<p>Large operations run as persistent, bounded jobs. They continue in batches, survive a page reload or network interruption, and use scoped processing where the workflow supports it.<\/p>\n\n<h4>Thumbnail control and regeneration<\/h4>\n\n<ul>\n<li>Review every registered image size and decide which sizes WordPress should generate for future uploads.<\/li>\n<li>Generate only missing sizes or force-regenerate selected image attachments.<\/li>\n<li>Regenerate all media, current-year images, one uploads folder, or specific image attachments.<\/li>\n<li>Review conservative keep recommendations with explicit evidence and confidence based on protected size policies, attachment metadata, and common content references.<\/li>\n<li>Resume or cancel persistent jobs and review recent job results and per-item errors.<\/li>\n<\/ul>\n\n<h4>Review-first cleanup<\/h4>\n\n<p>Prune Files separates discovery from deletion:<\/p>\n\n<ol>\n<li>Choose the image sizes to keep.<\/li>\n<li>Scan all uploads or selected year and month folders.<\/li>\n<li>Review the immutable, hashed manifest and estimated storage total.<\/li>\n<li>Explicitly approve the reviewed manifest.<\/li>\n<li>Delete only those approved generated files in resumable batches.<\/li>\n<\/ol>\n\n<p>Original full-size uploads are protected. Candidate paths are validated inside the WordPress uploads directory, and attachment metadata is updated only when an exact metadata-backed generated size is removed.<\/p>\n\n<p>Prune Files can optionally include verified disk-only legacy thumbnails for currently disabled sizes. A separate opt-in can also discover conservatively verified historical thumbnails from fixed image sizes that are no longer registered by the current theme or plugins. Unverified, ambiguous, sidecar, backup-like, or otherwise unmapped disk files remain preserved and do not enter the deletion manifest.<\/p>\n\n<h4>Scope<\/h4>\n\n<p>Thumbnail Manager controls image-size generation, regeneration, and cleanup. It does not compress images, configure a CDN, offload media, or unregister a size from the theme or plugin that originally registered it. Force Regenerate can follow WordPress image-editor output-format filters, including WebP or AVIF when supported by the site, while keeping original\/full-size sources protected.<\/p>\n\n<p>Recommendations are an informed starting point, not proof that a size is used or unused. Missing scan evidence leaves the current size setting unchanged. Verify the sizes used by the active theme, plugins, WooCommerce templates, and custom code before disabling generation or approving deletion.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Thumbnail Manager does not collect, store, or transmit personal data to external services. Thumbnail analysis, regeneration, recommendations, and cleanup run locally on the WordPress site.<\/p>\n\n<p>Persistent settings, job history, audit\/recovery rows, and derived media-reference data remain in the site's database after deactivation or plugin deletion. Browser-local job tokens may also remain in the administrator's browser. Review and remove retained data separately when required by the site's privacy policy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin through the WordPress Plugins screen, or upload it to <code>\/wp-content\/plugins\/thumbnail-manager\/<\/code>.<\/li>\n<li>Activate Thumbnail Manager.<\/li>\n<li>Go to <strong>Tools &gt; Thumbnail Manager<\/strong>.<\/li>\n<li>Run Recommendations and review the result for your theme and plugins.<\/li>\n<li>Configure future Thumbnail Sizes before regenerating or cleaning files.<\/li>\n<li>Back up the uploads directory before approving cleanup on a production site.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20regenerate%20thumbnails%20after%20changing%20image%20sizes%3F\"><h3>Can I regenerate thumbnails after changing image sizes?<\/h3><\/dt>\n<dd><p>Yes. <strong>Only Missing<\/strong> creates absent sub-sizes and honors the sizes currently enabled in <strong>Thumbnail Sizes<\/strong>. <strong>Force Regenerate<\/strong> rebuilds the selected attachments more comprehensively from an available original image source and follows the same enabled-size policy.<\/p>\n\n<p>Regenerate can process all media, current-year images, one uploads folder, or specific image attachments. Choose the narrowest useful scope before starting a large job.<\/p><\/dd>\n<dt id=\"can%20it%20clean%20unused%20generated%20thumbnails%3F\"><h3>Can it clean unused generated thumbnails?<\/h3><\/dt>\n<dd><p>Yes. Prune Files first builds a manifest for review. Nothing is deleted until the scan finishes and an administrator explicitly approves that manifest.<\/p><\/dd>\n<dt id=\"will%20it%20delete%20original%20images%3F\"><h3>Will it delete original images?<\/h3><\/dt>\n<dd><p>No. Original full-size uploads are protected. Cleanup candidates must also pass path, ownership, source, and manifest checks.<\/p><\/dd>\n<dt id=\"can%20i%20scan%20several%20upload%20folders%3F\"><h3>Can I scan several upload folders?<\/h3><\/dt>\n<dd><p>Yes, in <strong>Prune Files<\/strong>. Search for and select multiple years or months. Selecting an entire year automatically covers its month folders.<\/p><\/dd>\n<dt id=\"is%20it%20suitable%20for%20a%20large%20media%20library%3F\"><h3>Is it suitable for a large Media Library?<\/h3><\/dt>\n<dd><p>Yes. Recommendations, regeneration, scanning, manifest creation, and deletion use persistent jobs and bounded batches that can resume after interruption.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20close%20the%20page%20during%20a%20job%3F\"><h3>What happens if I close the page during a job?<\/h3><\/dt>\n<dd><p>The job state remains in the database. Reload the admin page to resume it. Cancelling stops future batches while retaining an audit record.<\/p><\/dd>\n<dt id=\"can%20prune%20files%20delete%20old%20disk-only%20thumbnails%3F\"><h3>Can Prune Files delete old disk-only thumbnails?<\/h3><\/dt>\n<dd><p>Only when they can be verified conservatively. You can opt in to verified legacy thumbnails for currently disabled sizes, and separately opt in to verified historical thumbnails from sizes that are no longer registered. Unmapped filename matches, ambiguous files, sidecars, edit\/backup-like siblings, and other files without sufficient ownership evidence are preserved by default.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20for%20woocommerce%20sites%3F\"><h3>Is it safe for WooCommerce sites?<\/h3><\/dt>\n<dd><p>The plugin recognizes WooCommerce-related sizes in Recommendations, but storefront requirements vary. Verify the sizes used by your store before disabling or pruning them.<\/p><\/dd>\n<dt id=\"does%20disabling%20a%20size%20unregister%20it%20from%20a%20theme%20or%20plugin%3F\"><h3>Does disabling a size unregister it from a theme or plugin?<\/h3><\/dt>\n<dd><p>No. It changes which registered sizes WordPress generates for future uploads and regeneration. The original registration remains in place.<\/p><\/dd>\n<dt id=\"what%20data%20remains%20after%20deactivation%20or%20plugin%20deletion%3F\"><h3>What data remains after deactivation or plugin deletion?<\/h3><\/dt>\n<dd><p>Deactivation clears Thumbnail Manager's scheduled cleanup task but retains settings, job history, recovery evidence, and media-reference data. Deleting the plugin files intentionally retains the same database state and does not delete attachment metadata, uploads, generated thumbnails, or recovery files. This retained state may be reused after reinstall, subject to the plugin's normal expiry, ownership, and authorization checks. Remove retained database data separately only if your site's privacy and recovery requirements allow it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.1 (Aug 30, 2026)<\/h4>\n\n<ul>\n<li>Fixed regeneration so future uploads, Generate Missing Sizes Only, Force Regenerate, and Save + Regenerate consistently honor the sizes enabled in Thumbnail Sizes<\/li>\n<li>Added review-first cleanup for verified disk-only thumbnails from currently disabled sizes, plus a separate conservative opt-in for historical sizes that are no longer registered<\/li>\n<li>Fixed WebP\/AVIF Force Regenerate cleanup so the exact obsolete metadata-backed JPEG\/PNG derivative is removed after a successful replacement while unrelated files and sidecars remain protected<\/li>\n<li>Hardened historical Prune resume and replay handling, including partial evidence cleanup and legitimate no-op database updates<\/li>\n<li>Improved Prune scan errors so server\/application failures are distinguished from network loss while the persistent job remains available to reload and resume<\/li>\n<li>Improved the Prune Files size table layout and marked WordPress core image sizes with the WordPress icon<\/li>\n<\/ul>\n\n<p>See <code>changelog.txt<\/code> for the complete release history.<\/p>","raw_excerpt":"Regenerate WordPress thumbnails, control image sizes, and safely clean generated files with resumable, review-first jobs.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/252904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=252904"}],"author":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yoohw"}],"wp:attachment":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=252904"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=252904"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=252904"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=252904"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=252904"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=252904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}