{"id":340566,"date":"2026-07-15T13:06:17","date_gmt":"2026-07-15T13:06:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tinysharp-regenerate-thumbnails\/"},"modified":"2026-07-15T13:05:45","modified_gmt":"2026-07-15T13:05:45","slug":"tinysharp-thumbnail-audit-repair","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tinysharp-thumbnail-audit-repair\/","author":23372026,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.0.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"TinySharp Thumbnail Audit & Repair","header_author":"TinySharp","header_description":"Scan, repair, and regenerate WordPress thumbnails with missing-file detection, outdated-size checks, resumable processing, and clear local history.","assets_banners_color":"19422c","last_updated":"2026-07-15 13:05:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/tinysharp.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.5":{"tag":"1.0.5","author":"tinysharp","date":"2026-07-15 13:05:45"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3608917,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3608917,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3608917,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3608917,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3608917,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3608917,"resolution":"1","location":"assets","locale":"","width":1600,"height":1242},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3608917,"resolution":"2","location":"assets","locale":"","width":1600,"height":973},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3608917,"resolution":"3","location":"assets","locale":"","width":1600,"height":832},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3608917,"resolution":"4","location":"assets","locale":"","width":1600,"height":832}},"screenshots":{"1":"Regeneration workflow with Repair, Missing only, All current sizes, and Selected sizes modes plus resumable job progress.","2":"Non-destructive Scan &amp; Audit results with healthy, repairable, missing-file, and outdated-dimension reporting.","3":"Registered WordPress image sizes with dimensions, crop behavior, likely source, and current status.","4":"Local regeneration history with checked, changed, generated, already-complete, and attention-needed results."}},"plugin_section":[],"plugin_tags":[3473,163,233,30630,2956],"plugin_category":[50],"plugin_contributors":[270980],"plugin_business_model":[],"class_list":["post-340566","plugin","type-plugin","status-publish","hentry","plugin_tags-image-sizes","plugin_tags-images","plugin_tags-media-library","plugin_tags-regenerate-thumbnails","plugin_tags-thumbnails","plugin_category-media","plugin_contributors-tinysharp","plugin_committers-tinysharp"],"banners":{"banner":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/banner-772x250.png?rev=3608917","banner_2x":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/banner-1544x500.png?rev=3608917","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/icon.svg?rev=3608917","icon":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/icon.svg?rev=3608917","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/screenshot-1.jpg?rev=3608917","caption":"Regeneration workflow with Repair, Missing only, All current sizes, and Selected sizes modes plus resumable job progress."},{"src":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/screenshot-2.jpg?rev=3608917","caption":"Non-destructive Scan &amp; Audit results with healthy, repairable, missing-file, and outdated-dimension reporting."},{"src":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/screenshot-3.jpg?rev=3608917","caption":"Registered WordPress image sizes with dimensions, crop behavior, likely source, and current status."},{"src":"https:\/\/ps.w.org\/tinysharp-thumbnail-audit-repair\/assets\/screenshot-4.jpg?rev=3608917","caption":"Local regeneration history with checked, changed, generated, already-complete, and attention-needed results."}],"raw_content":"<!--section=description-->\n<p>TinySharp Thumbnail Audit &amp; Repair helps WordPress site owners and developers inspect and rebuild image sub-sizes without treating the Media Library like a black box.<\/p>\n\n<p>The plugin focuses on a safe workflow:<\/p>\n\n<ol>\n<li>Scan the Media Library without changing files.<\/li>\n<li>See missing metadata, physically missing thumbnail files, and image sizes whose stored dimensions no longer match the current WordPress configuration.<\/li>\n<li>Repair detected issues, regenerate missing thumbnails only, rebuild all current sizes, or choose specific sizes.<\/li>\n<li>Review exactly how many images changed, how many thumbnail files were generated, which images were already complete, and which items need attention.<\/li>\n<\/ol>\n\n<h4>Free features<\/h4>\n\n<ul>\n<li>Non-destructive Media Library audit.<\/li>\n<li>Detect missing thumbnail metadata.<\/li>\n<li>Detect thumbnail metadata whose physical file is missing.<\/li>\n<li>Detect current image-size names whose stored dimensions no longer match what WordPress would generate today.<\/li>\n<li>Separate historical\/unregistered image-size metadata from repairable current-size problems.<\/li>\n<li>Exclude known WordPress Site Icon auxiliary sizes from misleading historical-size warnings.<\/li>\n<li>Show issue examples so you can see which image attachments need attention.<\/li>\n<li>Regenerate detected missing and outdated thumbnails with the recommended Repair mode.<\/li>\n<li>Regenerate missing thumbnails only.<\/li>\n<li>Regenerate all currently registered WordPress image sizes.<\/li>\n<li>Regenerate selected image sizes.<\/li>\n<li>Regenerate a Media Library selection from list view.<\/li>\n<li>One-image-per-request processing to avoid one giant PHP request.<\/li>\n<li>Pause and resume a browser-driven job.<\/li>\n<li>Resume a stored job after leaving the page.<\/li>\n<li>Safely stop a job.<\/li>\n<li>Skip a single image if a request-level problem repeatedly blocks progress.<\/li>\n<li>Continue the queue when one attachment reports a normal processing error.<\/li>\n<li>Track checked images, changed attachments, generated thumbnails, already-complete images, partial results, and failures separately.<\/li>\n<li>Keep a local regeneration history.<\/li>\n<li>Configurable non-destructive large source-image audit threshold.<\/li>\n<li>No telemetry and no external image processing service.<\/li>\n<\/ul>\n\n<h4>What Repair mode does<\/h4>\n\n<p>Repair mode checks each image against image sizes currently registered by WordPress, the active theme, and plugins. It rebuilds only:<\/p>\n\n<ul>\n<li>sizes missing from attachment metadata,<\/li>\n<li>sizes whose metadata exists but the referenced thumbnail file is missing,<\/li>\n<li>sizes whose stored dimensions no longer match the dimensions WordPress would generate with the current configuration.<\/li>\n<\/ul>\n\n<p>Images that already satisfy the selected mode are reported as \"Already complete\" rather than being presented as failures or unexplained skips.<\/p>\n\n<h4>Historical \/ unregistered size records<\/h4>\n\n<p>Changing a theme, plugin, or Media setting can leave old image-size names in attachment metadata. TinySharp reports these separately because an unregistered size is not automatically safe to delete: older content can still reference its file URL.<\/p>\n\n<p>This release does not delete historical thumbnail files. The audit reports them for review only.<\/p>\n\n<h4>Resumable processing<\/h4>\n\n<p>TinySharp Thumbnail Audit &amp; Repair processes one image attachment per request and stores job progress temporarily. If you leave the page, return to the Regenerate screen and resume the job. If a request repeatedly fails on one image, you can skip that current image and continue the rest of the queue.<\/p>\n\n<h4>Important safety behavior<\/h4>\n\n<ul>\n<li>Original uploads are never deleted by this plugin.<\/li>\n<li>The audit does not modify files or attachment metadata.<\/li>\n<li>Regeneration updates WordPress attachment metadata for successfully rebuilt current sizes.<\/li>\n<li>When a current image size changed dimensions, an older generated file can remain on disk. This version intentionally does not delete it automatically.<\/li>\n<li>\"All current sizes\" and \"Selected sizes\" are explicit rebuild modes and can regenerate files even when current metadata already exists.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>TinySharp Thumbnail Audit &amp; Repair does not send images, Media Library data, or usage telemetry to TinySharp or another external service. Scanning and thumbnail regeneration happen inside your own WordPress installation using WordPress core image APIs and the image editor available on your server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install the ZIP through Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open TinySharp Thumbnail Audit &amp; Repair in the WordPress admin menu.<\/li>\n<li>Run Scan &amp; Audit to understand the current Media Library state.<\/li>\n<li>Open Regenerate and use Repair detected issues for the safest targeted workflow, or choose another explicit mode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20does%20this%20plugin%20actually%20fix%3F\"><h3>What does this plugin actually fix?<\/h3><\/dt>\n<dd><p>It repairs WordPress image sub-sizes (commonly called thumbnails). This includes missing metadata entries, referenced thumbnail files that disappeared from disk, and current image sizes that still have dimensions from an older configuration.<\/p><\/dd>\n<dt id=\"why%20did%20a%20job%20generate%20zero%20thumbnails%3F\"><h3>Why did a job generate zero thumbnails?<\/h3><\/dt>\n<dd><p>That can be a successful result. If every processed image already has the required files and dimensions for the selected mode, TinySharp reports those images as already complete and does not regenerate unnecessary files.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20repair%20and%20missing%20only%3F\"><h3>What is the difference between Repair and Missing only?<\/h3><\/dt>\n<dd><p>Missing only creates sizes that are absent from metadata or whose referenced physical file is missing. Repair also rebuilds current size names whose stored dimensions no longer match the current WordPress configuration.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20delete%20old%20thumbnails%3F\"><h3>Does the plugin delete old thumbnails?<\/h3><\/dt>\n<dd><p>No. Version 1.0.1 reports historical\/unregistered image-size records but does not delete image files.<\/p><\/dd>\n<dt id=\"why%20are%20historical%20image-size%20records%20not%20automatically%20deleted%3F\"><h3>Why are historical image-size records not automatically deleted?<\/h3><\/dt>\n<dd><p>An old theme or plugin can stop registering a size while older posts still reference the generated file directly. TinySharp therefore treats unregistered size names as review signals, not automatic deletion candidates.<\/p><\/dd>\n<dt id=\"can%20i%20regenerate%20only%20missing%20thumbnails%3F\"><h3>Can I regenerate only missing thumbnails?<\/h3><\/dt>\n<dd><p>Yes. Missing only creates missing metadata entries and repairs metadata entries whose physical thumbnail file is gone.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20individual%20image%20sizes%3F\"><h3>Can I choose individual image sizes?<\/h3><\/dt>\n<dd><p>Yes. Choose Selected sizes and select the currently registered sizes you want to rebuild.<\/p><\/dd>\n<dt id=\"can%20i%20regenerate%20selected%20media%20library%20images%3F\"><h3>Can I regenerate selected Media Library images?<\/h3><\/dt>\n<dd><p>Yes. In Media Library list view, select image attachments and use the bulk action \"Repair\/regenerate thumbnails with TinySharp\". You can also use the row action on an individual image.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20one%20image%20fails%3F\"><h3>What happens if one image fails?<\/h3><\/dt>\n<dd><p>Normal per-image failures are recorded and the queue continues. If a request-level problem repeatedly blocks the same item, the job pauses and offers a \"Skip current image\" action so you can continue safely.<\/p><\/dd>\n<dt id=\"does%20tinysharp%20send%20my%20images%20to%20an%20external%20server%3F\"><h3>Does TinySharp send my images to an external server?<\/h3><\/dt>\n<dd><p>No. Thumbnail auditing and regeneration are local to your WordPress installation.<\/p><\/dd>\n<dt id=\"does%20thumbnail%20regeneration%20compress%20my%20original%20images%3F\"><h3>Does thumbnail regeneration compress my original images?<\/h3><\/dt>\n<dd><p>No. Thumbnail regeneration and image compression are different tasks. This plugin rebuilds WordPress image sub-sizes.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20show%20recommendations%20or%20review%20requests%3F\"><h3>Does the plugin show recommendations or review requests?<\/h3><\/dt>\n<dd><p>Only inside the TinySharp Thumbnail Audit &amp; Repair plugin dashboard, never as a site-wide admin notice. A related TinySharp Image Optimizer recommendation can appear after at least 20 thumbnail files were successfully generated, can be disabled in Settings, and has Maybe later and Don\u2019t show again controls. An honest-review request can appear only after at least 50 thumbnail files have been generated across successful work. Positive feedback is never required, and no referral or view tracking is used.<\/p><\/dd>\n<dt id=\"does%20repair%20mode%20delete%20the%20old%20file%20when%20dimensions%20changed%3F\"><h3>Does Repair mode delete the old file when dimensions changed?<\/h3><\/dt>\n<dd><p>No. It creates the current required size and updates attachment metadata after success. Older generated files are intentionally left in place in this release.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Renamed the plugin to TinySharp Thumbnail Audit &amp; Repair for a more distinctive WordPress.org identity.<\/li>\n<li>Updated the proposed WordPress.org slug, plugin folder, main file, text domain, and review URL to <code>tinysharp-thumbnail-audit-repair<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Removed the Plugin URI header so the plugin and author URLs are no longer identical during WordPress.org submission validation.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Resolved WordPress.org Plugin Check i18n translator-comment findings.<\/li>\n<li>Made AJAX nonce verification explicit in each callback.<\/li>\n<li>Removed unnecessary Domain Path header and aligned Tested up to formatting.<\/li>\n<li>Prefixed uninstall variables to follow WordPress naming conventions.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed a fatal error on the Regenerate screen caused by an invalid helper call when rendering conditional sections.<\/li>\n<li>Removed duplicate mode validation and kept the selected-size and active-job panels conditionally rendered with native HTML attributes.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Prepared the release package for WordPress.org submission.<\/li>\n<li>Aligned the plugin folder, main file, and text domain with the proposed <code>tinysharp-thumbnail-audit-repair<\/code> slug.<\/li>\n<li>Tightened request validation and sanitization for admin actions and settings.<\/li>\n<li>Restricted Media Library-wide scan and regeneration controls to site administrators (<code>manage_options<\/code>).<\/li>\n<li>Excluded all WordPress Site Icon auxiliary sub-size records from historical-size warnings, including records left by a previously selected Site Icon.<\/li>\n<li>Limited review eligibility to clean jobs that actually generated thumbnail files.<\/li>\n<li>Added transparent documentation for contextual related-plugin and honest-review cards.<\/li>\n<li>Kept all recommendations inside the plugin dashboard with dismiss and permanent opt-out controls.<\/li>\n<li>Limited the Overview dashboard to one contextual recommendation\/review card at a time.<\/li>\n<li>Reformatted bundled CSS as human-readable source for easier review and maintenance.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Added production-ready Repair mode for missing and outdated current thumbnails.<\/li>\n<li>Fixed regeneration of physically missing thumbnail files when stale metadata still exists.<\/li>\n<li>Added outdated-dimension detection based on the current WordPress image-size configuration.<\/li>\n<li>Added separate missing-metadata and missing-physical-file counters.<\/li>\n<li>Added missing source-file detection.<\/li>\n<li>Added clear healthy\/no-action-needed outcomes.<\/li>\n<li>Replaced ambiguous skipped reporting with Already complete.<\/li>\n<li>Added changed-attachment and partial-result counters.<\/li>\n<li>Added request locks to reduce duplicate processing from concurrent requests.<\/li>\n<li>Added Skip current image recovery for request-level blockers.<\/li>\n<li>Added issue samples and clearer historical\/unregistered size reporting.<\/li>\n<li>Excluded known Site Icon auxiliary sizes from misleading historical-size warnings.<\/li>\n<li>Changed review and related-plugin recommendations to require meaningful successful generated-thumbnail results.<\/li>\n<li>Added cumulative local success metrics and improved history reporting.<\/li>\n<li>Added configurable large source-image audit threshold.<\/li>\n<li>Updated UI copy and completion states for clearer real-world results.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial development build.<\/li>\n<\/ul>","raw_excerpt":"Scan, repair, and regenerate WordPress thumbnails with missing-file detection, outdated-size checks, resumable processing, and clear local history.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/340566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=340566"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tinysharp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=340566"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=340566"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=340566"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=340566"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=340566"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=340566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}