AAA Option Optimizer
AAA Option Optimizer
Description
This plugin tracks which of the autoloaded options are used on a page, and stores that data at the end of page render. It keeps an array of options that it has seen as being used. On the admin page, it compares all the autoloaded options to the array of stored options, and shows the autoloaded options that have not been used as you were browsing the site. If you’ve been to every page on your site, or you’ve kept the plugin around for a week or so, this means that those options probably don’t need to be autoloaded.
How to use this plugin
Install this plugin, and go through your entire site. Best is to use it normally for a couple of days, or to visit every page on your site and in your admin manually. Then go to the plugin’s settings screen, and go through the unused options. You can either decide to remove an unused option (they might for instance be for plugins you no longer use), or to set it to not autoload. The latter action is much less destructive: it’ll still be there, but it just won’t be autoloaded.
Installation
- Search for AAA Option Optimizer on the repository.
- Install the plugin.
- Wait a week or so. Or, if you’re in a hurry, click around on pages on your site, be sure to try and hit every page on your site and in your admin.
- Go to the plugin’s admin page and optimize your option usage.
Screenshots
Faq
Because the plugin needs to measure options being loaded, it benefits from being loaded itself first. As WordPress loads plugins alphabetically,
starting the name with AAA made sense.
Yes!! Backup your database.
Please use our GitHub for reporting bugs or making code suggestions. Feel free to use the forums for asking questions too, of course.
For security issues, please see the next question.
You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team help validate, triage and handle any security vulnerabilities. Report a security vulnerability.
Please do a pull request via GitHub on this file in the plugin.
Reviews
A very useful plugin!!
By momo-fr on August 30, 2025
Allows you to clean up the options on sites with a long history of themes and plugins installations.
Very useful.
Requested options that do not exist question
By mattyscribs on August 29, 2025
Under "Requested options that do not exist", I'm not sure to trust setting these to false. Is there a way to revert any actions I take. How do I know if these actions are actually needed or do I just trust this plugin's assessment that they are basically broken and so can be set to false?
SOME EXAMPLES:
Option: advancedexcerpt_length | Source: Unknown | # Calls: 904564
Option: analyst_accounts_data | Source: Unknown | # Calls: 24907
Option: analyst_notices | Source: Unknown | # Calls: 24907
Option: code_embed_version | Source: Unknown | # Calls: 904564
Option: https_migration_required | Source: Unknown | # Calls: 904564
Thanks for your help
A joke!!!
By Oxford Metadata Ltd (oxfordmetadata) on July 31, 2025
I wonder how on earth a plugin tha promises to optimize the wp_options tables, stores 25MB of data in the option_value !!!!
Maybe the guy who developed it does not understand the fundamentals of the internal database optimizers but such a huge deviation, totally ruins MariaDBs/MySQL internal optimizer. You see optimizers work on the assumption that in a table, the fields have somewhat related sizes.
For more details please go to MariaDB Jira and check for cases MDEV-34097 and MDEV 32663
If you add records with huge sizes (say > 100k) in wp_options table where each option is usually less than 30Bytes, then you have an issue. In our case the issue was caused by the very plugin that we used to monitor our options (that are by and large incorrect).
Avoid it at all costs.
Very helpful
By adcapaust on July 10, 2025
Easily identified what was bloating my options table and allowed to set it to not autoload. Thank you!
Strange behavior
By esquipulas on June 13, 2025
Installed it some times ago, worked well. Since some days generate a huge log saturating my server space disk (millions of lines ...). Had to deactivate it.
Please update to new WP version
By perelovski on May 8, 2025
As someone else mentioned before the plugin was working nice, but since WP change the things in the new versions, we cannot use it safely anymore. Can you please update to the latest WP version?
Thank You 🙂
*edit: Working well with the latest version. Keep up the good work!
Finally something that works
By Basta (Backswim) on April 12, 2025
Very easy to use and it works very well.
Doesn't work as expected and identifies used options as unused
By mtg169 on March 24, 2025
Doesn't work as expected and identifies numerous used options as being unused, resulting in potential unintended data loss/destruction.
On initial install and when resetting data, it suggests wp_user_roles is unused. Deleting this option will make a site inaccessible to administrators as this is an imperative option for user roles.
While testing, there are also JS errors for the "remove autoload" and "delete" actions. This happens when attempting to delete:
Uncaught TypeError: Cannot read properties of null (reading 'nTr')
at S (datatables.min.js?ver=2.0.1:16:25194)
at U.<anonymous> (datatables.min.js?ver=2.0.1:16:51287)
at U.iterator (datatables.min.js?ver=2.0.1:16:46398)
at U.<anonymous> (datatables.min.js?ver=2.0.1:16:51247)
at U.draw (datatables.min.js?ver=2.0.1:16:47678)
at updateRowOnSuccess (admin-script.js?ver=1742829685:240:53)
at Object.success (admin-script.js?ver=1742829685:221:27)
at c (jquery.min.js:2:25304)
at Object.fireWith [as resolveWith] (jquery.min.js:2:26053)
at l (jquery.min.js:2:77782)
The options appear to still be deleted, but the table doesn't update.
Works well
By Ville Vatola (ratasdesignworks) on March 17, 2025
Excellent plugin to make it easier to remove autoloaded options. It would be great to select multiple items for operations though.
Finally a Decent Options Plug In
By multigreg1 on February 4, 2025
Great work and plug in by the master of WP - thank you thank you thank you. Easy to use and quick to understand.
Changelog
1.5.1
- Add “select all” checkbox.
- Fix table filtering by Source column.
1.5.0
- Prefix the Datatables script slug to avoid conflict with other plugins.
- Add MainWP to known-plugins list
- Add SliceWP to known-plugins list
- Add more known prefixes for WooCommerce options
- Fixed a bug in bulk-actions
1.4.0
- Performance improvements.
- Added bulk-actions to allow optimizing & deleting options in bulk.
- Added more known plugins.
1.3.2
- Performance fix: Do not autoload the plugin option.
1.3.1
- Fix JS error when deleting an option.
1.3
- Make plugin work with the latest autoload changes.
1.2.1
- Fix error in
known-plugins.json. - Prevent fatal error when there’s an error in
known-plugins.json.
1.2
Enhancements:
- Overhaul of the UX, implementing proper tabs, better buttons and more.
- Added a new “All options” tab, which, when you hit the button, loads all the options from the database and allows you to manage them.
- Added a “Reset data” button which resets the tracking data.
- Added a link to the Optimize Options page from the Plugins page.
- Much improved recognition of core WordPress options, themes and plugins under “Source”, thanks in part to pull requests from Rogier Lankhorst and system4pc.
- You can now also filter all tables by Source so you can more easily find the options you’re looking for.
- Many code and speed improvements under the hood, including adding a class autoloader and some i18n fixes.
1.1.1
Implement the missing functionality to create an option with value false when it’s being loaded but doesn’t exist.
1.1
The plugin now recognizes plugins from which the options came (thanks to a great pull by Rogier Lankhorst). If you’re a plugin developer and want your plugin’s options
properly recognized, please do a pull request on this file.
Small enhancements:
- Column width is now automatically determined which leads to better spacing.
- Action buttons are now centered in their columns.
Bugs fixed:
- If you removed autoload from or deleted an option, it’d be removed from the table but would be back when you paginated, that’s fixed – thanks to Jono Alderson for reporting.
- Fixed sorting by filesize by moving the
KBto the table heading, so that you can now properly sort numbers. - Fixed issue where an empty option would result in weird size output.
1.0.2
- Fixed a bug where the buttons wouldn’t work in a paginated state.
- Show the value of an option in a
popover, as suggested with a great pull request by @rogierlankhorst.
1.0.1
Fixed an error with values that are objects, not strings, which also caused sorting not to work for some people.
1.0
Initial release on GitHub and WordPress.org.

