1. Home
  2. FAQ – Häufige Fragen
  3. WP_Options Tabelle und automatisch geladene Daten bereinigen
  1. Home
  2. Performance & Caching
  3. WP_Options Tabelle und automatisch geladene Daten bereinigen
  1. Home
  2. Datenbank
  3. WP_Options Tabelle und automatisch geladene Daten bereinigen

WP_Options Tabelle und automatisch geladene Daten bereinigen

Warum sollte man das tun?

Bei der WP_Options Tabelle handelt es sich um einen Bereich, welcher bei der Performanceanalyse einer WordPress Seite oft übersehen wird.
Dabei handelt es sich bei WP_Options um eine wichtige Tabelle, wenn es um die gesamte WordPress und Datenbankleistung geht.
Gerade auf größeren und älteren Websites kann WP_Options der Grund für langsame Abfragezeiten und Performanceprobleme sein, da automatisch geladene Daten von Plugins und Themes von Drittanbietern hier aufgestaut und zurückgelassen werden.
Deswegen ist es wichtig, diese Tabelle zu analysieren, zu prüfen und zu bereinigen, um eine Optimierung der Performance zu erhalten.

Was beinhaltet die WP_Options Tabelle?

In der WP_Options Tabelle sind alle Arten von Daten für deine WordPress Seite enthalten, wie z.B.:

  • Home-URL, Site-URL, Admin E-Mail, Name der Website, Beiträge pro Seite, das Zeitformat usw.
  • Die Einstellungen für die auf der Website betriebenen Plugins, Themes und Widgets
  • Vorübergehend zwischengespeicherte Daten

Screenshot: WordPress Datenbank

Diese Tabelle enthält mehrere Felder, wobei hier für uns „autoload“ ganz besonders wichtig ist:

  • option_id
  • option_name
  • option_value
  • autoload
Screenshot: WordPress Datenbank – Wp_Options Tabelle

Für uns beinhaltet diese Tabelle vor allem ein wichtiges Feld, bei welchem wir verstehen müssen, wie dieses funktioniert. Dieses ist das Feld „Autoload“ und beinhaltet einen Ja- oder Nein- Wert.
Im allgemeinen wird dadurch gesteuert, was durch die Funktion „wp_load_alloptions“ geladen wird und was nicht.
Dabei handelt es sich um automatisch geladene Daten, welche auf jeder Seite deiner WordPress Website geladen werden. Dieser Wert bzw. der Autoload Attribut ist standardmäßig auf „ja“ gesetzt, jedoch sollte nicht jedes Plugin seine Daten auf jeder Seite laden.

Genau dies führt besonders bei älteren WordPress Websites häufig zu Problemen und einer Verlangsamung, da sich in der WP-Options Tabelle eine große Menge an Daten angesammelt hat, welche für den oben genannten Autoload mit dem Wert „Ja“ markiert sind.
Dies wird meist durch folgende Dinge ausgelöst:

  • Automatisch geladenen Daten von einem Plugin, welches eigentlich auf den Wert „Nein“ gesetzt werden sollte, wie z.B. ein Kontaktformular-Plugin. Muss dieses auf jeder Seite oder nur auf der Kontaktseite geladen werden?
  • Entfernte WordPress Plugins oder Themes, welche von der Website entfernt wurden. Die Optionen der Plugins sind jedoch noch in der WP_Options Tabelle enthalten und werden somit unnötig automatisch geladen.
  • Viele Entwickler von Plugins und Themes laden die Daten direkt in die WP_Options Tabelle, anstatt diese in eine eigene Tabelle zu laden. Hier gibt es jedoch für beide Seiten Pro und Contra Argumente, jedoch sollte die WP_Options Tabelle nicht tausende von Zeilen enthalten.

Ob man zu viele automatisch geladene Daten in seiner WP_Options Tabelle hat, kommt immer auf die WordPress Seite an. Idealerweise liegt dieser Wert zwischen 300-1000 KB (1MB). Sollte sich dieser Wert bei 4-5 MB oder mehr befinden, kann hier definitiv einiges optimiert werden.

Wie behebe ich Fehler in meinen automatisch geladenen Dateien?

Performance-Probleme der WordPress Seite können oft durch die Abfrage von automatisch geladenen Daten auftreten, welche von einem alten WordPress Plugin zurückgelassen wurden.
Damit man dieses Problem finden kann, muss man zuerst feststellen, wie viele automatische Daten geladen werden. Dies funktioniert am besten, wenn wir die Datenbank prüfen und somit die Größe des Autoloads feststellen.

Die Größe der automatischen geladenen Daten feststellen

Damit wir überprüfen können, ob die Probleme durch die automatisch geladenen Daten verursacht werden, müssen wir durch folgende Schritte feststellen, wie groß der Autoload ist.
Dazu loggen wir uns über PHPMyAdmin in unsere Datenbank ein und rufen uns die Registerkarte „SQL“ auf. Hier geben wir dann folgenden Befehl ein:

SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes';

Wird in der Datenbank der WordPress Website ein anderes Präfix als wp_ verwendet, muss diese Abfrage optimiert werden. Hierzu ändert man das Präfix bei „wp-options“ z.B. in „qsadh_options„.

Screenshot: WP-Datenbank – PHPMyAdmin – SQL-Abfrage
Screenshot: WP-Datenbank – PHPMyAdmin – SQL-Abfrage – Abfrage autoload Größe
Screenshot: WP-Datenbank – PHPMyAdmin – SQL-Abfrage – Abfrage autoload Größe – Antwort SQL Abfrage

Durch die SQL-Abfrage wird die autoload_size in Bytes zurückgegeben. 1024 Byte sind 1 KB und 1024 KB somit 1 MB.
In unserem Fall beträgt die Größe des Autoloads 14218 Bytes. Dies umgerechnet in MB ergibt den Wert 0,013 MB und ist somit eine sehr gute Größe. Bei einem Wert unter 1 MB sollte man sich keine Gedanken machen. Ist das Ergebnis jedoch viel größer, kann hier definitiv eine Optimierung erfolgen.

In unserem folgenden Beispiel haben wir eine Website mit einer Autoload Größe von 5.120.851 Bytes. Dies sind somit 4,88 MB. Dies ist zwar nicht sehr viel, jedoch gibt es hier mit Sicherheit optimierungsbedarf.

Screenshot: WP-Datenbank – PHPMyAdmin – SQL-Abfrage – Abfrage autoload Größe – Antwort SQL Abfrage

Man kann auch eine längere SQL Abfrage wie folgend verwenden. Hierbei werden die automatisch geladenen Daten, die Anzahl der Einträge in der Tabelle und die ersten 10 Einträge nach Größe angezeigt.

SELECT 'autoloaded data in KiB' as name, ROUND(SUM(LENGTH(option_value))/ 1024) as value FROM wp_options WHERE autoload='yes'
UNION
SELECT 'autoloaded data count', count(*) FROM wp_options WHERE autoload='yes'
UNION
(SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 10)
Screenshot: WP-Datenbank – PHPMyAdmin – SQL-Abfrage – Abfrage autoload Größe – Antwort SQL Abfrage
Sortieren der automatisch geladenen Daten nach nach Top-Artikel

Im nächsten Schritt sortieren wir uns die Top 10 Artikel unsere Abfrage nach Größe. Dies funktioniert mit folgendem Befehl:

SELECT option_name, length(option_value) AS option_value_length FROM wp_options WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 10;

Diese Abfrage muss evtl. optimiert werden, sollte deine WordPress Seite bzw. Datenbank ein anderes Präfix als wp_ verwenden.

Screenshot: WP-Datenbank – PHPMyAdmin – SQL-Abfrage – Abfrage autoload Größe – Antwort SQL Abfrage – Sortierung Top 10

Nachdem wir nun unsere Top 10 der größten automatisch geladenen Daten haben, können wir unsere Performance Analyse starten und somit die Schnelligkeit unserer WordPress Seite wieder herstellen.

Zuletzt geändert: 2. Mai 2022

War dieser Artikel hilfreich?

Empfohlene Artikel