Description
Have images on your server but they don’t appear in your Media Library?
Media Library Recovery helps you recover lost media files in these common scenarios:
- After site migration – Moved from localhost to production and media is missing
- After hosting transfer – Changed hosts and files didn’t sync properly
- After database restore – Restored from backup but lost media library entries
- Orphaned files – Files exist in
wp-content/uploadsbut don’t show in WordPress - Development/staging sync – Pulled production DB to staging and lost media
- Broken image links – Images show on server but broken in posts/pages
The plugin scans your uploads folder, finds orphaned media files, and rebuilds the WordPress database entries to restore them to your Media Library.
How it works:
- Navigate to Media > Media Recovery
- View all orphaned files in the Media Explorer
- Select files to recover (10 at a time in free version)
- Click “Media Recovery” and let the plugin rebuild your library
- Check Media > Library to confirm recovery
No files are uploaded or overwritten – the plugin only reconnects existing files to your database.
USAGE
Once the plugin is uploaded and activated:
- Navigate to Media > Media Recovery in the main menu to open the Media Explorer.
- Use the options to show or hide existing image files already found in your server and database.
Here are the steps to use Media Library Recovery:
- Open the Media Explorer.
- Select the image files you want to recover.
- Click the Media Recovery… button and wait for the images to rebuild.
- Go to Media > Media Recovery to confirm the images were recovered successfully.
Note: The plugin does not upload or overwrite any images on the server. It only scans for image files in the default WordPress uploads folder.
FEATURES & LIMITATIONS
The Media Library Recovery plugin allows you to:
- Restore and recover images after database failure or reset if the files are still on your server.
- Quickly rebuild your Media Library with the custom Media Explorer.
- Hide existing image files already in the Media Library.
- Display unique icons for existing, recoverable, selected, and unavailable image files for easy recovery management.
Known Issues and Limitations
- Original image files with dimensions in their file names (e.g.,
icon-128x128.png) won’t appear in the Media Explorer. - You can recover a maximum of 10 images at a time.
- Image file sizes must not exceed 2MB to avoid exceeding the
max_execution_timeon most servers.
DETAILED DOCUMENTATION
Find step-by-step setup guides, usage instructions, demos, videos, and insights on the Media Library Recovery Pro page.
MEDIA LIBRARY RECOVERY PRO
If you’re using the free version from WordPress.org and want Pro features, you can purchase the premium version on the Media Library Recovery Pro website.
Here are some features included in the Pro version:
- Support for all media types, not just images.
- Customize the default
wp-content/uploadspath. - Recover unlimited files at once.
- WordPress Multisite compatibility.
- Built-in uploads backup folder feature.
- Enhanced performance for managing larger files and faster recovery.
- Pro media file explorer with advanced search, filter, and sort options.
- Priority support and updates for one year.
Screenshots
Installation
Installing the plugin is straightforward. Contact support if you encounter any issues.
Installation from WordPress
- Go to Plugins > Add New.
- Search for Media Library Recovery.
- Install and activate the plugin.
- Click Settings or go to Media Recovery in the menu.
Manual Installation
- Upload the
wp-media-recoveryfolder to/wp-content/plugins/. - Go to Plugins.
- Activate the Media Library Recovery plugin.
- Click Settings or navigate to Media Recovery in the menu.
After Activation
- Select the images to recover and click Media Recovery….
- Go to Media > Library to view the restored images.
FAQ
Visit the Support page to share your questions or requests.
We usually respond to tickets within a few days.
Feature requests are added to our wish list and considered for future updates.
-
My images disappeared after migrating my site. Can this help?
-
Yes! This is one of the most common use cases. After migration, files often exist in your uploads folder but the database entries are missing. Media Library Recovery scans your files and rebuilds the database entries.
-
I transferred to a new host and lost my media library. What do I do?
-
Install Media Library Recovery, go to Media > Media Recovery, and the plugin will show you all files that exist on your server but are missing from your database. Select and recover them in batches of 10.
-
How is this different from a backup plugin?
-
Backup plugins restore your entire site. Media Library Recovery specializes in recovering media files when they exist on your server but are missing from your WordPress database – common after migrations, transfers, or partial restores.
-
Why can I only recover 10 files at a time?
-
The free version processes 10 files per batch to prevent server timeouts. You can run multiple batches to recover unlimited files total. The PRO version offers unlimited batch sizes and background processing for large libraries.
-
Will I get duplicate files?
-
No, the plugin won’t duplicate or overwrite existing image files.
-
Is Media Library Recovery compatible with WordPress Multisite?
-
The free version doesn’t support WordPress Multisite. For multisite compatibility, check out Media Library Recovery Pro.
-
Which folders are scanned for lost media?
-
The free version scans only the default
wp-content/uploadsfolder. To scan custom upload folders, use Media Library Recovery Pro. -
Can I recover all media files?
-
The free version only restores and rebuilds images. For support with more file types, check out Media Library Recovery Pro.
-
Do you offer additional support or customization?
-
Yes, feel free to send your request via the Media Library Recovery Pro website.
Reviews
Contributors & Developers
“Media Library Recovery – Restore Lost Image Files” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Media Library Recovery – Restore Lost Image Files” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.8.1
- Security – Add nonce verification to wp-pointers.php AJAX handler to prevent CSRF attacks
- Security – Add nonce and capability checks to mlr_reset_settings() function
- Security – Fix missing translation functions for wp_die() permission messages
- Security – Fix missing translation for wp_send_json_success() message in pointer dismissal
- Fix – Replace string concatenation with sprintf() and proper escaping in thumbnail output
- Fix – Remove unnecessary esc_sql() usage in get_posts() query (WordPress handles internally)
- Fix – Change pagination parameter validation from sanitize_text_field() to absint() for proper integer handling
- Fix – Add translation functions to all hardcoded placeholder attributes in settings fields
- Fix – Make “Reload…” button text and “No more results” pagination message translation-ready
- Update – Add comprehensive file-level DocBlocks to all 38 PHP files following WordPress standards
- Update – Improve code documentation for better developer experience and maintenance
- Update – All modified files validated with PHP syntax checking
1.8.0
- New – Add Dashboard Widget showing media recovery statistics and quick actions
- New – Add comprehensive onboarding notice for first-time users with quick start guide
- New – Add AJAX handler for dismissing onboarding notice
- Update – Improved dashboard integration with recovery status and file counts
- Update – Better visual icons and styling for onboarding steps
- Update – Compiled and minified CSS/JS assets for improved performance
- Fix – JavaScript typo in mlr-admin.js causing potential issues
- Fix – Added proper escaping and sanitization throughout new features
1.7.2
- New – Show the improved plugin media explorer and add it as frame to the existing one
- New – Extend the plugin page show up all the options
- New – Add complete navigation with links to the pro
- Update – Add additional style for the media explorer presentation
- Update – Language file (.pot)
- Update – Language file (.pot) header text
- Fix – Minor Stylesheet inconsistencies fixes
- Fix – Update JS using webpack and address minor fixes
1.7.1
- New – Add WP pointer to inform first time users about Media Explorer tool
- Update – Language file (.pot)
- Update – Language file (.pot) header text
1.7.0
- Fix – Add proper sanitization missing for
register_setting() - Fix – Added stricter nonce verification using
check_admin_referer()andcheck_ajax_referer()instead of manual checks; Introduced capability checks (current_user_can( 'manage_options' )) before allowing dismiss or update actions; Ensured unauthorized users cannot bypass dismissal or settings updates - Update – Remove
load_plugin_textdomain()has been discouraged since WordPress version 4.6
1.6.9
- Update – Remove the bitly.com links with raw and direct links with analytics params
1.6.8
- Fix – Notice translation loading for the
wp-media-recoverydomain was triggered too early
1.6.7
- Update – Tested and confirmed compatibility with the latest PHP and WordPress
1.6.6
- Update – Compatibility tested with WordPress 6.8
1.6.5
- Update – Performance and optimization compatibility
- Update – Improve overall code quality
- Fix – Minor JS and CSS fixes
1.6.4
- Update – Change year from 2024 -> 2025 all over
- Fix – Minor JS and CSS fixes
1.6.3
- Update – Development env setup and CSS assets updates
1.6.2
- Update – Revise all plugin text and translators
- Update – Replace all
str_replace( '\\', '/', '')withwp_normalize_path() - Fix – CSS adjustments and fixes
1.6.1
- Update – Performance and optimization compatibility
1.6.0
- New – Add compact mode toggle under settings option
- Update – Compatibility check with WordPress 6.7
- Update – Language file (.pot)
- Update – Language file (.pot) header text
- Update – Change license files to use GPLv3
Check out the complete changelog on our Media Library Recovery website.






