Automatisch geladene Optionen – Autoloaded-Optionen
Du hast ein Problem in deiner WordPress Installation mit folgender Meldung?
Automatisch geladene Optionen können die Leistung beeinflussen. Automatisch geladene Optionen sind Konfigurationseinstellungen für Plugins und Themes, welche bei jedem Seitenaufruf in WordPress automatisch geladen werden. Sind zu viele automatisch geladene Optionen vorhanden, können sie deine Website verlangsamen. Deine Website hat 1900 automatisch geladene Optionen (Größe: 1500 kB) in der Optionstabelle, was dazu führen kann, dass deine Website langsam ist. Du kannst die Optionen, die von deiner Datenbank automatisch geladen werden, überprüfen und alle Optionen entfernen, die von deiner Website nicht mehr benötigt werden.
Hier ist die Vorgehensweise, um das Problem zu erfassen und zu beheben:
Um die automatisch geladenen (autoloaded) Optionen in WordPress zu optimieren, ist es entscheidend, die wp_options-Tabelle regelmäßig zu überprüfen und zu bereinigen, damit nicht zu viele oder zu große Optionswerte auf jeder Seitenanfrage geladen werden. Zu viele autoloaded Optionen verursachen Performance-Probleme, da sie bei jedem Seitenaufruf pauschal in den Speicher geladen werden – unabhängig davon, ob sie tatsächlich benötigt werden.
Was sind autoloaded Optionen?
- In der Tabelle wp_options gibt es das Feld autoload („yes“ oder „no“), das regelt, ob eine Option bei jedem Seitenaufruf in den Speicher geladen wird.
- Einstellungen für Plugins und Themes, aber auch temporäre Caches wie Transients, landen oft mit „yes“ im Autoload.
- Ist der Umfang dieser Daten (>1MB, bei >3–5MB kritisch) zu groß, wirkt sich das negativ auf die Performance aus.
Optimierungsmaßnahmen
- Mit SQL-Abfragen in phpMyAdmin oder per Plugin (z.B. Autoload Checker, AAA Option Optimizer) lässt sich die Größe und Anzahl der autoloaded Optionen analysieren und gezielt einschränken.
- Lösche veraltete oder unnötige Plugin-/Theme-Einträge aus wp_options und setze für selten genutzte Optionen das Attribut autoload auf „no“ (z.B. per SQL:
UPDATE wp_options SET autoload = 'no' WHERE option_name = 'NAME';). - Bereinige regelmäßig abgelaufene Transients mit SQL:
DELETE FROM wp_options WHERE autoload = 'yes' AND option_name LIKE '%transient%';.
Best Practices für Entwickler
- Nur Optionen, die auf jeder Seite benötigt werden, sollten wirklich autoloaded sein (z.B. globale Theme-Einstellungen).
- Speichere große Arrays oder selten benötigte Konfigurationen besser mit autoload = „no“ oder in eigenen Tabellen.
- Bei Deaktivierung von Plugins können Hooks genutzt werden, um autoload auf „no“ zu stellen, anstatt Optionen komplett zu löschen.
Beachte: Seit WordPress 6.6 gibt es neben „yes/no“ weitere Werte („on“, „auto“, „auto-on“), und nicht alle Tools erkennen diese korrekt.
Nützliche Tools und Plugins
- Autoload Checker (aktuell und kompatibel)
- AAA Option Optimizer (zeigt Nutzung auf Seiten an)
- Advanced Database Cleaner (plugin-basierte Option-Kontrolle)
Eine gezielte Optimierung senkt die Serverlast, verringert die Speicherbelegung und verbessert die Seitenladezeiten spürbar.
Wie prüfe ich die Gesamtgröße der autoload-Optionen in der Datenbank
Die Gesamtgröße der autoload-Optionen in der WordPress-Datenbank lässt sich am einfachsten mit einer SQL-Abfrage ermitteln. Dies gibt die Summe (in Bytes) aller automatisch geladenen Optionen zurück. Die Standard-SQL-Abfrage dafür lautet:
sql:
SELECT SUM(LENGTH(option_value)) AS autoload_size_bytes
FROM wp_options
WHERE autoload = 'yes';
Das Ergebnis („autoload_size_bytes“) ist die Größe in Bytes. Zur besseren Lesbarkeit kann dieser Wert durch 1024 geteilt werden, um Kilobyte (KB) zu erhalten. Wird ein anderes Tabellen-Prefix verwendet, muss „wp_options“ entsprechend angepasst werden.
Für mehrere neue WP-Werte (ab WP 6.6, z.B. „yes“, „on“, „auto“, „auto-on“):
sql:
SELECT SUM(LENGTH(option_value)) AS autoload_size_bytes
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on');
Alternativ bieten Plugins wie „Autoload Checker“ eine komfortable grafische Übersicht über die Gesamtgröße und Warnungen bei Überschreiten von Grenzwerten.
Eine autoload-Gesamtgröße unter 1MB gilt als unkritisch, ab 2-3MB und mehr sollte dringend optimiert werden.Die Gesamtgröße aller autoload-Optionen in der Datenbank lässt sich mit einer einfachen SQL-Abfrage direkt ermitteln. Diese gibt die Summe der Byte-Längen aller automatisch geladenen Einträge in der wp_options-Tabelle aus:
sql:
SELECT SUM(LENGTH(option_value)) AS autoload_size_bytes
FROM wp_options
WHERE autoload='yes';
Der Ergebniswert ist in Bytes, also z. B. 1048576 Bytes = 1 MB. Wenn WordPress 6.6 oder neuer verwendet wird und auch moderne Autoload-Werte wie „on“, „auto“, „auto-on“ genutzt werden, solltest du die Abfrage wie folgt anpassen:
sql:
SELECT SUM(LENGTH(option_value)) AS autoload_size_bytes
FROM wp_options
WHERE autoload IN ('yes','on','auto','auto-on');
Mit dieser Abfrage findet sich schnell heraus, ob Optimierungsbedarf besteht – eine Größe unter 1 MB gilt in der Regel als unkritisch, ab 2–3 MB sollte man aufräumen.
Beste Praxis für welche Optionen autoload=yes haben sollten
Nur Optionen, die tatsächlich bei jedem Seitenaufruf gebraucht werden, sollten das Attribut autoload=yes erhalten. Die Best Practice ist, dieses Flag gezielt nur für global relevante Einstellungen und Konfigurationen zu setzen – das sorgt für optimale Performance und vermeidet unnötige Speicherbelastung.
Welche Optionen sollten autoload=yes haben?
- Globale Theme-Einstellungen wie Site-Titel, Sprache, Standardfarbe, Logo– da sie auf jeder Seite gebraucht werden.
- Zentrale Plugin-Konfigurationen, die auf allen Seiten und bei jedem Request benötigt werden, z.B. allgemeine Einstellungen eines Caching-Plugins oder eines Security-Plugins.
- Einstellungen für Funktionen, die WordPress direkt beim Bootstrapping ausliest, z.B. die Widget-Konfiguration für global eingebundene Sidebars.
- Kleine, häufig genutzte Optionswerte (Strings oder Arrays in KB-Größe), die schnell geladen werden müssen.
Optionen, die NICHT autoloaded sein sollten
- Einstellungen, die nur im Backend, in bestimmten Plugins, oder selten gebraucht werden (z.B. Plugin-Einstellungen, die nur im Admin-Dashboard relevant sind).
- Große Arrays oder Datenstrukturen, z.B. Statistikdaten, Import-Caches, Langzeit-Transients, etc.—sie sollten autoload=no erhalten oder besser in eigenen DB-Tabellen gespeichert werden.
- Temporäre Werte wie Transients und Einträge, die nur auf bestimmten URLs relevant sind.
Entwickler-Tipps
- Beim Anlegen einer Option im Code add_option() oder update_option() immer die autoload-Flag gezielt setzen. Beispiel:
add_option('my_plugin_cached_settings', $data, '', 'no');für selten genutzte Daten. - Ab WordPress 6.6 kann autoload auch auf „auto“ gesetzt werden, damit WordPress selbst heuristisch entscheidet, was autoloaded wird. Für kritische Optionen aber weiter gezielt „yes“ oder „no“ nutzen.
Bei Unsicherheit gilt: Weniger ist mehr! In der Praxis sollten meist <20–40 Optionswerte mit autoload=yes vorkommen, und die Gesamtgröße sollte 1MB möglichst nicht überschreiten.Das Attribut autoload=yes sollte nur für Optionen vergeben werden, die für jeden Seitenaufruf unverzichtbar sind – beispielsweise globale Theme-Einstellungen oder zentrale Konfigurationen aktiver Plugins. Optionen, die nur im Backend gebraucht werden oder große Datenmengen enthalten, sollten unbedingt autoload=no verwenden.
Wann autoload=yes sinnvoll ist
- Globale Website-Einstellungen wie Site-Titel, Hauptsprache oder Logo.
- Wesentliche Plugin- oder Theme-Konfigurationen, die das Frontend auf jeder Seite benötigt (z.B. Cache-Einstellungen oder Security-Konfigs).
- Kleine Optionswerte, die häufig aufgerufen werden (max. KB-Größe).
- Widget-Koordinaten für global eingebundene Sidebars.
Wann autoload=no sinnvoll ist
- Optionen, die nur im WP-Admin oder für bestimmte URLs relevant sind (z.B. Plugin-Einstellungen für Backend-Seiten).
- Große Arrays/Objekte (z.B. Statistikdaten, Importlisten), die die Payload aufblähen.
- Kurzfristige Werte wie Transients oder spezifische pluginbezogene Daten.
Entwicklerhinweise
- Immer gezielt autoload setzen: add_option()/update_option() mit Parameter.
- Für neue Projekte ab WP 6.6 kann autoload=“auto“ sinnvoll sein; für kritische Daten aber explizit “yes” oder “no” verwenden.
Nur die wichtigsten (<40) und möglichst kleinen Optionen sollten autoloaded sein, idealerweise bleibt die Gesamtgröße unter 1MB.
SQL-Abfrage, um große autoload-Optionen nach Größe aufzulisten
Die folgende SQL-Abfrage listet die größten autoloaded Optionen aus der wp_options-Tabelle (Standard-Prefix) und sortiert sie nach ihrer Datenmenge absteigend. Damit können die größten Speicherfresser leicht identifiziert und bei Bedarf gezielt optimiert oder entfernt werden:
sql:SELECT
option_name,
LENGTH(option_value) AS option_size_bytes
FROM wp_options
WHERE autoload = 'yes'
ORDER BY option_size_bytes DESC
LIMIT 50;
Das Ergebnis zeigt die Namen und Byte-Größen der Top-50 Optionen mit autoload=yes. Falls ein anderer Tabellen-Prefix verwendet wird, muss wp_options entsprechend angepasst werden.
Alternativ für mehrere Autoload-Varianten (ab WP 6.6, z.B. ‚yes‘, ‚on‘, ‚auto‘, ‚auto-on‘):
sql:SELECT
option_name,
LENGTH(option_value) AS option_size_bytes,
autoload
FROM wp_options
WHERE autoload IN ('yes','on','auto','auto-on')
ORDER BY option_size_bytes DESC
LIMIT 50;
Damit erhält man die größten autoloaded Optionen inklusive neuerer WP-Werte.
Eine regelmäßige Kontrolle dieser Werte hilft, Performance-Probleme frühzeitig zu erkennen und gezielt zu beheben.
Wie entferne ich sicher verwaiste Optionen von gelöschten Plugins
Schrittweise Anleitung
Backup der Datenbank
Vor allen Änderungen unbedingt ein komplettes Datenbank-Backup erstellen, z.B. per phpMyAdmin oder Plugin.
Orphaned Options identifizieren
Suche nach Optionsnamen, die Präfix oder Suffix des gelöschten Plugins enthalten, z.B. mit:
sql:
SELECT option_name FROM wp_options WHERE option_name LIKE '%beispielplugin%';
Hierbei helfen oft Plugin-spezifische Muster wie _pluginname_setting.
Verwaiste Optionen deaktivieren
Vor dem Löschen kann das Attribut autoload auf „no“ gesetzt werden:
sql:
UPDATE wp_options SET autoload = 'no' WHERE option_name = 'EINTRAG';
Beobachte, ob die Seite weiterhin erwartungsgemäß funktioniert, um unerwartete Nebeneffekte zu vermeiden.
Löschen verwaister Optionen
Wenn nach einer Testphase keine Fehler auftreten, können die Optionen sicher gelöscht werden:
sql:
DELETE FROM wp_options WHERE option_name = 'EINTRAG';
Alternativ gezielt nach mehreren Mustern löschen:
sql:
DELETE FROM wp_options WHERE option_name LIKE '%pluginname%';
Für Transients:
sql:
DELETE FROM wp_options WHERE option_name LIKE ('%transient%');
Automatisierte Tools und Plugins
Nutze Plugins wie „Advanced Database Cleaner“ oder „WP-Optimize“, die verwaiste Optionen oft automatisch erkennen und über ein UI zur Bestätigung bereitstellen.
WP-CLI-Kommandos vereinfachen für Entwickler den Löschvorgang, z.B. wp option delete option_name.
Wichtige Hinweise
- Niemals unsicher zuordenbare Optionen entfernen – immer erst recherchieren, zu welchem Plugin/Theme sie gehören könnten.
- Bei ungewöhnlichen Präfixen hilft eine Recherche historischer Plugin-Namen oder ein Blick in ältere Plugin-Dateien.
- Unbedingt vermeiden: das Löschen oder Ändern kritischer WordPress-Core-Optionen!
Regelmäßige Bereinigung verringert die Datenbankgröße und das Risiko von Ladezeitproblemen. Plugins wie Advanced Database Cleaner oder WP-Optimize unterstützen gezieltes Aufräumen und die Automatisierung der Kontrolle.