TL;DR
- The Problem: Most WordPress plugins use
autoload=trueby default, loading settings on every page whether needed or not - The Impact: 50+ plugins doing this = 2-4 MB of data loaded on every page = slow sites = poor SEO
- The Solution: Use
autoload=falsefor settings only needed on specific pages - The Misconception:
autoload=falsedoes NOT make options inaccessible – they work everywhere, just load differently - The Decision: If your option is used on less than 50% of pages, use
autoload=false - The Stakes: This isn’t just about your plugin – it’s about being a responsible WordPress citizen
The 100-Byte Decision That Changed Everything
Recently, I was developing a Google Maps plugin for WordPress. I hit a seemingly simple line of code:
add_option('my_settings', $default_settings, '', true); // What should this be?
That fourth parameter, the autoload flag. Should it be true or false?
“Does it really matter?” I thought. “It’s just 100 bytes of settings.”
Spoiler alert: It matters. A lot.
And not just for my plugin. For every site running WordPress.
What Is Autoload? (The HTML Analogy That Finally Made It Click)
Think of WordPress autoload like the loading attribute in HTML images:
<!-- Load immediately when page starts (eager) -->
<img src="hero.jpg" loading="eager">
<!-- Only load when user scrolls near it (lazy) -->
<img src="footer-image.jpg" loading="lazy">
WordPress options work the exact same way:
// autoload=true: Load immediately when WordPress starts (eager)
add_option('my_key', $value); // autoload=true by default
add_option('my_key', $value, '', true); // Same as above
// autoload=false: Only load when you call get_option() (lazy)
add_option('my_key', $value, '', false);
Same concept, different context:
- Eager/Autoload=true = Load upfront, ready when needed (default behavior)
- Lazy/Autoload=false = Load only when actually called (performance optimization)
Just like you opt-in to loading="lazy" for images that don’t need immediate loading, you should opt-in to autoload=false for WordPress options that aren’t needed on every page.
Important: autoload=true is the default for WordPress options. You must explicitly set false to optimize.
The Common Misconception (That’s Costing You Performance)
Here’s what many developers get wrong:
“If I use
autoload=false, my option won’t work in admin/frontend/AJAX!”
This is completely false.
Both autoload=true and autoload=false work perfectly in:
- ✅ Admin pages
- ✅ Frontend pages
- ✅ AJAX requests
- ✅ Everywhere
get_option()is called
The only difference is when WordPress loads the data. That’s it.
What Actually Happens Behind the Scenes
Let me show you what WordPress does on every page load.

With Autoload=TRUE (The Eager Path)
Step 1: WordPress initialization (happens on EVERY page)
wp_load_alloptions(); // WordPress calls this automatically
Step 2: One big database query
SELECT option_name, option_value
FROM wp_options
WHERE autoload = 'yes';
This grabs everything:
- Site URL, theme settings, active plugins list
- Your plugin settings ← Even if not needed on this page!
- Every other plugin’s autoloaded options
Step 3: When you call get_option()
$settings = get_option('my_settings');
// Found in cache! Returns immediately.
// No database query needed.
Cost: Loaded on 100% of pages, whether you need it or not.
With Autoload=FALSE (The Lazy Path)
Step 1 & 2: Same initialization, but your settings are NOT included in the big query
Step 3: When you call get_option() for the first time
$settings = get_option('my_settings');
// WordPress does this:
// 1. Check cache → NOT found
// 2. Run query: SELECT option_value WHERE option_name = 'my_settings'
// 3. Cache it for the rest of this page load
// 4. Return the value
Cost: One small query, but only on pages where you actually use the option.

My Plugin’s Real-World Scenario
Back to my Google Maps plugin. Here’s the reality:
What it does:
- Displays interactive maps via shortcode
- Settings: API key, default zoom, map height (~100 bytes total)
Where it’s used:
- ✅ Contact page
- ✅ Locations page
- ✅ Maybe 1-2 other pages
Where it’s NOT used:
- ❌ Homepage
- ❌ Blog posts (95% of site traffic)
- ❌ About page
- ❌ Product pages
- ❌ Most of the site
Question: Why would I load map settings on every blog post when there’s no map?
Answer: I shouldn’t. And neither should you.
The Math That Changed My Mind
Let’s say a typical site gets 10,000 monthly page views:
- 100 views to Contact page (has map)
- 9,900 views to other pages (no map needed)
With autoload=TRUE:
- 10,000 pages load the settings
- 9,900 pages loaded it for nothing
- Wasted resources: 99% of the time
With autoload=FALSE:
- 100 pages load the settings (when actually needed)
- 9,900 pages don’t waste time loading them
- Efficiency: 99% improvement

The Real Problem: Collective Impact
Here’s where it gets serious.
Over my career, I’ve worked with clients using 10 to 80+ plugins on their sites. Using multiple plugins isn’t bad, that’s the beauty of WordPress.
But here’s the problem:
If every plugin developer thinks “My 100 bytes won’t hurt!” and uses autoload=true…
Plugin 1: 100 bytes (autoload=true)
Plugin 2: 200 bytes (autoload=true)
Plugin 3: 150 bytes (autoload=true)
...
Plugin 50: 300 bytes (autoload=true)
= 2-4 MB of data loaded on EVERY page
= 180ms+ just to load options
= Slow site experience
= Poor Core Web Vitals
= Lower Google rankings

It’s not about your plugin alone. It’s about the collective approach that 50+ plugins take.
Why This Matters to Your Clients
The SEO Connection
Google’s Core Web Vitals directly affect rankings:
Bloated autoload
→ Slow database query
→ Delayed page start
→ Poor LCP (Largest Contentful Paint)
→ Lower rankings
Your plugin could be the reason a client’s site doesn’t rank well.
The Business Impact
Slow sites mean:
- Higher bounce rates
- Lost conversions
- Poor user experience
- Lower search rankings
- Lost revenue
Studies show:
- 1 second delay = 7% reduction in conversions
- 53% of mobile users abandon sites that take over 3 seconds to load
Performance optimization isn’t just technical, it’s about your client’s bottom line.
How to Check Your Site’s Autoload Size
Install the Autoload Checker plugin to see your autoload data:
- Install and activate the plugin
- Go to Tools → Autoload Checker in WordPress dashboard
- Review:
- Total Autoload Size at the top
- Table of all autoloaded options sorted by size
- Easy identification of bloated options
What the numbers mean:
| Size | Status | Action Needed |
|---|---|---|
| < 800 KB | Healthy | Keep monitoring |
| 800 KB – 3 MB | Warning | Consider optimizing |
| > 3 MB | Problem | Urgent optimization needed |
WordPress experts recommend keeping autoloaded data between 300 KB and 1 MB for optimal performance.
Why This Matters to Us as Developers
Amateur Thinking:
- “It works on my test site, ship it!”
- “100 bytes won’t hurt!”
- “Just use
autoload=trueeverywhere” - Doesn’t think about scale or collective impact
Professional Thinking:
- “Will this scale to 100,000 pageviews?”
- “If all plugins think this way, what’s the collective impact?”
- “Is this option needed on most pages? If not, use
false.” - Understands responsibility to the ecosystem
Most developers don’t know this. You do now.
When you can explain to clients:
- “I used
autoload=falsebecause your shortcode only appears on 2 pages” - “This will scale better as your traffic grows”
- “I’m being a good WordPress citizen”
Clients see you as an expert, not just a coder.
The Ecosystem Responsibility
WordPress powers 43% of the web.
If we plugin developers don’t care about performance:
- WordPress gets a reputation for being “slow”
- People switch to other platforms
- Ecosystem suffers
- Our business opportunities shrink
If we ARE responsible:
- WordPress sites run fast
- Platform reputation improves
- More people use it
- More opportunities for everyone
You’re not just building a plugin. You’re contributing to the platform’s future.
How to Make the Right Decision
Ask yourself ONE question:
“On how many pages is this option used?”
| Usage | Autoload Setting | Example |
|---|---|---|
| 80%+ of pages | TRUE | Theme colors, site logo, footer contact info |
| Less than 50% of pages | FALSE | Shortcode settings, widget configs, Google Maps key |
| Only in admin | FALSE | Plugin activation flags, admin preferences |
| Large data (> 1KB) | FALSE | No matter what! Cached data, serialized arrays |
Golden Rule: Default to FALSE unless you have a strong reason to use TRUE.
Why? Most plugins are feature-specific (not site-wide). Being conservative = being a good WordPress citizen.
Use Autoload=TRUE When:
- Option is needed on every page (or most pages)
- Option is accessed in
wp_heador early in page load - Option is very small (< 50 bytes)
- Performance on every page is critical
Examples: Theme settings, critical plugin configs
Use Autoload=FALSE When:
- Option is only needed on specific pages
- Option is only used in admin dashboard
- Option is large (> 1KB)
- Option is accessed less frequently
Examples: Widget settings, shortcode configs, module options
Code Examples: Doing It Right
The Default (Usually Wrong):
// Autoloads on every page by default
add_option('my_google_maps_settings', $defaults);
The Optimized Way:
// Only loads when you call get_option('my_google_maps_settings')
add_option('my_google_maps_settings', $defaults, '', false);
Document Your Decision:
/**
* Google Maps settings
* autoload=false because:
* - Only used on 2-3 pages (contact, locations)
* - Not needed on blog posts (95% of traffic)
*/
add_option('my_google_maps_settings', $defaults, '', false);
This comment shows you thought about it, that’s professional.
Final Thoughts
Every line of code you write has impact, not just on your plugin, but on every page load, every user experience, and the WordPress ecosystem as a whole.
That fourth parameter in add_option()? It’s not just a boolean.
Key Takeaways:
- Default to
autoload=falseunless you have a strong reason fortrue - Think about scale – 100,000 pageviews, not just your local test site
- Consider collective impact – if 50 plugins make the same choice, what happens?
- Document your decision – add a comment explaining why
- Test at scale – use tools like Autoload Checker
- Be a good WordPress citizen – we’re all in this together
Have you checked your plugin’s autoload settings? Let me know what you found – I’d love to hear your experience in the comments below.
Leave a Reply