Autoloaded Daten prüfen: zwei Queries
Fügen Sie diese in phpMyAdmin, Adminer oder wp db query ein – die erste liefert Ihre
gesamte Autoload-Größe in KB, die zweite listet die 25 Optionen, die sie tatsächlich verursachen.
Passen Sie das Präfix wp_ an, falls Ihres abweicht.
-- Total autoloaded data (KB) + row count
SELECT ROUND(SUM(LENGTH(option_value)) / 1024, 1) AS autoload_kb,
COUNT(*) AS autoload_count
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on');
-- Top 25 offenders, biggest first
SELECT option_name,
ROUND(LENGTH(option_value) / 1024, 1) AS size_kb,
autoload
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on')
ORDER BY LENGTH(option_value) DESC
LIMIT 25;
WordPress 6.6+ schreibt 'auto' und 'auto-on' zusätzlich zu den
klassischen Werten 'yes' und 'on'. Jede Prüf-Query, die nur
autoload = 'yes' abfragt, zählt Ihre echte Autoload-Größe zu niedrig –
deshalb sehen so viele Sites auf dem Papier gesund aus und laden trotzdem bei jedem Request ein aufgeblähtes Set.
WordPress-Autoloader vs. autoloaded Daten
„Autoloader" bedeutet in WordPress zwei völlig verschiedene Dinge, und die Suche danach liefert beides. Dreißig Sekunden zu prüfen, welches Sie vor sich haben, lohnt sich.
| Wie es genannt wird | Was es tatsächlich ist | Bremst es Ihre Site? |
|---|---|---|
| Der PHP-Klassen-Autoloader Composer, spl_autoload_register, PSR-4 |
Eine Funktion, die die Datei einer PHP-Klasse beim ersten Zugriff lädt,
damit Sie require nicht von Hand schreiben müssen. |
Fast nie. Es ist ein Dateisystem-Zugriff, meist von OPcache gecacht. |
| Autoloaded Optionen Die Spalte autoload in wp_options |
Zeilen, die WordPress bei jedem Request in den Speicher holt, bevor auch nur eine Zeile Ihres Codes läuft. | Ja. Genau das kostet Sie Leistung, und genau darum geht es auf dem Rest dieser Seite. |
Wenn Sie hier gelandet sind, weil ein Hoster „autoloaded data" gemeldet hat oder weil Sie
alloptions in einem Profiler gesehen haben, ist das Zweite gemeint. Wenn Sie
einen Class not found-Fatal debuggen, ist das Erste gemeint – und diese Seite
hilft Ihnen nicht weiter, das ist ein Composer- oder PSR-4-Problem.
Der Begriff „Plugin-Autoloader" ist genauso mehrdeutig. Ein Plugin bringt einen Composer-Autoloader für seine eigenen Klassen mit und schreibt gleichzeitig autoloaded Optionen. Nur das Zweite taucht in der Query unten auf.
Was sind autoloaded Daten?
WordPress hat eine einzelne Query, die bei jedem Seitenaufruf läuft, bevor Theme- oder Plugin-Code ausgeführt wird:
SELECT option_name, option_value
FROM wp_options
WHERE autoload = 'yes'
Sie lädt alle „autoloaded" Optionen auf einmal in den Speicher. Der WordPress-Core braucht davon rund 100 KB. Das Problem ist, dass Plugins es übertreiben.
Sie deaktivieren ein Plugin. Seine Daten bleiben in wp_options mit
autoload='yes' stehen. Über zwei Jahre installieren Sie 30 Plugins. Jetzt
laden Sie bei jedem Request 5 MB Daten—das meiste davon aus Plugins, die Sie
gar nicht mehr benutzen.
Anders als langsame Queries, die Ihre TTFB nur zeitweise hochtreiben, ist Autoload-Ballast eine Dauersteuer. Er verlängert jeden einzelnen Request—gecacht oder nicht, Frontend oder Backend, AJAX oder Seitenaufruf.
Gesunde Autoload-Größe: Schwellenwerte für wp_options
Behandeln Sie die gesamte Autoload-Größe als Budget, nicht als Schönheitswert. Führen Sie die Prüf-Query von oben aus und lesen Sie Ihren Wert an dieser Tabelle ab.
| Autoload-Größe | Urteil | Was zu tun ist |
|---|---|---|
| Unter 300 KB | In Ordnung | Nichts. Allein der WordPress-Core braucht rund 100 KB – Sie sind im normalen Bereich. Prüfen Sie nach größeren Plugin-Installationen oder einer Migration erneut. |
| 300–800 KB | Beobachten | Führen Sie die Top-25-Query aus. Notieren Sie, welche Plugins die größten Zeilen besitzen, und schalten Sie Autoload bei Waisen und alten Caches ab, bevor sie weiterwachsen. |
| 800 KB–1 MB | Handeln | Sie haben die Grenze überschritten, die die meisten Managed-Hoster melden. Planen Sie diese Woche eine Bereinigung ein. Bevorzugen Sie autoload='no' gegenüber dem Löschen von Zeilen. |
| Über 1 MB | Dringend | WordPress cacht das gesamte Autoload-Set als einen einzigen alloptions-Schlüssel. Viele Redis-/Memcached-Setups begrenzen einen Wert auf rund 1 MB, ein zu großes Set landet also unbemerkt gar nicht im Cache – oder zeigt sich als sporadische 502er unter Last. |
Sites mit über 3 MB autoloaded Daten sind keine Seltenheit. Wir haben Sites mit über 10 MB gesehen —das sind 10 MB, die bei jedem einzelnen Request von MySQL zu PHP wandern, bevor WordPress überhaupt anfängt, die Seite zu bauen.
Die Warnung „Autoloaded Data" bei WP Engine: was jetzt zu tun ist
WP Engine meldet autoloaded Daten ab 800 KB und bezeichnet alles darunter als normal. Es ist einer der wenigen Hoster, der das als Dashboard-Warnung anzeigt – deshalb stoßen die meisten Leute über ihn auf das Problem. Die Physik dahinter ist hoster-unabhängig: Jeder Request zieht das ganze Set nach PHP, ganz gleich, wo Sie hosten.
Die Warnung nennt Ihnen eine Zahl und sonst nichts. Hier steht, was Sie damit anfangen.
-
Messen Sie zuerst selbst. Führen Sie die Prüf-Query oben auf dieser
Seite aus. Hoster-Dashboards messen nach Zeitplan, die angezeigte Zahl kann also Stunden alt sein,
und manche Panels prüfen weiterhin
autoload = 'yes', was unter WordPress 6.6+ zu niedrig zählt, weil der Core inzwischen auch'on','auto'und'auto-on'schreibt. Ein Panel, das „im normalen Bereich" sagt, ist kein Beweis. -
Suchen Sie die Verursacher, nicht die Summe. Die Summe ist ein Symptom. Listen Sie die
25 größten Zeilen nach
LENGTH(option_value)auf, und meist tragen drei oder vier Zeilen den Großteil des Gewichts. - Prüfen Sie jede einzelne gegen die Finger-weg-Liste weiter unten auf dieser Seite, bevor Sie etwas ändern. Manche großen autoloaded Optionen sollen groß sein.
-
Autoload abschalten, nicht löschen.
wp option set-autoload OPTION_NAME offlässt die Daten intakt und umkehrbar. Zeilen zu löschen ist der Weg, die Einstellungen eines Plugins zu zerstören. - Erneut messen und dem Panel Zeit geben. Die Warnung verschwindet erst bei der nächsten Prüfung von WP Engine, nicht sofort.
Ein Vorbehalt speziell für Managed-Hoster mit Memcached: oberhalb von rund 1 MB kann das Autoload-Blob das Limit pro Schlüssel überschreiten, landet dann unbemerkt nicht im Cache, und jeder Request geht zurück in die Datenbank. Das ist schlimmer, als die Warnung vermuten lässt, und es zeigt sich als zufällige 502er im wp-admin statt als langsame Seite.
Unter 800 KB von Hand zu kommen, sind ein paar Stunden sorgfältige Arbeit. Der Autoloader Optimizer von WP Multitool erledigt dieselbe Prüfung, kategorisiert jede Zeile und schaltet die unbedenklichen um – mit Wiederherstellung per Klick dahinter.
Was Autoload-Ballast in WordPress verursacht
1. Überreste deaktivierter Plugins
Die meisten Plugins räumen nicht hinter sich auf. Sie legen bei der Aktivierung Optionen an und lassen sie für immer stehen—auch nach Deaktivierung und Löschung. So finden Sie sie:
SELECT option_name, LENGTH(option_value) AS size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size DESC
LIMIT 20;
Achten Sie auf Optionsnamen von Plugins, die Sie nicht mehr benutzen. Diese können Sie gefahrlos
auf autoload='no' setzen oder ganz löschen.
2. Serialisierte Arrays, die wachsen
Manche Plugins speichern wachsende Daten in einer einzigen Option: Logs, Analytics-Snapshots,
Cron-Zeitpläne. Ein einzelner option_value kann über 500 KB serialisiertes PHP sein.
3. Abgelaufene Transients
Transients sind temporäre Cache-Werte, die in wp_options liegen.
Ohne externen Object Cache sammeln sich abgelaufene Transients an. WordPress räumt sie
nur träge auf—beim nächsten Zugriff. Diese alten Transients können sich außerdem als langsame Queries
bemerkbar machen, sobald die Tabelle groß genug wird.
SELECT COUNT(*) FROM wp_options
WHERE option_name LIKE '_transient_%'
AND autoload = 'yes';
4. Falsch konfigurierte Plugins
Plugins, die Einstellungen pro Benutzer, große JSON-Konfigurationen oder gecachte API-Antworten in autoloaded Optionen ablegen. Die Daten mögen nötig sein, aber sie müssen nicht bei jedem Request geladen werden.
Autoloaded Daten in wp_options prüfen
- Gesamte Autoload-Größe prüfen — Führen Sie die SQL-Query oben aus. Über 1 MB heißt: sofort nachsehen.
-
Die größten Verursacher finden — Sortieren Sie autoloaded Optionen nach
LENGTH(option_value). Die Top 10 machen meist über 80 % des Ballasts aus. - Verwaiste Daten erkennen — Gleichen Sie Optionsnamen mit Ihren aktiven Plugins ab. Optionen deaktivierter Plugins können Sie gefahrlos anfassen.
-
Vor der Änderung testen — Setzen Sie
autoload='no'immer nur für eine Option. Prüfen Sie, ob die Site noch funktioniert. Manche Optionen müssen wirklich autoloaded sein (Core-Einstellungen, Konfiguration von aktivem Theme und Plugins). - Abgelaufene Transients aufräumen — Löschen Sie Transients, deren Ablaufzeit vorbei ist. Das ist immer unbedenklich.
Was Sie NICHT abschalten sollten
autoload umzuschalten ist umkehrbar. Zeilen zu löschen nicht. Manche Optionen müssen
aber autoloaded bleiben, solange ihr Besitzer aktiv ist, sonst brechen WordPress und Ihre Plugins
früh im Bootstrap – und es kommt kein Fehler, es wird einfach still schlechter. Nehmen Sie das als
Kontrolle vor jeder Massenänderung.
| Autoloaded lassen (solange in Benutzung) | Meist unbedenklich auf autoload='no' |
|---|---|
cron – die komplette WP-Cron-Ereignisliste;active_plugins, template, stylesheet;siteurl, home, blogname, blogdescription;user_roles, permalink_structure, rewrite_rules;theme_mods_{active-theme} für das aktive Theme;Laufzeiteinstellungen aktiver Plugins – WooCommerce-Shop-Konfiguration, Yoast wpseo_*, Firewall-Regeln
|
Verwaiste Zeilen gelöschter Plugins (das Präfix passt zu nichts Installiertem); alte _transient_* und _site_transient_* – Caches per Definition;Reste der Update-Prüfung: _site_transient_update_plugins,
_site_transient_update_themes, _site_transient_update_core;Buchhaltung von Queue und Telemetrie: action_scheduler_*, wc_tracks_*;übergroße CSS-/Asset-Blobs von Page Buildern ( _elementor_* und Divi sind
Dauergäste in der Top-25-Liste)
|
Die Regel: Ist das Plugin aktiv und die Option Konfiguration, die es bei jedem Request liest, lassen Sie Autoload an. Ist das Plugin weg oder der Wert ein Cache-, Log- oder Queue-Blob, schalten Sie zuerst Autoload ab – und löschen Sie erst, wenn Sie sicher sind, dass niemand die Zeile mehr liest.
Typische Autoload-Verursacher: Ist das Abschalten sicher?
Zwanzig Präfixe, die mir immer wieder begegnen, und was ich mit jedem mache. „Vorsicht" heißt, die Antwort hängt davon ab, ob das Plugin noch aktiv ist – prüfen Sie das zuerst.
| Option / Präfix | Quelle | Autoload gefahrlos abschaltbar? |
|---|---|---|
_transient_* / _site_transient_* | WordPress-Core + jedes Plugin (Transients) | Ja – Transients sind per Definition Caches; auf Sites mit Object Cache haben sie in wp_options ohnehin nichts zu suchen. |
action_scheduler_* | Action Scheduler (WooCommerce und andere) | Ja – Queue-Buchhaltung, wird bei Bedarf geladen, wenn der Scheduler läuft. |
wc_tracks_* | WooCommerce (Telemetrie) | Ja – Nutzungsstatistiken, davon hängt nichts ab, was Nutzer sehen. |
woocommerce_* (settings) | WooCommerce-Core | Nein – Währungs-, Steuer- und Checkout-Konfiguration, die Woo bei jedem Request liest. |
elementor_* | Elementor (Einstellungen) | Vorsicht – Laufzeiteinstellungen werden gebraucht, solange es aktiv ist; erst nach Deaktivierung von Elementor unbedenklich. |
_elementor_* | Elementor (interne Daten / Cache) | Vorsicht – manche Einträge sind CSS-/Asset-Cache (unbedenklich), andere Laufzeitzustand; Zeile für Zeile prüfen. |
jetpack_* / _jetpack_* | Jetpack | Vorsicht – Verbindungs-Tokens und Sync-Zustand; das falsche umzuschalten kann die Verbindung zu WordPress.com kappen. |
wpseo_* / wordpress_seo_* | Yoast SEO (Plugin) | Nein, solange aktiv – Titel, Metas und Indexable-Einstellungen laden bei jedem Frontend-Request. Ja, wenn Yoast entfernt wurde. |
aioseo_* | All in One SEO (Plugin) | Vorsicht – Kerneinstellungen bleiben, solange es aktiv ist, aber AIOSEO ist bekannt für übergroße Cache-/Log-Optionen, die man gefahrlos umschalten kann. |
rank_math_* | Rank Math | Vorsicht – Laufzeiteinstellungen nein, Analytics-/Cache-Blobs ja; dieselbe Aufteilung wie bei AIOSEO. |
wpforms_* | WPForms (Plugin) | Vorsicht – Einstellungen werden gebraucht, solange es aktiv ist; Challenge-, Benachrichtigungs- und Log-Einträge sind unbedenklich. |
wf* / wflogs | Wordfence (Plugin) | Vorsicht – die Firewall-Konfiguration wird bei jedem Request gelesen, solange es aktiv ist; Log-Zeilen und Waisen nach der Entfernung sind ein klares Ja. |
redirection_* | Redirection (Plugin) | Vorsicht – das Plugin braucht seine Einstellungen früh, um Weiterleitungen auszuführen; nur umschalten, wenn das Plugin weg ist. |
et_* | Divi-Theme (Elegant Themes) | Vorsicht – Einstellungen des aktiven Themes nein; wenn Sie von Divi weggewechselt sind, ist alles unter et_* toter Ballast – ja. |
edd_* | Easy Digital Downloads (Plugin) | Vorsicht – Shop-Einstellungen werden gebraucht, solange es aktiv ist; Tracking- und Session-Reste sind unbedenklich. |
learndash_* | LearnDash (Plugin) | Vorsicht – Kurs- und Laufzeiteinstellungen, solange es aktiv ist; nur unbedenklich, wenn LearnDash entfernt wurde. |
tribe_events_* | The Events Calendar (Plugin) | Vorsicht – bekannt für große autoloaded Cache-Einträge (oft unbedenklich), aber die Kerneinstellungen werden zur Laufzeit gebraucht. |
fs_accounts | Freemius SDK (in vielen Plugins enthalten) | Vorsicht – eine Zeile, die sich alle Freemius-basierten Plugins teilen; die Lizenzierung bricht, wenn Sie sie umschalten, während eines davon aktiv ist. |
rewrite_rules | WordPress-Core | Vorsicht – oft die mit Abstand größte Option, aber WordPress braucht sie, um URLs zu routen. Niemals löschen; ist sie riesig, suchen Sie das Plugin, das sie aufbläht. |
cron | WordPress-Core | Nein – hier liegt der komplette WP-Cron-Zeitplan; Autoload abzuschalten legt geplante Aufgaben lahm. |
Autoload-Ballast in WordPress beheben
Autoload für einzelne Optionen abschalten
UPDATE wp_options SET autoload = 'no'
WHERE option_name = 'old_plugin_settings';
Abgelaufene Transients aufräumen
DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
Verwaiste Plugin-Daten löschen
-- Only after confirming the plugin is gone:
DELETE FROM wp_options
WHERE option_name LIKE 'removed_plugin_%';
Das Problem an manuellen Korrekturen: sie halten nicht. Plugins legen weiter Daten an. Transients sammeln sich neu an. Neue Plugins bringen neue autoloaded Optionen mit. Sie müssten monatlich prüfen, um das im Griff zu behalten.
Warum Autoload-Ballast immer weiter wächst
Autoload-Ballast wächst schleichend. Er nimmt langsam zu, 50 KB auf einmal, unsichtbar, bis Ihre Site spürbar langsamer ist und Sie nicht wissen, warum.
- Neues Plugin installiert → 200 KB autoloaded Konfigurationsoptionen
- Plugin deaktiviert → die Daten bleiben und werden weiter autoloaded
- Transient-Cache-Miss → neues Transient mit Autoload gespeichert
- Plugin-Update → die Migration legt neue autoloaded Zeilen an
Wenn Ihnen zusätzlich ein langsames WordPress-Backend auffällt, ist Autoload-Ballast oft die verborgene Ursache. Sie brauchen ein Werkzeug, das Ihre Autoload-Größe laufend überwacht und Ihnen genau sagt, welche Optionen Speicher verschwenden—bevor daraus ein Performance-Problem wird.
Autoload-Bereinigung automatisieren
Der Autoloader Optimizer von WP Multitool überwacht Ihre wp_options-Tabelle,
erkennt aufgeblähte und verwaiste autoloaded Daten und zeigt Ihnen genau,
was gefahrlos aufgeräumt werden kann.