WordPress Autoload bereinigen - Database Performance um 98% verbessern
Schritt-für-Schritt Anleitung zur WordPress Autoload-Optimierung. Reduzieren Sie Datenbankabfragen und verbessern Sie die Website-Performance drastisch.
Die WordPress-Datenbank sammelt über die Zeit unzählige autogeladene Optionen an, die bei jedem Seitenaufruf geladen werden. In diesem umfassenden Guide zeige ich Ihnen, wie Sie die Autoload-Tabelle bereinigen und die Performance Ihrer Website drastisch verbessern können.
Was ist WordPress Autoload?
Grundlagen der Autoload-Funktionalität
WordPress lädt beim Start jeder Seite alle Optionen mit autoload='yes'
in den Speicher. Diese Funktion soll häufig benötigte Einstellungen schnell verfügbar machen, wird aber oft missbraucht.
Typische Autoload-Inhalte
-- Beispiele für autogeladene Optionen
site_url
home_url
active_plugins
theme_options
widget_settings
transients (temporary cache)
plugin_settings
Performance-Impact
Realer Fall aus der Praxis:
- Vorher: 546 Autoload-Optionen, 960 KB Daten
- Nachher: 208 Optionen, 3,07 KB Daten
- Verbesserung: 98% weniger Daten, deutlich schnellere Ladezeiten
Autoload-Status analysieren
1. Aktuelle Situation erfassen
-- Anzahl autogeladener Optionen
SELECT COUNT(*) as autoload_count
FROM wp_options
WHERE autoload = 'yes';
-- Gesamtgröße der autogeladenen Daten
SELECT
ROUND(SUM(LENGTH(option_value))/1024, 2) as autoload_size_kb
FROM wp_options
WHERE autoload = 'yes';
-- Top 10 größte Autoload-Optionen
SELECT
option_name,
ROUND(LENGTH(option_value)/1024, 2) as size_kb,
LEFT(option_value, 100) as preview
FROM wp_options
WHERE autoload = 'yes'
ORDER BY LENGTH(option_value) DESC
LIMIT 10;
2. Problematische Optionen identifizieren
-- Transients finden (temporäre Cache-Daten)
SELECT option_name, ROUND(LENGTH(option_value)/1024, 2) as size_kb
FROM wp_options
WHERE autoload = 'yes'
AND (option_name LIKE '_transient_%'
OR option_name LIKE '_site_transient_%');
-- Plugin-spezifische Optionen
SELECT option_name, ROUND(LENGTH(option_value)/1024, 2) as size_kb
FROM wp_options
WHERE autoload = 'yes'
AND option_name LIKE 'elementor_%';
3. Benchmark-Werte
✅ Optimal: < 100 Optionen, < 100 KB
⚠️ Akzeptabel: < 200 Optionen, < 800 KB
❌ Problematisch: > 300 Optionen oder > 1 MB
Backup erstellen (KRITISCH!)
Vollständige Datenbank-Sicherung
# Via WP-CLI
wp db export backup-$(date +%Y%m%d-%H%M%S).sql
# Via mysqldump
mysqldump -u username -p database_name > backup-$(date +%Y%m%d-%H%M%S).sql
# Via cPanel/phpMyAdmin
# Exportieren Sie die komplette Datenbank
Autoload-spezifisches Backup
-- Nur wp_options Tabelle sichern
CREATE TABLE wp_options_backup AS
SELECT * FROM wp_options WHERE autoload = 'yes';
Systematische Bereinigung
1. Transients aufräumen
-- Abgelaufene Transients löschen
DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
-- Zugehörige Transient-Daten entfernen
DELETE FROM wp_options
WHERE option_name LIKE '_transient_%'
AND option_name NOT LIKE '_transient_timeout_%'
AND option_name NOT IN (
SELECT CONCAT('_transient_', SUBSTRING(option_name, 19))
FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
);
-- Autoload für verbleibende Transients deaktivieren
UPDATE wp_options
SET autoload = 'no'
WHERE option_name LIKE '_transient_%'
OR option_name LIKE '_site_transient_%';
2. Plugin-spezifische Bereinigung
Elementor-Optionen optimieren
-- Cache-Daten von Autoload ausschließen
UPDATE wp_options
SET autoload = 'no'
WHERE option_name LIKE 'elementor_css_print_method'
OR option_name LIKE 'elementor_controls_usage'
OR option_name LIKE '_elementor_css_%';
WooCommerce-Optimierung
-- Session-Daten und Logs ausschließen
UPDATE wp_options
SET autoload = 'no'
WHERE option_name LIKE 'woocommerce_session_%'
OR option_name LIKE 'woocommerce_api_consumer_%'
OR option_name LIKE '_wc_session_%';
Yoast SEO bereinigen
-- Indexables von Autoload ausschließen
UPDATE wp_options
SET autoload = 'no'
WHERE option_name LIKE 'wpseo_indexables_%'
OR option_name LIKE 'wpseo_meta_%';
3. Leere und verwaiste Optionen entfernen
-- Leere Optionen löschen
DELETE FROM wp_options
WHERE (option_value = '' OR option_value IS NULL)
AND autoload = 'yes'
AND option_name NOT IN (
'active_plugins', 'stylesheet', 'template'
);
-- Verwaiste Plugin-Optionen finden
SELECT option_name
FROM wp_options
WHERE autoload = 'yes'
AND option_name LIKE 'plugin_name_%'
AND option_name NOT IN (
SELECT DISTINCT option_name
FROM wp_options
WHERE option_name = 'active_plugins'
);
Automatisierte Wartung einrichten
1. Wartungsskript erstellen
#!/bin/bash
# autoload-cleanup.sh
# Datenbankverbindung aus wp-config.php extrahieren
DB_NAME=$(grep DB_NAME wp-config.php | cut -d "'" -f 4)
DB_USER=$(grep DB_USER wp-config.php | cut -d "'" -f 4)
DB_PASSWORD=$(grep DB_PASSWORD wp-config.php | cut -d "'" -f 4)
DB_HOST=$(grep DB_HOST wp-config.php | cut -d "'" -f 4)
# Bereinigungskommandos
mysql -h$DB_HOST -u$DB_USER -p$DB_PASSWORD $DB_NAME << EOF
-- Abgelaufene Transients löschen
DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
-- Verwaiste Transients entfernen
DELETE a FROM wp_options a
LEFT JOIN wp_options b ON a.option_name = CONCAT('_transient_timeout_', SUBSTRING(a.option_name, 12))
WHERE a.option_name LIKE '_transient_%'
AND a.option_name NOT LIKE '_transient_timeout_%'
AND b.option_name IS NULL;
-- Cache-Optionen von Autoload ausschließen
UPDATE wp_options
SET autoload = 'no'
WHERE option_name LIKE '%_cache_%'
OR option_name LIKE '%_log_%'
OR option_name LIKE '%_temp_%';
EOF
echo "Autoload-Bereinigung abgeschlossen: $(date)"
2. Cron-Job einrichten
# Wöchentliche Ausführung
crontab -e
# Folgende Zeile hinzufügen:
0 3 * * 0 /pfad/zu/ihrer/website/autoload-cleanup.sh >> /var/log/autoload-cleanup.log 2>&1
3. WordPress-Plugin Alternative
// In functions.php oder als Plugin
function cleanup_autoload_options() {
global $wpdb;
// Nur für Administratoren
if (!current_user_can('manage_options')) {
return;
}
// Abgelaufene Transients löschen
$wpdb->query("
DELETE FROM {$wpdb->options}
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP()
");
// Verwaiste Transients entfernen
$wpdb->query("
DELETE a FROM {$wpdb->options} a
LEFT JOIN {$wpdb->options} b ON a.option_name = CONCAT('_transient_timeout_', SUBSTRING(a.option_name, 12))
WHERE a.option_name LIKE '_transient_%'
AND a.option_name NOT LIKE '_transient_timeout_%'
AND b.option_name IS NULL
");
}
// Wöchentlich ausführen
if (!wp_next_scheduled('cleanup_autoload_hook')) {
wp_schedule_event(time(), 'weekly', 'cleanup_autoload_hook');
}
add_action('cleanup_autoload_hook', 'cleanup_autoload_options');
Plugin-Empfehlungen für Autoload-Management
1. Query Monitor
// Autoload-Informationen anzeigen
// Installieren und aktivieren für detaillierte Autoload-Analyse
2. WP-Optimize
- Automatische Transient-Bereinigung
- Datenbank-Optimierung
- Autoload-spezifische Funktionen
3. Advanced Database Cleaner
- Tiefgreifende Datenbankanalyse
- Sichere Bereinigungsoptionen
- Backup-Integration
Überwachung und Monitoring
1. Performance-Tracking
-- Regelmäßige Überwachung
SELECT
COUNT(*) as option_count,
ROUND(SUM(LENGTH(option_value))/1024, 2) as size_kb,
ROUND(AVG(LENGTH(option_value)), 2) as avg_size_bytes
FROM wp_options
WHERE autoload = 'yes';
2. Automatische Alerts
#!/bin/bash
# autoload-monitor.sh
LIMIT_OPTIONS=200
LIMIT_SIZE_KB=500
CURRENT_COUNT=$(mysql -u$DB_USER -p$DB_PASSWORD -h$DB_HOST $DB_NAME -se "SELECT COUNT(*) FROM wp_options WHERE autoload='yes'")
CURRENT_SIZE=$(mysql -u$DB_USER -p$DB_PASSWORD -h$DB_HOST $DB_NAME -se "SELECT ROUND(SUM(LENGTH(option_value))/1024, 2) FROM wp_options WHERE autoload='yes'")
if [ $CURRENT_COUNT -gt $LIMIT_OPTIONS ] || [ $CURRENT_SIZE -gt $LIMIT_SIZE_KB ]; then
echo "WARNUNG: Autoload-Limits überschritten!" | mail -s "WordPress Autoload Alert" admin@ihre-domain.de
fi
Spezielle Fälle und Troubleshooting
1. Große Plugin-Daten
-- WooCommerce-Sessions bereinigen
DELETE FROM wp_options
WHERE option_name LIKE '_wc_session_%'
AND STR_TO_DATE(option_value, '%Y-%m-%d %H:%i:%s') < DATE_SUB(NOW(), INTERVAL 1 DAY);
-- Elementor CSS-Cache
UPDATE wp_options
SET autoload = 'no'
WHERE option_name LIKE '_elementor_css%';
2. Multisite-Umgebungen
-- Für alle Blogs in Multisite
SELECT blog_id FROM wp_blogs;
-- Pro Blog anwenden:
DELETE FROM wp_2_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
3. After-Cleanup Validierung
-- Wichtige Optionen prüfen
SELECT option_name, autoload
FROM wp_options
WHERE option_name IN (
'active_plugins',
'stylesheet',
'template',
'blogname',
'home',
'siteurl'
) AND autoload = 'no';
-- Falls deaktiviert, wieder aktivieren:
UPDATE wp_options
SET autoload = 'yes'
WHERE option_name IN ('active_plugins', 'stylesheet', 'template');
Präventive Maßnahmen
1. Plugin-Entwicklung berücksichtigen
// Beim Speichern von Plugin-Optionen
add_option('mein_plugin_cache', $data, '', 'no'); // Autoload deaktiviert
update_option('mein_plugin_cache', $data, 'no'); // Autoload deaktiviert
2. Transient-Management
// Transients mit angemessener Laufzeit
set_transient('mein_cache', $data, 12 * HOUR_IN_SECONDS);
// Große Daten niemals als Transient
if (strlen(serialize($data)) > 1024) {
// In separater Tabelle oder als Option mit autoload='no' speichern
}
3. Plugin-Auswahl überdenken
- Vermeiden Sie Plugins mit exzessivem Autoload-Verbrauch
- Prüfen Sie neue Plugins vor Installation
- Deaktivieren Sie ungenutzte Plugins vollständig
Performance-Messungen
Vorher/Nachher Vergleich
# Vor der Bereinigung
wp eval "echo 'Autoload Options: ' . $wpdb->get_var(\"SELECT COUNT(*) FROM $wpdb->options WHERE autoload='yes'\");"
# Nach der Bereinigung
wp eval "echo 'Autoload Size: ' . round($wpdb->get_var(\"SELECT SUM(LENGTH(option_value)) FROM $wpdb->options WHERE autoload='yes'\")/1024, 2) . ' KB';"
Page Speed Impact
- TTFB (Time to First Byte): 20-50% Verbesserung
- Database Query Time: 60-80% Reduzierung
- Memory Usage: 10-30% weniger RAM-Verbrauch
Fazit: Dauerhafte Autoload-Optimierung
Die Bereinigung der WordPress Autoload-Tabelle kann die Performance Ihrer Website drastisch verbessern. Mit den richtigen Tools und regelmäßiger Wartung halten Sie Ihre Datenbank schlank und schnell.
Wichtigste Erkenntnisse:
- Autoload-Optionen sammeln sich automatisch an
- Regelmäßige Bereinigung ist essentiell
- Transients sind oft die größten Verursacher
- Automatisierung spart Zeit und Aufwand
- 98% Performance-Verbesserung sind möglich
Nächste Schritte:
- Aktuellen Autoload-Status analysieren
- Vollständiges Backup erstellen
- Schrittweise Bereinigung durchführen
- Automatische Wartung einrichten
- Regelmäßig überwachen und optimieren
Mit dieser systematischen Herangehensweise verwandeln Sie eine träge WordPress-Installation in eine High-Performance-Website.
Lucas Kleipoedszus
Founder & CEO
Webdesign & SEO Experte mit über 10 Jahren Erfahrung. Spezialisiert auf moderne Weblösungen für KMUs und Luxusmarken.
Ähnliche Artikel
Die besten WordPress Cache Plugins 2025 - Kompletter Vergleich & Empfehlungen
Ausführlicher Vergleich der besten WordPress Cache Plugins 2025. Von WP Rocket bis LiteSpeed Cache - finden Sie das perfekte Plugin für Ihre Website-Performance.
Die besten Rank Math Einstellungen (2025) - Kompletter Setup-Guide
Optimale Rank Math Konfiguration für bessere Google Rankings. Schritt-für-Schritt Anleitung mit Screenshots und den wichtigsten Einstellungen für WordPress SEO 2025.
Verpassen Sie keine Premium-Insights
Erhalten Sie exklusive Artikel zu Luxus-Marketing und digitaler Exzellenz direkt in Ihr Postfach.