Description
Images are usually the heaviest thing on a WordPress page, and nobody notices until the site gets slow. Editors upload a 4 MB photo straight from a camera, the alt text is left empty, and months later you have hundreds of files to check one by one in the Media Library.
Bubuku Media Library shows the file size and alt text status of every image right in the Media Library, lets you filter and sort by both, and can stop oversized images before they are uploaded. It also sends a regular report by email and exposes your library to AI assistants through MCP.
Find the heavy images
- A file size column in the Media Library, color coded: green up to 100 KB, orange from 100 to 500 KB, red above 500 KB.
- Sort by size from largest to smallest, or filter by good, medium and high file size.
- A bulk action and a per-image button to calculate the size of images that were uploaded before the plugin was installed.
Fix missing alt text
- Filter images with or without alt text.
- Export the list to CSV, complete the alt text in a spreadsheet and import it back.
- The CSV export includes the caption, file size, format, URL, image date and the title, URL and SEO title and description of the post where the image is used.
Stop oversized uploads (new in 1.4)
- Set a maximum size for image uploads and block anything above it before it reaches the library, for every role.
- Write your own message for editors, with an optional supporting image, and see a live preview of the modal they will get.
Keep an eye on it without logging in
- A Media Library Summary widget on the Dashboard with image size distribution and alt text coverage.
- Weekly or monthly email reports, plus a manual “Send now” to any address.
- Image size and alt text checks in Tools Site Health.
Connect AI assistants with MCP
The plugin registers its tools as WordPress Abilities, so compatible assistants such as Claude Desktop, Cursor or Codex can audit your Media Library through the official WordPress MCP Adapter (the adapter is installed separately; the plugin does not ship its own MCP server). Each ability can be enabled or disabled individually and restricted to a minimum WordPress role, so permissions stay under your control.
- List attachments and review metadata and alt text coverage.
- Export media audits to CSV and read the summary metrics.
- Trigger reports and diagnostics.
More information (in Spanish) about how the plugin works: How to know if we have to reduce weight to the image and Alt SEO attribute
Who is it for? Content, marketing and SEO teams who want to keep images light and accessible without checking them one by one.
Quick Start
-
From your server (SSH), move the plugin folder to the plugins directory:
wp-content/plugins/bubuku-media-library/
-
Activate the plugin via the WordPress admin or using WP-CLI:
wp plugin activate bubuku-media-library
-
(Optional) Run the bulk action in Media > Library to calculate file sizes for existing images.
Evaluate results
Recommended Tools
– Lighthouse (in Chrome DevTools) — Analyze image weight and format, as well as the use of alternative text (ALT).
– WebPageTest — Check how images affect real-world load times.
– Squoosh — Compare visual quality and file size savings when optimizing images.
– WAVE Accessibility Tool — Verify whether images are missing ALT attributes or if the alternative texts are descriptive.
Evaluation Guidelines
– Identify images without ALT text or with excessive file size before running external tests.
– After replacing large images or adding ALT text, repeat your evaluations to confirm improvements.
– Evaluate both new and existing content — not only the most recent uploads.
– Define an internal size limit (for example, 200 KB per image) and monitor it regularly.
– Keep in mind that accessibility also affects SEO and overall user experience.
SUPPORT
Need help or have a suggestion?
Please use the official WordPress.org Support Forum for any issues related to the plugin.
Official Website
For additional information or to get in touch with the development team, please visit our official website.
Like the plugin?
Please leave a 5-star review and help others discover Bubuku Media Library.
ABOUT BUBUKU_CODE
We develop custom solutions for WordPress focused on performance, accessibility, and maintainable code. Our work includes plugins, themes, and integrations designed to improve the daily workflow of marketing and content teams.
Screenshots









Installation
- Unzip the plugin ZIP file on your computer.
- Copy or move the resulting folder to the “wp-content/plugins/” directory of your WordPress installation.
- Log in to the WordPress admin area and navigate to the “Plugins” screen.
- Locate “Bubuku Media Library” in the plugins list and click “Activate” to enable the plugin.
- (Optional) Go to the plugin settings page to configure report options (weekly, monthly or disabled) and other filters.
- Ensure your installation meets the requirements listed in the plugin header (WordPress and PHP versions) before using it in production.
FAQ
-
Can I stop editors from uploading very large images?
-
Yes. In the Settings tab, enable the upload size limit and choose a maximum size in MB. Image uploads above that size are blocked for every role, administrators included, and the editor sees your custom message. Other file types are not affected.
-
Does the plugin send data to external servers?
-
No. The plugin does not make requests to external services. Email reports are sent through your WordPress mail setup, only to the addresses you configure.
-
What does each color mean?
-
Green = <= 100KB (good), Orange = 100KB – 500KB (medium), Red = above 500KB (poor).
-
How can I recalculate sizes after optimizing images?
-
Use the “Calculate file size” Bulk Action in the Media Library, or click the recalculate button on individual attachments to update the stored file size.
-
Can I disable the weekly reports?
-
Yes — go to the plugin settings page and select the report frequency: Weekly, Monthly or Disabled.
-
Are generated reports compatible with my language?
-
The plugin uses WordPress localization files. If your language is available under the
languages/directory, the texts will be displayed in that language when WordPress is configured accordingly. -
How can I filter the Media Library by file size?
-
Use the size filter provided by the plugin in Media Library to select a predefined range or enter custom limits. You can also sort the size column to quickly find the largest or smallest files.
-
How can I find images that don’t have alt text?
-
Use the “Alt Text” filter in the Media Library to show items missing alternative text, or sort the Alt column to group empty values together for quick review.
-
How do I export the report to CSV?
-
Use the Export / Reports functionality in the plugin and click the “Export CSV” button. The generated CSV contains the following columns: ID, Image Name, Image URL, File Size, Format (MIME type), Alt Text, Caption, Image Date (Y-m-d H:i:s), Post Title, Post URL, Post SEO Title, Post SEO Description.
The SEO columns are populated automatically when one of the following SEO plugins is active: Yoast SEO, Rank Math, All in One SEO (AIOSEO), SEOPress or The SEO Framework. The exported value is the raw text configured by the user (variables like %%title%% are not resolved).
-
Can you show an example CSV row?
-
Example (CSV columns separated by commas):
123,"my-image.jpg","https://example.com/wp-content/uploads/2024/01/my-image.jpg","256.34 KB","image/jpeg","An example alt text","An example caption","2024-01-10 12:34:56","Example Post","https://example.com/example-post/","Example Post – My Site","Short description of the example post." -
Which encoding is used and how to open the file in Excel?
-
The plugin adds a UTF-8 BOM to the CSV for better compatibility with Excel. If Excel shows garbled characters, import the CSV using Excel’s Data From Text/CSV and choose UTF-8 encoding.
-
Are there any permission or security checks for export?
-
Yes — the export checks that the current user has the
upload_filescapability and verifies a nonce (bml_filter_nonce) to prevent CSRF. If the checks fail, the export is blocked. -
How does the MCP connection work?
-
The plugin does not include its own MCP (Model Context Protocol) server. It registers its tools as WordPress Abilities, and the official WordPress MCP Adapter publishes them so compatible AI assistants and developer tools can securely access selected media library capabilities through a single endpoint. The MCP Adapter must be installed and active, and WordPress 6.9 or later is recommended because the Abilities API is part of core from that version; the Tools & Abilities tab shows the server URL to use.
-
Which AI tools are compatible?
-
Any client that supports the Model Context Protocol (MCP), including Claude Desktop, Cursor, Codex and other compatible applications.
-
Can I control what AI assistants can access?
-
Yes. Each MCP ability can be enabled or disabled individually and you can define the minimum WordPress role required to execute it. This allows you to safely connect AI assistants while keeping permissions under your control.
Reviews
Contributors & Developers
“Bubuku Media Library” is open source software. The following people have contributed to this plugin.
Contributors“Bubuku Media Library” has been translated into 2 locales. Thank you to the translators for their contributions.
Translate “Bubuku Media Library” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.4.2
- Abilities now declare whether they only read data (annotations) and describe their output (output schema) for the summary and attachment tools, so MCP clients can use them more reliably.
- Read-only abilities called directly through the REST
/runendpoint must now use GET (POST answers 405). MCP clients are not affected. - Security: tools and exports no longer reveal the title or URL of a draft or private post to users who cannot read it, and the “Get attachment” tool no longer returns attachments the user cannot read.
- Security: the report, summary refresh, CSV export and ALT import tools are now rate limited per user, and “Send report now” accepts at most 10 explicit recipients per request.
1.4.1
- Reorganized the admin screen into dedicated tabs for clearer navigation and a better user experience.
- Renamed the “Settings” tab to “Overview”; it remains the default view and keeps the media summary and email notification settings.
- Moved the CSV export and import cards to a new “Export/Import” tab.
- Added a new “Settings” tab with an optional upload size limit for images, blocking oversized files with a customizable message before they reach the library.
1.4.0
- Added Site Health integration: alt text coverage, image file size, file size data coverage and email report/cron checks now appear under Tools Site Health Status.
- Added a “Bubuku Media Library” section to Tools Site Health Info with plugin version, audit summary and report settings (no email addresses).
- All Site Health checks read from the existing summary snapshot only — no extra database queries are run when visiting Site Health.
- Security hardening: added a per-object authorization check on bulk ALT update flows, a configurable capability floor for tools, safer defaults for tools that write to other users’ data or send email, CSV export sanitization against formula injection, and rate limiting on the report/export endpoints. Also fixed an unauthenticated dashboard widget information leak and hardened internal REST route origin checks.
1.3.1
- CSV export: added new “Caption” column (image caption/legend) placed after “Alt Text”. Import ignores the column without changes.
- Abilities:
list-attachmentsnow includes thecaptionfield in every attachment result.
1.3.0
- Unified plugin configuration in one admin screen with internal tabs.
- Added a new “Tools & Abilities” tab in the main settings page.
- Migrated per-tool abilities management to the React admin app.
- Added REST endpoints to load and save per-tool enabled/role settings.
- Fixed a REST authorization bypass in the notification settings endpoint by enforcing capability and nonce checks before updates.
- Refreshed AI Abilities panel styles to match the current admin UI system.
1.2.2
- CSV export: added two new columns, Post SEO Title and Post SEO Description, extracted from the active SEO plugin on the site.
- Supported SEO plugins: Yoast SEO, Rank Math, All in One SEO (AIOSEO), SEOPress, The SEO Framework. If no supported SEO plugin is active, both columns are exported empty.
- Redesigned email report layout and styles.
- Added token-based URL to preview the email report in the browser.
- Added manual report send field in settings: send the report to custom email addresses on demand.
- Minor support and functionality improvements.
- Improved performance.
1.2.1
- Fix: Correctly load assets (CSS/JS).
1.2.0
- Moved the export block before the import block.
- Fix: calculate button in the Media Library.
- Fix: corrected calculation for images with and without ALT text.
- Updated screenshots.
1.1.9
- Added media summary dashboard panel showing image size distribution and ALT accessibility stats.
- Improved summary performance by using a persisted snapshot with async refresh and cache invalidation on media updates.
1.1.8
- Added CSV import functionality for image ALT texts.
- Moved plugin page from Settings to Tools menu.
- UI/UX improvements on the plugin administration page.
1.1.7
- Updated banners and icons for WordPress.
1.1.6
- Documentation: small README update.
1.1.5
- Added CSV export functionality.
1.1.4
- Replaced number_format_i18n() with an integer return in calculate_img_alt_empty for a plain alt text count.
1.1.3
- Improve performance and simplify SQL queries.
- Implemented caching for the calculated number of images by size and those lacking alt attributes.
1.1.2
- Added security and performance improvements
- Fix some PHP errors.
- Compatibility: WordPress 6.8 – WordPress 6.8.1.
1.1.1
- fix widget texts
- Compatibility: WordPress 6.5 – WordPress 6.5.3.
1.1.0
- Add dashboard widget to display media library summary
- Remove friendly url functionality in image file names. Gave problems with image optimization plugins.
1.0.9
- Remove “Weekly” in informative texts.
- Fix image URL in metadata[‘file’].
1.0.8
- Default media library reporting was disabled, and modifications were made to the email report texts.
- Configuration options for sending the report: weekly, monthly or deactivated.
- Fix error when renaming images to lowercase.
1.0.7
- Make filename URLs and thumbnail URLs friendly.
- Updates image size value when edited.
- Add button on image to recalculate size.
- Fix API error when WordPress is configured to end with a slash.
- Compatibility: WordPress 6.1 – WordPress 6.4.2.
1.0.6
- Compatibility: WordPress 6.1 – WordPress 6.3.
1.0.5
- Add weekly reports that are sent by email with the optimization status of the images and alternative text.
- Add plugin settings page.
1.0.4
- Compatibility: WordPress 6.1 – WordPress 6.2.
- Fix some PHP errors.
- Add WordPress JavaScript dependencies.
1.0.3
- Add a Bulk Action to calculate file size in WordPress admin.
- Improvements in measurement ranges.
- fix: Internationalization Issues.
1.0.2
- Rename variables.
- Correctly filter by file size.
- Styling WordPress Button.
1.0.1
- Add calculate message to sort and filter.
- Add ‘This media is not supported’ message in the file size column.
1.0.0
- Initial release.
