{"id":201316,"date":"2024-09-07T03:17:01","date_gmt":"2024-09-07T03:17:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/thumbnail-remover-and-size-manager\/"},"modified":"2026-04-04T08:10:32","modified_gmt":"2026-04-04T08:10:32","slug":"thumbnail-remover","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/thumbnail-remover\/","author":15264023,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.1","stable_tag":"2.2.1","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Thumbnail Remover and Size Manager","header_author":"Mehdi Rezaei","header_description":"Removes existing thumbnails, disables thumbnail generation, and manages thumbnail sizes","assets_banners_color":"497196","last_updated":"2026-04-04 08:10:32","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.buymeacoffee.com\/mehdiraized","header_plugin_uri":"https:\/\/github.com\/mehdiraized\/thumbnail-remover\/","header_author_uri":"https:\/\/mehd.ir","rating":5,"author_block_rating":0,"active_installs":60,"downloads":1439,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.3":{"tag":"1.1.3","author":"mehdiraized","date":"2024-09-07 03:49:57"},"1.1.4":{"tag":"1.1.4","author":"mehdiraized","date":"2024-10-07 15:38:31"},"1.1.5":{"tag":"1.1.5","author":"mehdiraized","date":"2026-03-12 11:51:11"},"2.0.0":{"tag":"2.0.0","author":"mehdiraized","date":"2026-03-14 13:44:18"},"2.1.0":{"tag":"2.1.0","author":"mehdiraized","date":"2026-03-24 15:59:02"},"2.2.0":{"tag":"2.2.0","author":"mehdiraized","date":"2026-04-04 07:44:12"},"2.2.1":{"tag":"2.2.1","author":"mehdiraized","date":"2026-04-04 08:10:32"}},"upgrade_notice":{"2.2.0":"<p>This update adds persistent reporting and recent activity logs for media operations in the admin screen.<\/p>","2.1.0":"<p>This update adds WP-Cron scheduled cleanup with configurable scope while keeping the existing Trash and Restore safety workflow.<\/p>","2.0.0":"<p>This major update introduces preview before cleanup, Trash and Restore, batch processing, unused media detection, orphan thumbnail detection, missing-size regeneration, and per-size analytics.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3147825,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3483927,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3483927,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.3","1.1.4","1.1.5","2.0.0","2.1.0","2.2.0","2.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3493002,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3488407,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3493002,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3488407,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Library analysis with per-size analytics and unused media results","2":"Dry run preview before moving thumbnails to Trash","3":"Trash and Restore workflow","4":"Batch regeneration of missing image sizes"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3786,29161,231428,30630,2956],"plugin_category":[50],"plugin_contributors":[231111],"plugin_business_model":[],"class_list":["post-201316","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-image-optimization","plugin_tags-media-management","plugin_tags-regenerate-thumbnails","plugin_tags-thumbnails","plugin_category-media","plugin_contributors-mehdiraized","plugin_committers-mehdiraized"],"banners":{"banner":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/banner-772x250.png?rev=3483927","banner_2x":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/banner-1544x500.png?rev=3483927","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/icon-256x256.png?rev=3147825","icon_2x":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/icon-256x256.png?rev=3147825","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/screenshot-1.png?rev=3493002","caption":"Library analysis with per-size analytics and unused media results"},{"src":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/screenshot-2.png?rev=3488407","caption":"Dry run preview before moving thumbnails to Trash"},{"src":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/screenshot-3.png?rev=3493002","caption":"Trash and Restore workflow"},{"src":"https:\/\/ps.w.org\/thumbnail-remover\/assets\/screenshot-4.png?rev=3488407","caption":"Batch regeneration of missing image sizes"}],"raw_content":"<!--section=description-->\n<p>Thumbnail Remover and Size Manager 2.2 is a safer and more complete media-maintenance workflow for WordPress.<\/p>\n\n<p>Instead of deleting thumbnails blindly, the plugin now helps you:<\/p>\n\n<ul>\n<li>Preview cleanup results before removing files<\/li>\n<li>Move thumbnails to plugin Trash instead of deleting permanently<\/li>\n<li>Restore trashed thumbnails later if needed<\/li>\n<li>Process large libraries in batches with visible progress<\/li>\n<li>Detect orphan thumbnails left behind on disk<\/li>\n<li>Detect probably unused media items across post content, featured images, and common builder data<\/li>\n<li>Regenerate missing image sizes in batches<\/li>\n<li>Review per-size analytics including file counts, storage usage, missing sizes, and orphan counts<\/li>\n<li>Review recent activity logs and reporting summaries for cleanup, restore, backup, and regeneration workflows<\/li>\n<li>Disable selected image sizes for future uploads<\/li>\n<li>Create zip backups for all uploads or a specific year\/month folder<\/li>\n<li>Schedule recurring cleanup runs with configurable frequency, size scope, and folder scope<\/li>\n<\/ul>\n\n<p>This release is built for site owners, developers, agencies, and anyone trying to reduce thumbnail bloat without risking accidental data loss.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Dry run \/ preview before cleanup<\/li>\n<li>Trash and Restore workflow for safer deletion<\/li>\n<li>Batch processing with real progress for scan, cleanup, and regeneration<\/li>\n<li>Unused media detection<\/li>\n<li>Orphan thumbnail detection<\/li>\n<li>Regenerate missing sizes<\/li>\n<li>Per-size analytics dashboard<\/li>\n<li>Reporting and recent activity logs<\/li>\n<li>Image size disable controls for future uploads<\/li>\n<li>Media backup export to zip<\/li>\n<li>Scheduled cleanup powered by WP-Cron<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/thumbnail-remover<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the <code>Plugins<\/code> screen in WordPress.<\/li>\n<li>Go to <code>Tools &gt; Thumbnail Manager<\/code>.<\/li>\n<li>Run a full analysis before your first cleanup so you can review thumbnail usage, orphan counts, and unused media signals.<\/li>\n<li>Configure scheduled cleanup if you want recurring maintenance.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20permanently%20delete%20thumbnails%3F\"><h3>Does the plugin permanently delete thumbnails?<\/h3><\/dt>\n<dd><p>No. Version 2 moves matching thumbnail files into plugin Trash first so they can be restored later.<\/p><\/dd>\n<dt id=\"what%20does%20preview%20do%3F\"><h3>What does Preview do?<\/h3><\/dt>\n<dd><p>Preview performs a dry run and shows how many files match your current selection, which sizes are involved, how much space can be recovered, and how many orphan thumbnails were found.<\/p><\/dd>\n<dt id=\"what%20are%20orphan%20thumbnails%3F\"><h3>What are orphan thumbnails?<\/h3><\/dt>\n<dd><p>Orphan thumbnails are files such as <code>image-300x300.jpg<\/code> that still exist on disk but are no longer tracked in WordPress attachment metadata.<\/p><\/dd>\n<dt id=\"how%20does%20unused%20media%20detection%20work%3F\"><h3>How does unused media detection work?<\/h3><\/dt>\n<dd><p>The plugin scans image attachments and checks for usage in featured images, parent attachments, post content, and stored builder\/meta content. The results are best treated as \u201cprobably unused\u201d so you can review them manually.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20image%20sizes%20for%20future%20uploads%20without%20deleting%20old%20files%3F\"><h3>Can I disable image sizes for future uploads without deleting old files?<\/h3><\/dt>\n<dd><p>Yes. The size-disable settings prevent selected image sizes from being generated for future uploads only. Existing thumbnails are not removed unless you explicitly preview and move them to Trash.<\/p><\/dd>\n<dt id=\"can%20i%20regenerate%20missing%20sizes%20after%20enabling%20a%20size%20again%3F\"><h3>Can I regenerate missing sizes after enabling a size again?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>Regenerate Missing Sizes<\/code> section to rebuild missing image sizes in batches.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20suitable%20for%20larger%20media%20libraries%3F\"><h3>Is the plugin suitable for larger media libraries?<\/h3><\/dt>\n<dd><p>Yes. Analysis, cleanup, and regeneration are processed in batches with visible progress to reduce timeout problems on larger WordPress sites.<\/p><\/dd>\n<dt id=\"can%20i%20back%20up%20my%20files%20before%20cleanup%3F\"><h3>Can I back up my files before cleanup?<\/h3><\/dt>\n<dd><p>Yes. You can create a zip backup for all uploads or for a selected year\/month folder.<\/p><\/dd>\n<dt id=\"can%20i%20restore%20only%20one%20cleanup%20batch%20instead%20of%20everything%3F\"><h3>Can I restore only one cleanup batch instead of everything?<\/h3><\/dt>\n<dd><p>Yes. Each cleanup run creates its own Trash batch, so you can restore a specific batch independently.<\/p><\/dd>\n<dt id=\"does%20scheduled%20cleanup%20delete%20files%20permanently%3F\"><h3>Does scheduled cleanup delete files permanently?<\/h3><\/dt>\n<dd><p>No. Scheduled cleanup uses the same plugin Trash flow as manual cleanup, so matching thumbnails can still be restored later.<\/p><\/dd>\n<dt id=\"what%20is%20included%20in%20reporting%20and%20logs%3F\"><h3>What is included in Reporting and Logs?<\/h3><\/dt>\n<dd><p>The reporting section shows recent analysis, preview, cleanup, restore, regeneration, backup, and scheduled cleanup activity along with summary totals for recovered storage and other media operations.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20detect%20thumbnails%20that%20exist%20on%20disk%20but%20not%20in%20metadata%3F\"><h3>Does the plugin detect thumbnails that exist on disk but not in metadata?<\/h3><\/dt>\n<dd><p>Yes. That is exactly what orphan thumbnail detection is for. These files are included in analysis and preview results so you can decide whether to move them to Trash.<\/p><\/dd>\n<dt id=\"should%20i%20trust%20unused%20media%20results%20as%20a%20final%20delete%20list%3F\"><h3>Should I trust unused media results as a final delete list?<\/h3><\/dt>\n<dd><p>No. The plugin marks items as probably unused based on several WordPress relationships and content checks, but you should still review those results manually before broader media cleanup decisions.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added a Reporting and Logs section with recent activity history<\/li>\n<li>Added summary cards for recovered storage, restored files, regenerated sizes, and backup runs<\/li>\n<li>Logged manual operations and scheduled cleanup events in a bounded admin-visible activity history<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added WP-Cron scheduled cleanup with daily, weekly, and monthly frequency options<\/li>\n<li>Added scheduled cleanup scope controls for image sizes and upload folders<\/li>\n<li>Added scheduled cleanup status, next-run visibility, and last-result summaries in the admin UI<\/li>\n<li>Kept scheduled cleanup on the same Trash and Restore workflow as manual cleanup<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added dry-run preview before cleanup<\/li>\n<li>Added Trash and Restore workflow for thumbnail removal<\/li>\n<li>Added batch processing with progress for analysis, cleanup, and regeneration<\/li>\n<li>Added orphan thumbnail detection<\/li>\n<li>Added probably unused media detection<\/li>\n<li>Added missing-size regeneration workflow<\/li>\n<li>Added per-size analytics dashboard<\/li>\n<li>Refreshed admin UI for the new v2 workflow<\/li>\n<li>Updated plugin description and documentation<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Fixed a fatal error when disabling thumbnail sizes on PHP 8.x<\/li>\n<li>Hardened settings and AJAX input handling for string-based values<\/li>\n<li>Updated compatibility metadata for the latest WordPress release<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Added new feature: Media file backup functionality<\/li>\n<li>Improved user interface for backup options<\/li>\n<li>Bug fixes and performance improvements<\/li>\n<\/ul>","raw_excerpt":"Safely analyze, preview, trash, restore, schedule, regenerate, report on, and manage WordPress thumbnails and image sizes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/201316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=201316"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mehdiraized"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=201316"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=201316"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=201316"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=201316"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=201316"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=201316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}