What Autoloaded Options Are
WordPress stores site settings in a database table called wp_options. Each row is a key-value pair — things like the site URL, active plugins list, widget configuration, and thousands of plugin settings. Some of these options are marked as “autoloaded,” which means WordPress loads them into memory on every single page request, before any theme or plugin code runs.
This design makes sense for settings that are genuinely needed on every request — WordPress needs to know its own URL, for example. The problem is that many plugins mark their options as autoloaded even when those options are only needed in specific contexts, like an admin settings page or a particular shortcode.
Why Autoloaded Data Grows
Over time, the total size of autoloaded options tends to grow as plugins are installed, configured, and sometimes removed without cleaning up their data. Common contributors include:
- Plugin settings — many plugins store their entire configuration as a single autoloaded option, even if the settings are only used in the admin area
- Transients in the options table — without a persistent object cache, WordPress stores transient data in the options table, and some of these entries are autoloaded
- Orphaned data — plugins that were deactivated or deleted may leave their autoloaded options behind
- Serialized blobs — some plugins store large serialized arrays (cached API responses, analytics data, license information) as autoloaded options
How Big Is Too Big?
A healthy WordPress installation typically has between 300 KB and 800 KB of autoloaded options. When the total exceeds 1 MB, it starts to add measurable overhead to every request — the database must read, transfer, and PHP must deserialize all of that data before the page even begins to render. Sites with 2 MB or more of autoloaded data often see a noticeable impact on Time to First Byte.
How to Identify the Problem
The most direct way to see what is autoloaded is with WP-CLI:
wp option list --autoload=on --format=table --fields=option_name,size_bytes --orderby=size_bytes --order=desc
This shows every autoloaded option sorted by size, making it easy to spot the largest contributors. Look for options belonging to plugins you have deactivated, transient data that should have expired, or settings that seem disproportionately large for what they store.
Plugins like Query Monitor also surface autoloaded option size in their database panel.
What You Can Do
The safest approach is to change specific options from autoloaded to not-autoloaded rather than deleting them. This tells WordPress to load them on demand instead of on every request. For orphaned options left behind by removed plugins, deletion is appropriate — but verify the plugin is truly gone first.
Installing a persistent object cache also helps, because it moves transient storage out of the options table entirely, preventing transient bloat from contributing to autoload size.
Further Reading
- get_option() reference (developer.wordpress.org) — How WordPress retrieves options and the role of the autoload flag.
- wp option list (developer.wordpress.org) — WP-CLI command reference for inspecting options.
