Hosting & Server

Autoloaded Options in WordPress

Intermediate
Medium

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.

Mochyon Lightspeed detects this automatically. It measures the total size of autoloaded options and flags when they exceed a healthy threshold.

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

Related Articles

Autoloaded options add to the initial database query that runs on every request.
Removing unused plugins also removes their autoloaded options, reducing per-request overhead.

Need help with this?

Mochyon specializes in WordPress Core Web Vitals optimization. We diagnose, fix, and verify — with a named human accountable for the result.

Get help from Mochyon