What this problem looks like
Autoload yes means WordPress loads the option on every request. Transients should use autoload no. Some migration and SEO plugins accidentally autoload huge serialized arrays.
Total autoload under 800 KB is healthy on most sites. Above 2 MB warrants immediate investigation.
Check total autoload weight
SELECT SUM(LENGTH(option_value)) AS autoload_bytes
FROM wp_options
WHERE autoload = 'yes';
Find the largest rows
Match option_name prefixes to plugins: _transient_, woocommerce_, rank_math_, elementor_, wpseo_.
SELECT option_name,
LENGTH(option_value) AS size_bytes,
autoload
FROM wp_options
ORDER BY size_bytes DESC
LIMIT 30;
Set autoload to no safely
For plugin cache blobs that should not load globally:
UPDATE wp_options
SET autoload = 'no'
WHERE option_name = 'example_plugin_cache_blob';
Use WP-CLI when available
wp option list --autoload=on --format=table
wp option update my_large_option 'value' --autoload=no
Prevent recurrence
After plugin updates, recheck autoload size monthly on busy sites. Object cache reduces repeated option queries but does not fix loading megabytes into PHP memory on cache miss.
When to stop DIY and hire help
Autoload bloat combined with multisite or custom option tables needs developer review. BugShield fixes runaway wp_options on production stores.